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する方式から、単純にクラスの再定義を行う方式に変更しています。また、一部のロジックは別クラスとして定義しています。