Module: Nilavu::MegamAttributes

Constant Summary collapse

ATTRIBUTES =
[]
KEY =
'key'.freeze
VALUE =
'value'.freeze

Instance Method Summary collapse

Instance Method Details

#attributesObject



22
23
24
# File 'lib/megam/mixins/megam_attributes.rb', line 22

def attributes
  NotImplementedError
end

#initialize(control_data = {}) ⇒ Object



26
27
28
# File 'lib/megam/mixins/megam_attributes.rb', line 26

def initialize(control_data = {})
  set_attributes(control_data)
end

#set_attributes(control_data) ⇒ Object



30
31
32
# File 'lib/megam/mixins/megam_attributes.rb', line 30

def set_attributes(control_data)
  attributes.each { |a| instance_variable_set("@#{a}", control_data[a]) unless control_data[a].nil? }
end

#to_hashObject



34
35
36
37
38
39
40
41
# File 'lib/megam/mixins/megam_attributes.rb', line 34

def to_hash
  h = attributes.reduce([]) do |res, key|
    val = instance_variable_get("@#{key}".to_sym)
    res << { KEY => key.to_s, VALUE => val } unless val.nil?
    res
  end
  h
end