Module: Mural::Codec::ClassMethods

Defined in:
lib/mural/codec.rb

Instance Method Summary collapse

Instance Method Details

#attrsObject



19
20
21
# File 'lib/mural/codec.rb', line 19

def attrs
  @attrs ||= {}
end

#decode(json) ⇒ Object



29
30
31
32
33
34
35
36
37
# File 'lib/mural/codec.rb', line 29

def decode(json)
  return if json.nil?

  new.tap do |instance|
    attrs.each do |attr, remote_attr|
      instance.public_send(:"#{attr}=", json[remote_attr])
    end
  end
end

#define_attributes(values) ⇒ Object



23
24
25
26
27
# File 'lib/mural/codec.rb', line 23

def define_attributes(values)
  @attrs = values.freeze

  attrs.each_key { |attr| attr_accessor(attr) }
end