Module: Urge::Persistence::ActiveRecordPersistence::ClassMethods
- Defined in:
- lib/urge/persistence/active_record_persistence.rb
Instance Method Summary collapse
-
#urge_all!(name) ⇒ Object
def self.retailer( criteria ) matches = joins( :retailer ) # Can specify name and account code explicitly [:name, :account_code].each do |attribute| matches = matches.where( Retailer.arel_table.matches(“%#attribute%” ) ) unless criteria.blank? end # Can specify general criteria if !criteria.blank? restriction = nil [:name, :account_code].each do |attribute| predicate = Retailer.arel_table.matches( “%#:retailer%” ) restriction = restriction ? restriction.or( predicate ) : predicate end matches = matches.where( restriction ) end matches end.
-
#urgent(name, at = DateTime.now) ⇒ Object
AR finder.
Instance Method Details
#urge_all!(name) ⇒ Object
def self.retailer( criteria )
matches = joins( :retailer )
# Can specify name and account code explicitly
[:name, :account_code].each do |attribute|
matches = matches.where( Retailer.arel_table[attribute].matches("%#{criteria[attribute]}%" ) ) unless criteria[attribute].blank?
end
# Can specify general criteria
if !criteria[:retailer].blank?
restriction = nil
[:name, :account_code].each do |attribute|
predicate = Retailer.arel_table[attribute].matches( "%#{criteria[:retailer]}%" )
restriction = restriction ? restriction.or( predicate ) : predicate
end
matches = matches.where( restriction )
end
matches
end
39 40 41 |
# File 'lib/urge/persistence/active_record_persistence.rb', line 39 def urge_all!( name ) urgent( name ).each { |u| u.urge!( name ) } end |
#urgent(name, at = DateTime.now) ⇒ Object
AR finder
14 15 16 17 18 |
# File 'lib/urge/persistence/active_record_persistence.rb', line 14 def urgent( name, at = DateTime.now ) = urge_schedules[name] raise 'Unknown schedule' unless where( "#{urge_attr_name(name)} < ?", at ) end |