おおいしつかさ


旅行とバイクとドライブと料理と宇宙が好き。
Ubie Discoveryのプログラマ。
Share:  このエントリーをはてなブックマークに追加

MiyazakiResistanceバージョン0.1.6を公開しました。

MiyazakiResistanceの新バージョン0.1.6を公開しました。
インストールは今までと同じく以下で可能です(Gemcutterで公開しています)。

sudo gem install miyazakiresistance  

主な変更点は以下のとおりです。

■MiyazakiResistanceのaliasとしてMRを使えるようにしました。
いちいちMiyazakiResistanceと入力するのが面倒なので、MRというaliasを使えるようにしました。

class AccessCount < MR::Base  
  ...  
end  

■set_server, set_column, set_timeoutのaliasとしてserver, column, timeoutが使えるようになりました。
set_*と入力するのが冗長なので、それなしでも設定できるようにしました。もちろん、従来の指定方法でもかまいません。

class AccessCount < MR::Base  
  server :localhost, 1978, :write  
  server :slave_host, 1979, :standby  
  column :count, :number  
  column :name, :string  
  timeout 1  
end  

■カラムの型として数値型を指定するときは、:numberを使用するようにしました
整数だけでなく実数も扱うので、指定する型名を:integerから:numberに変更しました。:integerを指定してもかまいません(内部では:numberとして扱われます)

■スキーマを途中で変更できるようになりました。
以前はTTが稼働を始めたあとにスキーマを変更することができませんでした。今バージョンからはスキーマの変更はいつでも自由に行えるようになりました。TTに存在しているカラムでも、MRクラスで指定していないカラムのデータは拾いません。

class AccessCount < MR::Base  
  server :local, 1978, :write  
  column :count, :number  
end  

AccessCount.create(:count => 1)  
a = AccessCount.first  
AccessCount.column(:name, :string)  
a.name = "tsukasa"  
a.save  
AccessCount.find(a.id) #=> #<AccessCount:0xb7997e08 @id=1, @count=1, @name="tsukasa">  

■nil値を指定できるようになりました
以前はnilを指定すると空文字になったり0が設定されたりしていました。今バージョンからはnil値が有効になっています。

他に、内部的な構造は大きく変更しています。複数のmoduleをincludeする方式から、単純にクラスの再定義を行う方式に変更しています。また、一部のロジックは別クラスとして定義しています。