Class: PgReports::ReportLoader
- Inherits:
-
Object
- Object
- PgReports::ReportLoader
- Defined in:
- lib/pg_reports/report_loader.rb
Overview
Loads YAML report definitions from the definitions directory
Class Method Summary collapse
- .definitions_path ⇒ Object
- .get(module_name, report_name) ⇒ Object
- .load_all ⇒ Object
- .reload! ⇒ Object
Class Method Details
.definitions_path ⇒ Object
29 30 31 |
# File 'lib/pg_reports/report_loader.rb', line 29 def self.definitions_path Pathname.new(__dir__).join("definitions") end |
.get(module_name, report_name) ⇒ Object
25 26 27 |
# File 'lib/pg_reports/report_loader.rb', line 25 def self.get(module_name, report_name) load_all.dig(module_name.to_s, report_name.to_s) end |
.load_all ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/pg_reports/report_loader.rb', line 8 def self.load_all @definitions ||= begin definitions = {} Dir.glob(definitions_path.join("**/*.yml")).each do |yaml_file| definition = ReportDefinition.new(yaml_file) module_name = definition.config["module"] report_name = definition.config["name"] definitions[module_name] ||= {} definitions[module_name][report_name] = definition end definitions end end |
.reload! ⇒ Object
33 34 35 36 |
# File 'lib/pg_reports/report_loader.rb', line 33 def self.reload! @definitions = nil load_all end |