class Matt::Configuration
Constants
- DEBUG_INFO
- DEBUG_SILENT
- DEBUG_VERBOSE
Attributes
at_predicate[RW]
csv_options[RW]
debug_level[RW]
folder[RW]
stderr[RW]
stdout[RW]
Public Class Methods
new(folder) { |self| ... }
click to toggle source
# File lib/matt/configuration.rb, line 8 def initialize(folder) @folder = folder @stdout = $stdout @stderr = $stderr @csv_options = { :write_headers => true } @at_predicate = Matt.yesterday_predicate @debug_level = DEBUG_INFO yield(self) if block_given? end
Public Instance Methods
datasources()
click to toggle source
# File lib/matt/configuration.rb, line 29 def datasources @datasources ||= load_dynamic_objects(datasources_folder, Matt::Datasource) end
Also aliased as: ds
datasources_folder()
click to toggle source
# File lib/matt/configuration.rb, line 25 def datasources_folder folder/"datasources" end
exporters()
click to toggle source
# File lib/matt/configuration.rb, line 47 def exporters @exporters ||= load_dynamic_objects(exporters_folder, Matt::Exporter) end
Also aliased as: es
exporters_folder()
click to toggle source
# File lib/matt/configuration.rb, line 43 def exporters_folder folder/"exporters" end
measures()
click to toggle source
# File lib/matt/configuration.rb, line 38 def measures @measures ||= load_dynamic_objects(measures_folder, Matt::Measure) end
Also aliased as: ms
measures_folder()
click to toggle source
# File lib/matt/configuration.rb, line 34 def measures_folder folder/"measures" end
Private Instance Methods
load_dynamic_object(file)
click to toggle source
# File lib/matt/configuration.rb, line 70 def load_dynamic_object(file) self.instance_eval(file.read, file.to_s) end
load_dynamic_objects(folder, expected_type)
click to toggle source
# File lib/matt/configuration.rb, line 54 def load_dynamic_objects(folder, expected_type) struct = OpenStruct.new folder.glob("*.rb").each_with_object(struct) do |file,memo| obj = load_dynamic_object(file) if obj.nil? raise "Wrong file #{file}: eval returned nil" elsif !obj.is_a?(expected_type) raise "Wrong file #{file}: must include #{expected_type}" else obj.configuration = self obj.name = file.basename.rm_ext.to_s memo.send("#{obj.name}=", obj) end end end