class Conflate::Conflation
Attributes
config_object[RW]
yaml_path[RW]
Public Class Methods
new(yaml_path, config_object)
click to toggle source
Public: Initialize a new Conflation
yaml_path
- Path to the YAML file to read config information from config_object
- Object to receive the configuration values (e.g., Rails.application.config)
# File lib/conflate/conflation.rb, line 13 def initialize(yaml_path, config_object) self.yaml_path = yaml_path self.config_object = config_object end
Public Instance Methods
apply()
click to toggle source
Public: Add the contents of the YAML file to the config object
# File lib/conflate/conflation.rb, line 19 def apply if config_object.respond_to?(name) && !config_object.public_send(name).nil? # doing this to properly handle the slightly different behaviors of # OpenStruct (which does respond to unassigned attributes) or the # Rails.application.config object (which doesn't) warn "#{config_object.class} already has a #{config_object.public_send(name).class} for the key '#{name}'. Skipping conflating it with the contents of #{File.basename yaml_path}." return # so don't set it end config_object.public_send "#{name}=", data end
name()
click to toggle source
Public: The name of the conflation, based on the YAML file name
Returns a String
# File lib/conflate/conflation.rb, line 34 def name File.basename(yaml_path, ".yml") end
Private Instance Methods
data()
click to toggle source
Private: The parsed data from the YAML file
# File lib/conflate/conflation.rb, line 39 def data YAML.load ERB.new(File.read File.expand_path yaml_path).result rescue StandardError, SyntaxError => e {} end