Class: Bankin::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/bankin/resource.rb

Direct Known Subclasses

Account, Bank, Item, Transaction, User

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(data, token = nil) ⇒ Resource

Returns a new instance of Resource.



3
4
5
6
7
# File 'lib/bankin/resource.rb', line 3

def initialize(data, token = nil)
  @token = token
  generate_attr_readers
  set_data(data)
end

Class Method Details

.auth_delegate(name, options) ⇒ Object



80
81
82
83
84
85
# File 'lib/bankin/resource.rb', line 80

def auth_delegate(name, options)
  define_method(name) do |*args|
    klass = Object.const_get("Bankin::#{options[:class]}")
    klass.send(options[:method], self.token, *args)
  end
end

.collectionsObject



76
77
78
# File 'lib/bankin/resource.rb', line 76

def collections
  @collections || []
end

.fieldsObject



68
69
70
# File 'lib/bankin/resource.rb', line 68

def fields
  @fields || [:resource_type, :resource_uri]
end

.has_collection(name, klass) ⇒ Object



95
96
97
98
# File 'lib/bankin/resource.rb', line 95

def has_collection(name, klass)
  @collections = collections << { name: name, klass: klass }
  attr_reader :"#{name}_ids"
end

.has_fields(*new_fields) ⇒ Object



87
88
89
# File 'lib/bankin/resource.rb', line 87

def has_fields(*new_fields)
  @fields = (fields + new_fields).uniq
end

.has_resource(name, klass) ⇒ Object



91
92
93
# File 'lib/bankin/resource.rb', line 91

def has_resource(name, klass)
  @resources = resources << { name: name, klass: klass }
end

.resourcesObject



72
73
74
# File 'lib/bankin/resource.rb', line 72

def resources
  @resources || []
end

Instance Method Details

#collectionsObject



17
18
19
# File 'lib/bankin/resource.rb', line 17

def collections
  self.class.collections
end

#fieldsObject



9
10
11
# File 'lib/bankin/resource.rb', line 9

def fields
  self.class.fields
end

#resourcesObject



13
14
15
# File 'lib/bankin/resource.rb', line 13

def resources
  self.class.resources
end