Sha256: df29015d8d2fb583a94d7c2e54e15981fd3914f69512be5412e2826a7c65116b

Contents?: true

Size: 1.15 KB

Versions: 8

Compression:

Stored size: 1.15 KB

Contents

require 'stringify-hash'

module Beaker
  module Options

    # A hash that treats Symbol and String keys interchangeably
    # and recursively merges hashes
    class OptionsHash < StringifyHash

      # Determine if type of ObjectHash is pe, defaults to true
      #
      # @example Use this method to test if the :type setting is pe
      #     a['type'] = 'pe'
      #     a.is_pe? == true
      #
      # @return [Boolean]
      def is_pe?
        self[:type] ? self[:type].include?('pe') : true
      end

      # Determine the puppet type of the ObjectHash
      #
      # Default is FOSS
      #
      # @example Use this method to test if the :type setting is pe
      #     a['type'] = 'pe'
      #     a.get_type == :pe
      #
      # @return [Symbol] the type given in the options
      def get_type
        case self[:type]
        when /pe/
          :pe
        else
          :foss
        end
      end

      def dump_to_file(output_file)
        dirname = File.dirname(output_file)
        unless File.directory?(dirname)
          FileUtils.mkdir_p(dirname)
        end
        File.open(output_file, 'w+') { |f| f.write(dump)  }
      end

    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
beaker-4.42.0 lib/beaker/options/options_hash.rb
beaker-4.41.2 lib/beaker/options/options_hash.rb
beaker-4.41.1 lib/beaker/options/options_hash.rb
beaker-4.41.0 lib/beaker/options/options_hash.rb
beaker-4.40.2 lib/beaker/options/options_hash.rb
beaker-4.40.1 lib/beaker/options/options_hash.rb
beaker-4.40.0 lib/beaker/options/options_hash.rb
beaker-4.39.0 lib/beaker/options/options_hash.rb