Module: Myjson::Resource::ClassMethods

Defined in:
lib/myjson/resource.rb

Overview

Class-level extensions

Instance Method Summary collapse

Instance Method Details

#find(id) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/myjson/resource.rb', line 34

def find(id)
  myjson_bin = Myjson::Bin.new
  attributes = myjson_bin.show(id)

  return nil unless attributes

  new.tap do |instance|
    instance.instance_variable_set(:@id, id)

    attributes.each do |attr, value|
      instance.send "#{attr}=", value
    end
  end
end

#myjson_attribute(attribute, type) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/myjson/resource.rb', line 21

def myjson_attribute(attribute, type)
  instance_eval do
    attr_reader attribute

    define_method "#{attribute}=" do |value|
      value = Kernel.send(type.to_s, value)
      instance_variable_set("@#{attribute}", value)
    end
  end

  myjson_attributes.push(attribute)
end