Class: Spree::Report::Observation
- Inherits:
-
Object
- Object
- Spree::Report::Observation
show all
- Defined in:
- app/reports/spree/report/observation.rb
Direct Known Subclasses
BestSellingProductsReport::Result::Observation, CartAdditionsReport::Result::Observation, CartRemovalsReport::Result::Observation, CartUpdationsReport::Result::Observation, ProductViewsReport::Result::Observation, ProductViewsToCartAdditionsReport::Result::Observation, ProductViewsToPurchasesReport::Result::Observation, TimedObservation, Spree::ReturnedProductsReport::Result::Observation, TrendingSearchReport::Result::Observation, UniquePurchasesReport::Result::Observation, UsersNotConvertedReport::Result::Observation, UsersWhoRecentlyPurchasedReport::Result::Observation
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of Observation.
3
4
5
|
# File 'app/reports/spree/report/observation.rb', line 3
def initialize
set_defaults
end
|
Class Method Details
.build_from_hash(records) ⇒ Object
17
18
19
20
21
22
23
24
25
|
# File 'app/reports/spree/report/observation.rb', line 17
def build_from_hash(records)
build_from_list(records.keys)
define_method :set_defaults do
records.keys.each do |key|
self.send("#{ key }=", records[key])
end
end
end
|
.build_from_list(records) ⇒ Object
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'app/reports/spree/report/observation.rb', line 27
def build_from_list(records)
attr_accessor *records
define_method :populate do |result|
records.each do |record|
record_name = record.to_s
self.send("#{ record }=", result[record_name]) if result[record_name]
end
end
define_method :set_defaults do
end
define_method :observations_to_h do
records.inject({}) { |acc, record| acc[record] = self.send(record); acc }
end
end
|
.observation_fields(records) ⇒ Object
8
9
10
11
12
13
14
15
|
# File 'app/reports/spree/report/observation.rb', line 8
def observation_fields(records)
case records
when Hash
build_from_hash(records)
else
build_from_list(records)
end
end
|
Instance Method Details
#to_h ⇒ Object
46
47
48
|
# File 'app/reports/spree/report/observation.rb', line 46
def to_h
observations_to_h
end
|