Merb勉強会#1 Hand Out
- 18:40より会場設営
- 19:00開始。まずは自己紹介。Merbと私。聞きたいこと。
- DataMapper
とActiveReco rdの比較 - MerbとRailsの比較
- その他色々とMerb談義
参考資料
参考資料
僕はMerbではDataMapper
基本的には、
1 property :name, Type[, options]
という感じで利用します。
optionsとしては、Hashの形式で以下のようなものが指定出来ます。
See Also
Merb勉強会の参考資料としてMerbの思想的なものをまとめておきます。
1. alias_meth
Rails流のalias_meth
例)
1 Merb::BootLoader.before_app _loads do 2 # do something 3 end
2. APIを用意する
MerbにはAPIが用意されていて、以下の三つのカテゴリに分かれているようです。
Merbのソースをみると、@publicや@privateなどとメソッドのコメントに書かれています。
昔からあったような気がするのですが、 つい最近までその存在に気がついてませんでした。
1 % sudo gem update merb
これで、merb関連のgemを一括で最新バージョンにアップデートする事が出来ます。
しばらくMerb-1.0.3
1 MERB_ROOT/slices/mer b-auth-sli ce-activat ion/lib/me rb-auth- 2 slice-acti vation.rb: 5:in `load_depen dency': wrong number of arguments (1 for 2) 3 (ArgumentEr ror)
どうやらload_depen
の第二引数が省略出来なくなったらしい。
merb-core-
1 def load_dependency(name, *ver, &blk) dep = name.is_a?(Gem::Dependency ) ? name : track_depe ndency(name, *ver, &blk 2 ) 3 gem(dep) 4 rescue Gem::LoadError => e 5 Merb.fatal! "The gem #{name}, #{ver.inspect} was not found", e 6 ensure 7 begin 8 require dep.require_as 9 rescue LoadError => e 10 Merb.fatal! "The file #{dep.require_as } was not found", e 11 end 12 13 if block = dep.require_bl ock 14 block.call 15 end 16 Merb.logger.verbose!("loading gem '#{dep.name}' ...") 17 return dep # ensure needs explicit return 18 end
これに対して、
merb-core-
1 def load_dependency(name, clr, *ver, &blk) 2 begin 3 dep = name.is_a?(Gem::Dependency ) ? name : track_depe ndency(name, clr, *ve 4 r, &blk) 5 return unless dep.require_as 6 Gem.activate(dep) 7 rescue Gem::LoadError => e 8 e.set_backtr ace dep.original_c aller 9 Merb.fatal! "The gem #{name}, #{ver.inspect} was not found", e 10 end 11 12 begin 13 require dep.require_as 14 rescue LoadError => e 15 e.set_backtr ace dep.original_c aller 16 Merb.fatal! "The file #{dep.require_as } was not found", e 17 end 18 19 if block = dep.require_bl ock 20 block.call 21 end 22 23 Merb.logger.verbose!("loading gem '#{dep.name}' ...") 24 return dep # ensure needs explicit return 25 end
第二引数のclrが省略出来なくなった模様。 private APIはメジャーバージョンアップじゃなくても仕様変わるのか。
#merbで聞いてみた所、1.0.4から以下のように明示的に指定するようになったらしい。
1 load_dependency 'merb-slice s', :immediate => true
詳しくは
http://wik
教えてくれたcarpeliamありがとう!
See Also