Module: Railstar::SearchBase::ClassMethods
- Defined in:
- lib/railstar/search_base.rb
Instance Method Summary collapse
-
#column(name, options = {}) ⇒ Object
meta data setter.
- #set_model(klass) ⇒ Object
Instance Method Details
#column(name, options = {}) ⇒ Object
meta data setter
30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/railstar/search_base.rb', line 30 def column name, ={} ActiveRecord::ConnectionAdapters::Column.new(name, [:default], [:type] || "string").tap do |col| define_method("#{name}=") do |value| instance_variable_set("@#{name}", col.type_cast(value)) end define_method(name) do unless instance_variable_defined?("@#{name}") instance_variable_set("@#{name}", col.default) end instance_variable_get("@#{name}") end end end |
#set_model(klass) ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'lib/railstar/search_base.rb', line 44 def set_model klass #TODO: klassが存在する(ActiveRecord::Baseの子供として)かどうかをチェックしたい。 # ActiveRecord::Base.connection.tablesをみて、テーブル名からクラスを探すチェックをいれる raise ArgumentError.new('please set ActiveRecord classs') unless defined?(klass) define_method(:target_model) do klass end end |