Class: Bitcharts::BaseChart
- Inherits:
-
Object
- Object
- Bitcharts::BaseChart
- Defined in:
- app/models/bitcharts/base_chart.rb
Direct Known Subclasses
Class Method Summary collapse
Instance Method Summary collapse
- #label ⇒ Object
- #scoped_label(scope) ⇒ Object
- #value(date_range) ⇒ Object
- #value_for_date_range(date_range) ⇒ Object
Class Method Details
.chart_types ⇒ Object
9 10 11 |
# File 'app/models/bitcharts/base_chart.rb', line 9 def chart_types @@keys ||= {} end |
.for_key(key) ⇒ Object
13 14 15 |
# File 'app/models/bitcharts/base_chart.rb', line 13 def for_key(key) chart_types[key].try(:new) end |
.has_key(key) ⇒ Object
4 5 6 7 |
# File 'app/models/bitcharts/base_chart.rb', line 4 def has_key(key) chart_types[key] = self define_method(:key) { key } end |
.has_scope ⇒ Object
17 18 19 20 21 22 23 24 25 |
# File 'app/models/bitcharts/base_chart.rb', line 17 def has_scope define_method(:scoped_value_for_date_range) do |date_range, scope| scoped_value(date_range, scope) end define_method(:scoped_value) do |date_range, scope| raise 'Chart must implement #scoped_value(date_range, scope)' end end |
Instance Method Details
#label ⇒ Object
28 29 30 |
# File 'app/models/bitcharts/base_chart.rb', line 28 def label key end |
#scoped_label(scope) ⇒ Object
32 33 34 |
# File 'app/models/bitcharts/base_chart.rb', line 32 def scoped_label(scope) "#{key}[#{scope}]" end |
#value(date_range) ⇒ Object
40 41 42 |
# File 'app/models/bitcharts/base_chart.rb', line 40 def value(date_range) raise 'Chart must implement #value(date_range)' end |
#value_for_date_range(date_range) ⇒ Object
36 37 38 |
# File 'app/models/bitcharts/base_chart.rb', line 36 def value_for_date_range(date_range) value(date_range) end |