Class: Nard::Appi::Client

Inherits:
Object
  • Object
show all
Includes:
Nard::Appi::ClientExt::Request
Defined in:
lib/nard/appi/client.rb,
lib/nard/appi/client/util/base_normalizer.rb,
lib/nard/appi/client/util/module/args_normalizer.rb,
lib/nard/appi/client/util/module/path_normalizer.rb,
lib/nard/appi/client/util/module/boolean_normalizer.rb,
lib/nard/appi/client/util/module/options_normalizer.rb

Defined Under Namespace

Modules: Util

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Nard::Appi::ClientExt::Request

#get, #path, #post

Constructor Details

#initialize(gem_top_namespace, options = {}) ⇒ Client

Returns a new instance of Client.



12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/nard/appi/client.rb', line 12

def initialize( gem_top_namespace, options = {} )
  options_keys = gem_top_namespace::OPTIONS_KEYS

  self.class.instance_eval do
    set_attr_accessors( options_keys )
  end

  options = gem_top_namespace.options.merge( options ).with_indifferent_access

  options_keys.each do | key |
    send( "#{ key }=", options[ key ] )
  end
end

Class Method Details

.set_attr_accessors(options_keys) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/nard/appi/client.rb', line 26

def self.set_attr_accessors( options_keys )
  return if @_attr_accessors_defined

  options_keys.each do | option_key |
    getter_method = option_key.to_sym
    setter_method = "#{ option_key }=".to_sym
    writer = option_key.to_sym
    attr_reader getter_method unless getter_method.in?( self.class.instance_methods )
    attr_writer writer unless setter_method.in?( self.class.instance_methods )
  end

  @_attr_accessors_defined = true
end