Sha256: e7e1f528b18c4a096c8d7a5c95d3c9713d674c2c53d5d236b07b812230a8d5dd

Contents?: true

Size: 989 Bytes

Versions: 3

Compression:

Stored size: 989 Bytes

Contents

require 'configatron/core' # gem 'configatron'
require 'singleton'        # stdlib
require 'yaml'             # stdlib

class Dolarblue

  # Singleton configuration class
  class Configuration
    include Singleton

    # Give memoized defaults for locked configuration options found in /config/xpaths.yml file
    #
    # @example Usage
    #   conf = Configuration.instance.defaults
    #   conf.base_url       #=> "http://ambito.com/economia/mercados/monedas/dolar/"
    #   conf.blue.buy.xpath #=> "//*[@id=\"contenido\"]/div[1]/div[2]/div/div/div[2]/big"
    #
    # @return [Configatron::Store] the magic configuration instance with hash and dot '.' indifferent access
    def defaults
      return @config if @config

      @config = Configatron::Store.new
      file_path   = File.expand_path('../../../config/xpaths.yml', __FILE__)
      hash_config = YAML::load_file(file_path)

      @config.configure_from_hash(hash_config)
      @config.lock!
      @config
    end
  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dolarblue-0.5.1 lib/dolarblue/configuration.rb
dolarblue-0.5.0 lib/dolarblue/configuration.rb
dolarblue-0.4.0 lib/dolarblue/configuration.rb