Sha256: 60cdd8d765c128dae9430ef7d14a3ac59089605d6fef116e1ec8b30231ff01ef

Contents?: true

Size: 841 Bytes

Versions: 3

Compression:

Stored size: 841 Bytes

Contents

module Pears
  module Provider
    class Base
      attr_accessor :data

      def initialize(data, on_failure: :raise)
        @data = data
      end

      def has_key?(key)
        @data.has_key? key
      end

      def each(&block)
        @data.block(&:yield)
      end

      def [](key)
        @data[key]
      end

      def purge
        true
      end

      private

      def parse_yaml(yaml_string)
        yaml_data = YAML.load(yaml_string)

        unless yaml_data.respond_to? :with_indifferent_access
          raise Pears::InvalidProviderData
        end

        yaml_data.with_indifferent_access
      rescue Psych::SyntaxError => e
        logger ||= defined?(Rails) ? Rails.logger : Logger.new(STDOUT)
        logger.warn "#{e.class} #{e.message}"
        raise Pears::InvalidProviderData
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pears-0.3.2 lib/pears/provider/base.rb
pears-0.3.1 lib/pears/provider/base.rb
pears-0.3.0 lib/pears/provider/base.rb