class Nard::Appi::Client
Attributes
top_namespace[R]
Public Class Methods
client_for( namespace )
click to toggle source
@!group Methods for DSL
# File lib/nard/appi/client.rb, line 14 def self.client_for( namespace ) set_top_namespace( namespace ) end
concerns( *namespaces, under: nil )
click to toggle source
# File lib/nard/appi/client.rb, line 18 def self.concerns( *namespaces, under: nil ) raise ArgumentError unless under.present? namespaces.each do | namespace | include_concerned_module( namespace, under ) end end
new( options = {} )
click to toggle source
# File lib/nard/appi/client.rb, line 64 def initialize( options = {} ) set_attr_accessors set_option_values( options ) end
Private Class Methods
include_concerned_module( namespace, under )
click to toggle source
# File lib/nard/appi/client.rb, line 41 def include_concerned_module( namespace, under ) require "#{ under }/#{ namespace.to_s.downcase }" module_name = under.classify .constantize .const_get( namespace.to_s.capitalize ) # puts "#{ module_name } is included." include module_name end
set_attr_accessor( option_key )
click to toggle source
@!endgroup
# File lib/nard/appi/client.rb, line 54 def set_attr_accessor( 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?( instance_methods ) attr_writer writer unless setter_method.in?( instance_methods ) end
set_top_namespace( top_namespace )
click to toggle source
@!group Private methods for DSL
# File lib/nard/appi/client.rb, line 37 def set_top_namespace( top_namespace ) @top_namespace = top_namespace end
Private Instance Methods
set_attr_accessors()
click to toggle source
# File lib/nard/appi/client.rb, line 71 def set_attr_accessors top_namespace = self.class.top_namespace options_keys = top_namespace::OPTIONS_KEYS self.class.instance_eval do return if @_attr_accessors_defined options_keys.each do | option_key | set_attr_accessor( option_key ) end @_attr_accessors_defined = true end end
set_option_values( options )
click to toggle source
# File lib/nard/appi/client.rb, line 86 def set_option_values( options ) options_keys = self.class.top_namespace::OPTIONS_KEYS options = self.class .top_namespace .options .merge( options ) .with_indifferent_access options_keys.each do | key | send( "#{ key }=", options[ key ] ) end end