Sha256: 5f6b667bd73904ecaef8d2bdbece3c6e9281ec2e0d4108b26f63443e02d6a1d0

Contents?: true

Size: 843 Bytes

Versions: 9

Compression:

Stored size: 843 Bytes

Contents

module Iyzi
  class Configuration
    BASE_URL        = 'https://api.iyzipay.com/'.freeze
    REQUIRED_CONFIG = %i(base_url api_key secret).freeze
    attr_accessor :base_url, :api_key, :secret

    def initialize(options = {})
      @base_url = options[:base_url] || BASE_URL
      @api_key  = options[:api_key]
      @secret   = options[:secret]
    end

    def valid?
      !missing_configs.present?
    end

    def validate
      return if valid?
      fail "Missing configuration keys: #{missing_configs.collect(&:to_s).join(', ')}"
    end

    def missing_configs
      REQUIRED_CONFIG - defined_params.keys.collect(&:to_sym)
    end

    def defined_params
      to_h.select { |k, v| v.present? }
    end

    def to_h
      {
        base_url: base_url,
        api_key:  api_key,
        secret:   secret
      }
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
iyzi-0.8.1 lib/iyzi/configuration.rb
iyzi-0.8.0 lib/iyzi/configuration.rb
iyzi-0.7.0 lib/iyzi/configuration.rb
iyzi-0.6.0 lib/iyzi/configuration.rb
iyzi-0.5.0 lib/iyzi/configuration.rb
iyzi-0.4.0 lib/iyzi/configuration.rb
iyzi-0.3.0 lib/iyzi/configuration.rb
iyzi-0.2.0 lib/iyzi/configuration.rb
iyzi-0.1.0 lib/iyzi/configuration.rb