Class: Teer::Template
- Inherits:
-
Object
- Object
- Teer::Template
- Defined in:
- lib/teer.rb
Class Method Summary collapse
- .create(data, names, rules_path_or_obj, kwargs = {}, locale = :GB_en) ⇒ Object
- .parser ⇒ Object
- .register_helpers ⇒ Object
- .template(rules_path_or_obj, locale) ⇒ Object
Instance Method Summary collapse
Class Method Details
.create(data, names, rules_path_or_obj, kwargs = {}, locale = :GB_en) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/teer.rb', line 10 def self.create(data, names, rules_path_or_obj, kwargs = {}, locale = :GB_en) return OpenStruct.new(data: nil, finding: nil) if data.empty? register_helpers data_keys = data.first.keys raise ArgumentError, "#{names} not present in data" if (Array(names) - data_keys).count != 0 @template = Engine.new(data, names, template(rules_path_or_obj, locale), parser, locale, kwargs) end |
.register_helpers ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/teer.rb', line 39 def self.register_helpers parser.register_helper(:round) do |ctx, value| value < 1 ? value.round(2) : value.round(1) end parser.register_helper(:month) do |ctx, value| Time.at(value).strftime('%B') end end |
.template(rules_path_or_obj, locale) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/teer.rb', line 22 def self.template(rules_path_or_obj, locale) case rules_path_or_obj when String YAML.safe_load(File.read(rules_path_or_obj)) when Array rules_path_or_obj.map { |condition, text| [condition, { 'text' => { locale.to_s => text } } ] }.to_h when Hash return rules_path_or_obj else raise ArgumentError, "Unknown template structure: #{rules_path_or_obj.class}" end end |
Instance Method Details
#pre_parsed_finding ⇒ Object
18 19 20 |
# File 'lib/teer.rb', line 18 def pre_parsed_finding @template.pre_parsed_finding end |