Module: CellSet::Attributes

Extended by:
ActiveModel::Naming, ActiveSupport::Concern
Includes:
ActiveModel::AttributeMethods
Included in:
Cell, CellSet, CellSetAxis, Member, Position
Defined in:
lib/cell_set/attributes.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#attributesObject



39
40
41
42
43
44
# File 'lib/cell_set/attributes.rb', line 39

def attributes
  self.class::ATTRIBUTES.inject(ActiveSupport::HashWithIndifferentAccess.new) do |result, key|
    result[key] = read_attribute_for_validation(key)
    result
  end
end

#attributes=(attrs) ⇒ Object



46
47
48
# File 'lib/cell_set/attributes.rb', line 46

def attributes=(attrs)
   attrs.each_pair {|k, v| send("#{k}=", v)}
end

#clear_attribute(attr) ⇒ Object



50
51
52
# File 'lib/cell_set/attributes.rb', line 50

def clear_attribute(attr)
  send("#{attr}=", nil)
end

#has_attribute?(attr) ⇒ Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/cell_set/attributes.rb', line 54

def has_attribute?(attr)
  self.class::ATTRIBUTES.include?(attr)
end

#initialize(attrs = {}) ⇒ Object



31
32
33
34
35
36
37
# File 'lib/cell_set/attributes.rb', line 31

def initialize(attrs = {})
  @errors = ActiveModel::Errors.new(self)
  attrs.each do |name, value|
    send("#{name}=", value) if value
  end
  super(attrs)
end

#read_attribute_for_validation(key) ⇒ Object



58
59
60
# File 'lib/cell_set/attributes.rb', line 58

def read_attribute_for_validation(key)
  send(key)
end