2012-03-09 7 views
1

Linkクラスのpropertyステートメントへの複数の参照を削除するにはどうすればよいですか?私は重複を減らすためにしようとしていないときは良い開発者であることの一部は知ってます。..Ruby抽象モデルステートメント

require 'sinatra' 
require 'data_mapper' 
require 'shotgun' 

はなってきて

%w{sinatra data_mapper shotgun}.each { |lib| require lib}

 %w{sinatra data_mapper shotgun}.each { |lib| require lib} 
     DataMapper::setup(:default, "sqlite3://#{Dir.pwd}/mini.db") 
     class Link 
      include DataMapper::Resource 
      property :id, Serial 
      property :title, Text, :required => true 
      property :url, String, :required => true 
      property :points, Integer, :default => 0 
     end 
     DataMapper.auto_upgrade! 

答えて

1

の宝石用require文を使用して、類似した何かを行っています。技術的に言えば、複数のpropertyステートメントを持つことは重複の形ですが、削除する時間の価値がないほど無害です。これは、ここで暗示されている代替アプローチに照らして考えてみると特に当てはまります。

最終的にこれは、コードを維持するのを困難にする不要なイディオムです。 propertyのステートメントは単独で残しておかなければなりません。別のアプローチをとることに反対することをお勧めします。

あなたは絶対に何らかの理由でこの操作を行う必要がある場合は、あなたが使用することができます。

[ 
    [:id, Serial], 
    [:title, Text, :required => true], 
    [:url, String, :required => true], 
    [:points, Integer, :default => 0] 
].each { |args| property *args } 
+0

私は完全に同意するものとします。これは好奇心とredditアプリケーションを可能な限り少ない行に減らそうとする私の試みから来たものです。以前は '* args'の使い方が分かりませんでした。ありがとう! – Dru