Sha256: 72e67eda8cfb224764226b0bf3e381f030138dc318e91f8742df7b9dc9898cd2

Contents?: true

Size: 1.05 KB

Versions: 1

Compression:

Stored size: 1.05 KB

Contents

require "yaml"

# This class wraps around the YAML files and performs the parsing/applying of
# the config values read from them.
module Conflate
  class Conflation
    attr_accessor :yaml_path, :config_object

    # 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)
    def initialize(yaml_path, config_object)
      self.yaml_path = yaml_path
      self.config_object = config_object
    end

    # Public: Add the contents of the YAML file to the config object
    def apply
      config_object.public_send "#{name}=", data
    end

    # Public: The name of the conflation, based on the YAML file name
    #
    # Returns a String
    def name
      File.basename(yaml_path, ".yml")
    end

    # Private: The parsed data from the YAML file
    def data
      YAML.load ERB.new(File.read File.expand_path yaml_path).result
    rescue StandardError, SyntaxError => e
      {}
    end
    private :data

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
conflate-0.0.1 lib/conflate/conflation.rb