Module: QuarterTime::QuarterDriven

Defined in:
lib/quarter_time/quarter_driven.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/quarter_time/quarter_driven.rb', line 3

def self.included(base)
  version = ActiveSupport::VERSION::MAJOR
  scope_method = "named_scope" if version.to_i < 3
  scope_method = "scope" if version.to_i >= 3
   
  base.class_eval %Q{
    #{scope_method} :for_quarter, lambda {|*args|
      quarter_obj = (args[0].is_a?(Quarter) ? args[0] : Quarter.new(args[0],args[1]))
      {:conditions=>{:year=>quarter_obj.year, :quarter=>quarter_obj.quarter}}
    }
      
   
    [:start_date,:end_date,:quarter_stamp].each do |delegated_method|
      define_method(delegated_method){ self.quarter_obj.send(delegated_method) }
    end
  }
end

Instance Method Details

#quarter_objObject



21
22
23
# File 'lib/quarter_time/quarter_driven.rb', line 21

def quarter_obj
  @quarter_obj ||= Quarter.new(self.year,self.quarter)
end