Module: Tainbox::InstanceMethods

Defined in:
lib/tainbox/instance_methods.rb

Instance Method Summary collapse

Instance Method Details

#attribute_provided?(attribute) ⇒ Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/tainbox/instance_methods.rb', line 32

def attribute_provided?(attribute)
  tainbox_provided_attributes.include?(attribute.to_sym)
end

#attributesObject



11
12
13
14
15
# File 'lib/tainbox/instance_methods.rb', line 11

def attributes
  self.class.tainbox_attributes.map do |attribute|
    [attribute, send(attribute)] if respond_to?(attribute, true)
  end.compact.to_h
end

#attributes=(attributes) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/tainbox/instance_methods.rb', line 17

def attributes=(attributes)
  attributes = attributes.symbolize_keys
  self.class.tainbox_attributes.each do |attribute|

    if attributes.has_key?(attribute)
      method_name = "#{attribute}="
      send(method_name, attributes[attribute]) if respond_to?(method_name, true)

    else
      method_name = "tainbox_set_default_#{attribute}"
      send(method_name) if respond_to?(method_name, true)
    end
  end
end

#initialize(attributes = {}) ⇒ Object



7
8
9
# File 'lib/tainbox/instance_methods.rb', line 7

def initialize(attributes = {})
  self.attributes = attributes
end