Class: Inch::API::Options::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/inch/api/options/base.rb

Direct Known Subclasses

Filter, Suggest

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(options_or_hash) ⇒ Base


26
27
28
29
30
# File 'lib/inch/api/options/base.rb', line 26

def initialize(options_or_hash)
  self.class.attribute_names.each do |name|
    read options_or_hash, name
  end
end

Class Method Details

.attribute(name, default = nil) ⇒ void

This method returns an undefined value.

Creates an attribute with an optional default value


11
12
13
14
15
16
17
18
# File 'lib/inch/api/options/base.rb', line 11

def attribute(name, default = nil)
  define_method(name) do
    instance_variable_get("@#{name}") || default
  end
  @attributes ||= {}
  @attributes[to_s] ||= []
  @attributes[to_s] << name
end

.attribute_namesObject


20
21
22
23
# File 'lib/inch/api/options/base.rb', line 20

def attribute_names
  @attributes ||= {}
  @attributes[to_s] ||= []
end