Class: INatChannel::Template
- Inherits:
-
Object
- Object
- INatChannel::Template
- Defined in:
- lib/inat-channel/template.rb
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#template ⇒ Object
readonly
Returns the value of attribute template.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(template, data) ⇒ Template
constructor
A new instance of Template.
- #process(observation_source) ⇒ Object
Constructor Details
#initialize(template, data) ⇒ Template
13 14 15 16 17 18 19 20 |
# File 'lib/inat-channel/template.rb', line 13 def initialize template, data @template = template @data = data @renderer = ERB::new @template, trim_mode: '-' IC::TAXA_ICONS.merge! data[:taxa_icons] if data[:taxa_icons] IC::ICONS.merge! data[:icons] if data[:icons] IC::FORMATS.merge! data[:formats] if data[:formats] end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
11 12 13 |
# File 'lib/inat-channel/template.rb', line 11 def data @data end |
#template ⇒ Object (readonly)
Returns the value of attribute template.
11 12 13 |
# File 'lib/inat-channel/template.rb', line 11 def template @template end |
Class Method Details
.default ⇒ Object
84 85 86 |
# File 'lib/inat-channel/template.rb', line 84 def default @default ||= new(DEFAULT_TEMPLATE, {}).freeze end |
.load(path) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/inat-channel/template.rb', line 43 def load path content = File.read path if content.lines(chomp: true).first == '---' docs = content.split(/^---\n/m, 3) data = if docs[0].strip.empty? && docs[1] YAML.safe_load docs[1], symbolize_names: true else YAML.safe_load docs[0], symbolize_names: true end || {} template = docs[2] || docs[1] || content else data = {} template = content end new(template, data) end |
Instance Method Details
#process(observation_source) ⇒ Object
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/inat-channel/template.rb', line 22 def process observation_source observation = IC::convert_observation observation_source vars = { observation: observation, datetime: observation.datetime, location: observation.location, places: observation.places, taxon: observation.taxon, user: observation.user, date: observation.date, time: observation.time, icons: IC::ICONS, taxa_icons: IC::TAXA_ICONS, config: IC::CONFIG, data: @data } @renderer.result_with_hash vars end |