Class: PrintReleaf::Resource
- Inherits:
-
Hashie::Trash
- Object
- Hashie::Trash
- PrintReleaf::Resource
show all
- Includes:
- Hashie::Extensions::Coercion, Hashie::Extensions::IgnoreUndeclared, Hashie::Extensions::IndifferentAccess
- Defined in:
- lib/printreleaf/resource.rb
Direct Known Subclasses
Account, Certificate, Deposit, Feed, Forestry::Project, Invitation, Paper::Type, Quote, QuoteItem, Server, Transaction, User, VolumePeriod
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(*args) ⇒ Resource
Returns a new instance of Resource.
36
37
38
39
|
# File 'lib/printreleaf/resource.rb', line 36
def initialize(*args)
super
@copy = self.dup.freeze
end
|
Instance Attribute Details
#copy ⇒ Object
Returns the value of attribute copy.
33
34
35
|
# File 'lib/printreleaf/resource.rb', line 33
def copy
@copy
end
|
#owner ⇒ Object
Returns the value of attribute owner.
34
35
36
|
# File 'lib/printreleaf/resource.rb', line 34
def owner
@owner
end
|
Class Method Details
.action(sym) ⇒ Object
21
22
23
24
25
26
27
|
# File 'lib/printreleaf/resource.rb', line 21
def action(sym)
actions.tap { |list|
list.add(sym)
}.each { |action|
include Actions.const_get(action.to_s.capitalize)
}
end
|
.actions ⇒ Object
17
18
19
|
# File 'lib/printreleaf/resource.rb', line 17
def actions
@actions ||= Set.new
end
|
.path(value = nil) ⇒ Object
8
9
10
11
|
# File 'lib/printreleaf/resource.rb', line 8
def path(value=nil)
@path = value if value
@path or raise "Path not declared."
end
|
.uri ⇒ Object
13
14
15
|
# File 'lib/printreleaf/resource.rb', line 13
def uri
path
end
|
Instance Method Details
#changes ⇒ Object
59
60
61
62
63
64
65
66
|
# File 'lib/printreleaf/resource.rb', line 59
def changes
keys.map(&:to_sym).inject({}) do |diff, key|
unless self[key] == copy[key]
diff[key] = self[key]
end
diff
end
end
|
#compact_inspect ⇒ Object
84
85
86
87
88
89
90
|
# File 'lib/printreleaf/resource.rb', line 84
def compact_inspect
"".tap do |str|
str << "#<#{self.class} "
str << "id='#{self.id}'" if respond_to?(:id)
str << ">"
end
end
|
#delete ⇒ Object
50
51
52
|
# File 'lib/printreleaf/resource.rb', line 50
def delete
raise DoesNotImplement, "Resource does not implement `delete`"
end
|
#deleted? ⇒ Boolean
68
69
70
|
# File 'lib/printreleaf/resource.rb', line 68
def deleted?
!!deleted
end
|
#find(*args) ⇒ Object
46
47
48
|
# File 'lib/printreleaf/resource.rb', line 46
def find(*args)
raise DoesNotImplement, "Resource does not implement `find`"
end
|
#inspect ⇒ Object
76
77
78
79
80
81
82
|
# File 'lib/printreleaf/resource.rb', line 76
def inspect
"".tap do |str|
str << "#<#{self.class} "
str << JSON.pretty_generate(self)
str << ">"
end
end
|
#reset(hash) ⇒ Object
54
55
56
57
|
# File 'lib/printreleaf/resource.rb', line 54
def reset(hash)
delete_if { true }
update(hash)
end
|
#to_s ⇒ Object
72
73
74
|
# File 'lib/printreleaf/resource.rb', line 72
def to_s
"#<#{self.class.name}>"
end
|
#uri ⇒ Object
41
42
43
44
|
# File 'lib/printreleaf/resource.rb', line 41
def uri
scope = owner ? owner.uri : nil
Util.join_uri(scope, self.class.uri, self.id)
end
|