Class: Summarizer::Base::AddItUp
- Inherits:
-
Object
- Object
- Summarizer::Base::AddItUp
show all
- Defined in:
- lib/summarizer/add_it_up.rb
Instance Method Summary
collapse
Constructor Details
#initialize(tied_to_class) ⇒ AddItUp
Returns a new instance of AddItUp.
6
7
8
9
10
11
12
13
14
15
16
|
# File 'lib/summarizer/add_it_up.rb', line 6
def initialize(tied_to_class)
options = tied_to_class.read_inheritable_attribute 'options'
@attributes = {}
(tied_to_class.read_inheritable_attribute('attributes') || []).each{|a| @attributes[a] = 0.0}
@digits = options[:digits] || 2
@digits_factor = 1.0
@digits.times{ @digits_factor *= 10 }
@empty = true
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(symbol, *args) ⇒ Object
37
38
39
40
|
# File 'lib/summarizer/add_it_up.rb', line 37
def method_missing(symbol, *args)
return @attributes[symbol] if @attributes.has_key? symbol
super symbol, *args
end
|
Instance Method Details
#add(obj) ⇒ Object
Add attribute values of referring class instance
19
20
21
22
|
# File 'lib/summarizer/add_it_up.rb', line 19
def add(obj)
@attributes.each{|key, value| @attributes[key] = value + (obj.send(key) * @digits_factor).round / @digits_factor}
@empty = false
end
|
#empty? ⇒ Boolean
29
30
31
|
# File 'lib/summarizer/add_it_up.rb', line 29
def empty?
@empty
end
|
#reset ⇒ Object
24
25
26
27
|
# File 'lib/summarizer/add_it_up.rb', line 24
def reset
@attributes.each_key{|key| @attributes[key] = 0.0}
@empty = true
end
|
#respond_to?(symbol, include_priv = false) ⇒ Boolean
42
43
44
45
|
# File 'lib/summarizer/add_it_up.rb', line 42
def respond_to?(symbol, include_priv = false)
return true if @attributes.has_key? symbol
super symbol, include_priv
end
|
#static ⇒ Object
33
34
35
|
# File 'lib/summarizer/add_it_up.rb', line 33
def static
Static.new(@attributes)
end
|