Sha256: ca3301fa03b860b1c29b753d6a4654d7c5e0f11a46e0f49d44053757970934e7

Contents?: true

Size: 1.18 KB

Versions: 5

Compression:

Stored size: 1.18 KB

Contents

require 'logger'

module RakutenWebService
  class Configuration
    attr_accessor :application_id, :affiliate_id, :max_retries, :debug

    def initialize
      @max_retries = 5
    end

    def generate_parameters(params)
      convert_snake_key_to_camel_key(default_parameters.merge(params))
    end

    def default_parameters 
      { :application_id => application_id, :affiliate_id => affiliate_id }
    end

    def debug_mode?
      ENV.has_key?('RWS_SDK_DEBUG') || debug
    end

    private
    def convert_snake_key_to_camel_key(params)
      params.inject({}) do |h, (k, v)|
        k = k.to_s.gsub(/([a-z]{1})_([a-z]{1})/) { "#{$1}#{$2.capitalize}" }
        h[k] = v
        h
      end
    end
  end

  def configure(&block)
    @configuration ||= Configuration.new
    if block
      if block.arity != 1
        raise ArgumentError, 'Block is required to have one argument' 
      end
      block.call(@configuration)
    end
    return @configuration
  end

  def configuration(&block)
    $stderr.puts "Warning: RakutenWebService.configuration is deprecated. Use RakutenWebService.configure." if block_given?
    self.configure(&block)
  end

  module_function :configure, :configuration
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
rakuten_web_service-1.2.0 lib/rakuten_web_service/configuration.rb
rakuten_web_service-1.1.1 lib/rakuten_web_service/configuration.rb
rakuten_web_service-1.1.0 lib/rakuten_web_service/configuration.rb
rakuten_web_service-1.0.0 lib/rakuten_web_service/configuration.rb
rakuten_web_service-1.0.0.rc1 lib/rakuten_web_service/configuration.rb