Class: Trifle::Stats::Series
- Inherits:
-
Object
- Object
- Trifle::Stats::Series
show all
- Includes:
- Mixins::Packer
- Defined in:
- lib/trifle/stats/series.rb
Defined Under Namespace
Classes: Aggregator, Formatter, Transponder
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
included
Constructor Details
#initialize(series) ⇒ Series
Returns a new instance of Series.
10
11
12
13
|
# File 'lib/trifle/stats/series.rb', line 10
def initialize(series)
@series = series
@series[:values] = self.class.normalize(@series[:values])
end
|
Instance Attribute Details
#series ⇒ Object
Returns the value of attribute series.
8
9
10
|
# File 'lib/trifle/stats/series.rb', line 8
def series
@series
end
|
Class Method Details
.register_aggregator(name, klass) ⇒ Object
25
26
27
28
29
|
# File 'lib/trifle/stats/series.rb', line 25
def self.register_aggregator(name, klass)
Aggregator.define_method(name) do |params|
klass.new.aggregate(series: @series.series, **params)
end
end
|
41
42
43
44
45
|
# File 'lib/trifle/stats/series.rb', line 41
def self.register_formatter(name, klass)
Formatter.define_method(name) do |params, &block|
klass.new.format(series: @series.series, **params, &block)
end
end
|
.register_transponder(name, klass) ⇒ Object
57
58
59
60
61
|
# File 'lib/trifle/stats/series.rb', line 57
def self.register_transponder(name, klass)
Transponder.define_method(name) do |params|
@series.series = klass.new.transpond(series: @series.series, **params)
end
end
|
Instance Method Details
#aggregate ⇒ Object
21
22
23
|
# File 'lib/trifle/stats/series.rb', line 21
def aggregate
@aggregate ||= Aggregator.new(self)
end
|
37
38
39
|
# File 'lib/trifle/stats/series.rb', line 37
def format
@format ||= Formatter.new(self)
end
|
#transpond ⇒ Object
53
54
55
|
# File 'lib/trifle/stats/series.rb', line 53
def transpond
@transpond ||= Transponder.new(self)
end
|