module MonthConstrain::ActiveRecordBase::Initializer

Public Class Methods

scope(target_class, columns) click to toggle source
# File lib/month_constrain/active_record_base/initializer.rb, line 13
def self.scope(target_class, columns)
  target_class.class_eval do
    columns.each do |column|
      scope "#{column}_in".to_sym, lambda { |from, to|
        relation = self
        relation = relation.where(self.arel_table[column.to_sym].gteq(month_constrain(from))) if from
        relation = relation.where(self.arel_table[column.to_sym].lteq(month_constrain(to))) if to
        relation
      }

      scope column.to_s.to_sym, lambda { |val|
        where(column => month_constrain(val))
      }
    end
  end
end
setter(target_class, columns) click to toggle source
Calls superclass method
# File lib/month_constrain/active_record_base/initializer.rb, line 3
def self.setter(target_class, columns)
  target_class.class_eval do
    columns.each do |column|
      define_method "#{column}=" do |val|
        super(self.class.month_constrain(val))
      end
    end
  end
end