Module: Kekeewin::RestAPI::Configuration::ClassMethods

Defined in:
lib/kekeewin.rb

Instance Method Summary collapse

Instance Method Details

#add_config(name) ⇒ Object



159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
# File 'lib/kekeewin.rb', line 159

def add_config(name)
  class_eval <<-RUBY, __FILE__, __LINE__ + 1

    def self.#{name}(value=nil)
      @#{name} = value if value
      return @#{name} if self.object_id == #{self.object_id} || defined?(@#{name})
      name = superclass.#{name}
      return nil if name.nil? && !instance_variable_defined?("@#{name}")
      @#{name} = name && !name.is_a?(Module) && !name.is_a?(Symbol) && !name.is_a?(Numeric) && !name.is_a?(TrueClass) && !name.is_a?(FalseClass) ? name.dup : name
    end

    def self.#{name}=(value)
      @#{name} = value
    end

    def #{name}=(value)
      @#{name} = value
    end

    def #{name}
      value = @#{name} if instance_variable_defined?(:@#{name})
      value = self.class.#{name} unless instance_variable_defined?(:@#{name})
      if value.instance_of?(Proc)
        value.arity >= 1 ? value.call(self) : value.call
      else 
        value
      end
    end
  RUBY
end

#configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



190
191
192
# File 'lib/kekeewin.rb', line 190

def configure
  yield self
end

#reset_configObject



194
195
196
197
198
# File 'lib/kekeewin.rb', line 194

def reset_config
  configure do |config|
    config.host = "http://kekeewin.dev"
  end
end