Module: Railstar::SearchBase::ClassMethods

Defined in:
lib/railstar/search_base.rb

Instance Method Summary collapse

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, options={}
  ActiveRecord::ConnectionAdapters::Column.new(name, options[:default], options[: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

Raises:

  • (ArgumentError)


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