Class: GH::NestedResources
- Defined in:
- lib/gh/nested_resources.rb
Overview
Public: …
Instance Attribute Summary
Attributes inherited from Wrapper
Instance Method Summary collapse
- #add(hash, link, name, path = name) ⇒ Object
- #modify_hash(hash, loaded = false) ⇒ Object
- #nested(link, path) ⇒ Object
- #set_links(hash, link) ⇒ Object
Methods inherited from Wrapper
[], #[], #frontend, #frontend=, #generate_response, #initialize, #inspect, #load, #prefixed, #reset, wraps
Constructor Details
This class inherits a constructor from GH::Wrapper
Instance Method Details
#add(hash, link, name, path = name) ⇒ Object
16 17 18 |
# File 'lib/gh/nested_resources.rb', line 16 def add(hash, link, name, path = name) hash["_links"][name] ||= { "href" => nested(link, path) } end |
#modify_hash(hash, loaded = false) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/gh/nested_resources.rb', line 9 def modify_hash(hash, loaded = false) hash = super(hash) link = hash['_links']['self'] unless loaded or hash['_links'].nil? set_links hash, Addressable::URI.parse(link['href']) if link hash end |
#nested(link, path) ⇒ Object
20 21 22 23 24 25 26 27 28 |
# File 'lib/gh/nested_resources.rb', line 20 def nested(link, path) new_link = link.dup if path.start_with? '/' new_link.path = path else new_link.path += path end new_link end |
#set_links(hash, link) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/gh/nested_resources.rb', line 30 def set_links(hash, link) case link.path when '/gists' add hash, link, 'public' add hash, link, 'starred' when %r{^/repos/[^/]+/[^/]+$} add hash, link, 'commits', 'git/commits' add hash, link, 'refs', 'git/refs' add hash, link, 'tags', 'git/tags' add hash, link, 'issues' when %r{^/repos/[^/]+/[^/]+/issues/\d+$} add hash, link, 'comments' add hash, link, 'events' when '/user' add hash, link, 'gists', '/gists' add hash, link, 'issues', '/issues' end end |