Sha256: d626d30e9bb8bb985d0d7225ca4daa78aba3b4448850ef597c4bf29375e1d15b

Contents?: true

Size: 781 Bytes

Versions: 9

Compression:

Stored size: 781 Bytes

Contents

require 'delegate'
module Chutney 
  # gherkin_lint configuration object
  class Configuration < SimpleDelegator
    def initialize(path)
      @path = path
      @config = load_configuration || {}
      load_user_configuration
      super(@config)
    end

    def configuration_path
      @path
    end

    def load_configuration
      YAML.load_file configuration_path || '' if configuration_path
    end

    def load_user_configuration
      config_file = Dir.glob(File.join(Dir.pwd, '**', '.chutney.yml')).first
      merge_config(config_file) if !config_file.nil? && File.exist?(config_file)
    end

    private

    def merge_config(config_file)
      @config.merge!(YAML.load_file(config_file)) { |_k, old, new| old.merge!(new) } unless @config.empty?
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
chutney-2.2.1 lib/chutney/configuration.rb
chutney-2.1.1 lib/chutney/configuration.rb
chutney-2.1.0 lib/chutney/configuration.rb
chutney-2.0.3.1 lib/chutney/configuration.rb
chutney-2.0.3 lib/chutney/configuration.rb
chutney-2.0.2 lib/chutney/configuration.rb
chutney-2.0.1 lib/chutney/configuration.rb
chutney-2.0.0 lib/chutney/configuration.rb
chutney-2.0.0.rc1 lib/chutney/configuration.rb