Module: Harpy::Resource::ClassMethods
- Defined in:
- lib/harpy/resource.rb
Instance Method Summary collapse
- #delete_from_id(id) ⇒ Object
- #delete_from_url(url) ⇒ Object
- #delete_from_urn(urn) ⇒ Object
- #from_id(id) ⇒ Object
- #from_url(url) ⇒ Object
- #from_urn(urn) ⇒ Object
- #resource_name ⇒ Object
- #search(conditions = {}) ⇒ Object
- #urn(id) ⇒ Object
- #with_url(url) ⇒ Object
Instance Method Details
#delete_from_id(id) ⇒ Object
92 93 94 |
# File 'lib/harpy/resource.rb', line 92 def delete_from_id(id) delete_from_urn urn id end |
#delete_from_url(url) ⇒ Object
83 84 85 |
# File 'lib/harpy/resource.rb', line 83 def delete_from_url(url) delete_from_url_handler Harpy.client.delete url end |
#delete_from_urn(urn) ⇒ Object
87 88 89 90 |
# File 'lib/harpy/resource.rb', line 87 def delete_from_urn(urn) url = Harpy.entry_point.urn urn url ? delete_from_url(url) : false end |
#from_id(id) ⇒ Object
50 51 52 |
# File 'lib/harpy/resource.rb', line 50 def from_id(id) from_urn urn id end |
#from_url(url) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/harpy/resource.rb', line 36 def from_url(url) case url when Array Harpy.client.run(Harpy.client.get url).collect{|response| from_url_handler response} else from_url_handler Harpy.client.get url end end |
#from_urn(urn) ⇒ Object
45 46 47 48 |
# File 'lib/harpy/resource.rb', line 45 def from_urn(urn) url = Harpy.entry_point.urn urn from_url url if url end |
#resource_name ⇒ Object
58 59 60 |
# File 'lib/harpy/resource.rb', line 58 def resource_name name.underscore end |
#search(conditions = {}) ⇒ Object
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/harpy/resource.rb', line 62 def search(conditions={}) response = Harpy.client.get url, :params => conditions case response.code when 200 parsed = Yajl::Parser.parse response.body items = parsed[resource_name].collect{|model| new model} Harpy::Collection.new parsed.merge(:items => items) else Harpy.client.invalid_code response end end |
#urn(id) ⇒ Object
54 55 56 |
# File 'lib/harpy/resource.rb', line 54 def urn(id) raise NotImplementedError end |
#with_url(url) ⇒ Object
74 75 76 77 78 79 80 81 |
# File 'lib/harpy/resource.rb', line 74 def with_url(url) raise ArgumentError unless block_given? key = "#{resource_name}_url" old, Thread.current[key] = Thread.current[key], url result = yield Thread.current[key] = old result end |