Class: PrintReleaf::Relation
- Inherits:
-
Object
- Object
- PrintReleaf::Relation
- Includes:
- Enumerable
- Defined in:
- lib/printreleaf/relation.rb
Instance Attribute Summary collapse
-
#actions ⇒ Object
readonly
Returns the value of attribute actions.
-
#owner ⇒ Object
readonly
Returns the value of attribute owner.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
-
#resource_class ⇒ Object
readonly
Returns the value of attribute resource_class.
Instance Method Summary collapse
- #count ⇒ Object
- #each ⇒ Object
- #first ⇒ Object
-
#initialize(owner, resource_class, options = {}) ⇒ Relation
constructor
A new instance of Relation.
- #inspect ⇒ Object
- #last ⇒ Object
- #length ⇒ Object
- #new(*args) ⇒ Object
- #related ⇒ Object
- #to_s ⇒ Object
- #uri ⇒ Object
Constructor Details
#initialize(owner, resource_class, options = {}) ⇒ Relation
Returns a new instance of Relation.
10 11 12 13 14 15 16 17 18 |
# File 'lib/printreleaf/relation.rb', line 10 def initialize(owner, resource_class, ={}) @owner = owner @resource_class = resource_class @path = [:path] || resource_class.uri @actions = Set.new([:actions] || resource_class.actions) @actions.each do |action| extend Actions.const_get(action.to_s.capitalize) end end |
Instance Attribute Details
#actions ⇒ Object (readonly)
Returns the value of attribute actions.
8 9 10 |
# File 'lib/printreleaf/relation.rb', line 8 def actions @actions end |
#owner ⇒ Object (readonly)
Returns the value of attribute owner.
5 6 7 |
# File 'lib/printreleaf/relation.rb', line 5 def owner @owner end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
7 8 9 |
# File 'lib/printreleaf/relation.rb', line 7 def path @path end |
#resource_class ⇒ Object (readonly)
Returns the value of attribute resource_class.
6 7 8 |
# File 'lib/printreleaf/relation.rb', line 6 def resource_class @resource_class end |
Instance Method Details
#count ⇒ Object
53 54 55 |
# File 'lib/printreleaf/relation.rb', line 53 def count .count end |
#each ⇒ Object
38 39 40 41 42 43 |
# File 'lib/printreleaf/relation.rb', line 38 def each return enum_for(:each) unless block_given? .each do |resource| yield resource end end |
#first ⇒ Object
45 46 47 |
# File 'lib/printreleaf/relation.rb', line 45 def first .first end |
#inspect ⇒ Object
65 66 67 |
# File 'lib/printreleaf/relation.rb', line 65 def inspect "#<#{self.class}(#{resource_class}) owner=#{owner.compact_inspect} path=#{path} actions=#{actions}>" end |
#last ⇒ Object
49 50 51 |
# File 'lib/printreleaf/relation.rb', line 49 def last .last end |
#length ⇒ Object
57 58 59 |
# File 'lib/printreleaf/relation.rb', line 57 def length .length end |
#new(*args) ⇒ Object
24 25 26 27 28 |
# File 'lib/printreleaf/relation.rb', line 24 def new(*args) @resource_class.new(*args).tap do |resource| resource.owner = owner end end |
#related ⇒ Object
30 31 32 33 34 35 36 |
# File 'lib/printreleaf/relation.rb', line 30 def if respond_to?(:list) return list else raise "Relation not defined." end end |
#to_s ⇒ Object
61 62 63 |
# File 'lib/printreleaf/relation.rb', line 61 def to_s "#<#{self.class.name}(#{resource_class}>" end |
#uri ⇒ Object
20 21 22 |
# File 'lib/printreleaf/relation.rb', line 20 def uri Util.join_uri(owner.uri, path) end |