Class: Reportinator::ReportLoader
- Inherits:
-
Base
- Object
- Base
- Reportinator::ReportLoader
show all
- Defined in:
- lib/reportinator/report/loader.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from Base
config, #config, logger, #logger
Methods included from Helpers
#merge_hash, #merge_hash!, #symbolize_attributes
Class Method Details
.load(template, metadata = {}) ⇒ Object
6
7
8
9
10
|
# File 'lib/reportinator/report/loader.rb', line 6
def self.load(template, metadata = {})
loader = new(metadata: metadata)
loader.template = Template.load(template: template, metadata: metadata)
loader
end
|
Instance Method Details
12
13
14
15
16
17
18
19
|
# File 'lib/reportinator/report/loader.rb', line 12
def get_metadata
report_metadata = {}
template.parse(metadata) do |data, old_meta, new_meta|
meta = ValueParser.parse(new_meta, metadata)
report_metadata = merge_hash(meta, report_metadata) if meta.present?
end
report_metadata
end
|
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'lib/reportinator/report/loader.rb', line 33
def parse_metadata(data, old_meta, new_meta)
meta = ValueParser.parse(old_meta, metadata)
if new_meta.instance_of? Hash
unparsed_meta = new_meta.select { |key| config.configured_metadata.include? key }
meta_to_parse = new_meta.reject { |key| config.configured_metadata.include? key }
parsing_meta = merge_hash(meta, unparsed_meta)
parsed_meta = ValueParser.parse(meta_to_parse, parsing_meta)
remerged_meta = merge_hash(parsed_meta, unparsed_meta)
else
remerged_meta = {}
end
report_meta = merge_hash(remerged_meta, meta)
report_from_data(data, report_meta)
end
|
#report ⇒ Object
21
22
23
24
25
26
27
28
29
30
31
|
# File 'lib/reportinator/report/loader.rb', line 21
def report
report = Report.new
reports = template.parse(metadata) do |data, old_meta, new_meta|
parse_metadata(data, old_meta, new_meta)
end
reports.compact.each do |report_template|
output = report_template.data
report.insert(output)
end
report
end
|