しばらく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
posted by
genki
on Fri 19 Dec 2008
at 04:08