Class: Season::ScopeBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/season/scope_builder.rb

Instance Method Summary collapse

Constructor Details

#initialize(klass) ⇒ ScopeBuilder

Returns a new instance of ScopeBuilder.



4
5
6
7
# File 'lib/season/scope_builder.rb', line 4

def initialize(klass)
  @klass = klass
  @query_builder = QueryBuilder.new(adapter_class_name)
end

Instance Method Details

#build(table_name, column_name, query_verb) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
# File 'lib/season/scope_builder.rb', line 9

def build(table_name, column_name, query_verb)
  unless method_exists?(column_name)
    query_str = @query_builder.build(table_name, column_name, query_verb)

    @klass.instance_eval %Q{
      def #{column_name}_#{query_verb}(*args)
        #{query_str}
      end
    }
  end
end