Module: Kekeewin::OauthAPI::Configuration::ClassMethods

Defined in:
lib/kekeewin.rb

Instance Method Summary collapse

Instance Method Details

#add_config(name) ⇒ Object



65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/kekeewin.rb', line 65

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:



96
97
98
# File 'lib/kekeewin.rb', line 96

def configure
  yield self
end

#reset_configObject



100
101
102
103
104
# File 'lib/kekeewin.rb', line 100

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