Sha256: 461bf0c4ccec67f9ee1b7d8437cf9aaa70068dfe631da3d80ed57082d7143ae8

Contents?: true

Size: 1002 Bytes

Versions: 1

Compression:

Stored size: 1002 Bytes

Contents

require 'ostruct'
require 'yaml'
require 'quandl/project_root'

module Quandl
  class Config < ::OpenStruct
    VERSION = '0.0.4'

    def initialize(file_name, options = {})
      raw_config = File.read(project_root.join('config', "#{file_name}.yml"))
      erb_config = ERB.new(raw_config).result
      config = YAML.load(erb_config)[project_environment]

      @_root = options.delete(:root_path)
      @_environment = options.delete(:environment)

      super(config)
    end

    def configurable_attributes
      setters_and_getters = methods - self.class.instance_methods
      getters = setters_and_getters.reject { |method| method =~ /=$/ }
      getters
    end

    private

    def project_root
      @_root ||= defined?(Rails) ? ::Rails.root : Pathname.new(ProjectRoot.root)
    end

    def project_environment
      @_environment ||= defined?(Rails) ? ::Rails.env : (ENV['RAILS_ENV'] || ENV['RAKE_ENV'] || ENV['QUANDL_ENV'] || 'default')
    end
  end
end

require 'quandl/configurable'

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
quandl-config-0.0.4 lib/quandl/config.rb