Module: Storcs::SummableSizes
- Included in:
- Device
- Defined in:
- lib/storcs/summable_sizes.rb
Instance Method Summary collapse
-
#summable_sizes(*columns) ⇒ Object
Avoids defining recursively summable columns again and again.
Instance Method Details
#summable_sizes(*columns) ⇒ Object
Avoids defining recursively summable columns again and again. Usage:
class Device
summable_sizes :size, :used, :blah
...
end
For instance, here’s the result for ‘used’ size:
def used
real_used || children.inject(0) do |memo,child|
memo + child.used
end
end
19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/storcs/summable_sizes.rb', line 19 def summable_sizes(*columns) columns.each do |column| class_eval " attr_accessor :real_\#{column}\n def \#{column}\n real_\#{column} || children.inject(0) do |memo,child|\n memo + child.\#{column}\n end\n end\n EOF\n end\nend\n" |