Class: Makeleaps::Request::Generic
- Defined in:
- lib/makeleaps/request/generic.rb
Constant Summary
Constants inherited from Base
Instance Attribute Summary collapse
-
#handler ⇒ Object
readonly
Returns the value of attribute handler.
-
#url_manager ⇒ Object
readonly
Returns the value of attribute url_manager.
Attributes inherited from Base
Instance Method Summary collapse
- #delete(resource_or_url, mid = nil, &block) ⇒ Object
-
#each_page(start_page, &block) ⇒ Object
process sequentially (avoid eager loading) to ensure minimum API access.
- #each_resource(start_page, &block) ⇒ Object
- #find_partner_by(name:) ⇒ Object
- #find_resource(start_page, *args, &block) ⇒ Object
- #get(resource_or_url, mid = nil, &block) ⇒ Object
-
#initialize(access_token) ⇒ Generic
constructor
A new instance of Generic.
- #options(resource_or_url, mid = nil, &block) ⇒ Object
- #patch(resource_or_url, mid = nil, &block) ⇒ Object
- #post(resource_or_url, mid = nil, &block) ⇒ Object
- #put(resource_or_url, mid = nil, &block) ⇒ Object
- #set_partner!(name:) ⇒ Object
Constructor Details
#initialize(access_token) ⇒ Generic
Returns a new instance of Generic.
10 11 12 13 14 15 16 |
# File 'lib/makeleaps/request/generic.rb', line 10 def initialize(access_token) super() do |conn| conn. :Bearer, access_token end @handler = Makeleaps::Request::RequestHandler.new(connection) @url_manager = Makeleaps::Request::URLManager.new end |
Instance Attribute Details
#handler ⇒ Object (readonly)
Returns the value of attribute handler.
8 9 10 |
# File 'lib/makeleaps/request/generic.rb', line 8 def handler @handler end |
#url_manager ⇒ Object (readonly)
Returns the value of attribute url_manager.
8 9 10 |
# File 'lib/makeleaps/request/generic.rb', line 8 def url_manager @url_manager end |
Instance Method Details
#delete(resource_or_url, mid = nil, &block) ⇒ Object
75 76 77 |
# File 'lib/makeleaps/request/generic.rb', line 75 def delete(resource_or_url, mid=nil, &block) handler.delete url_manager.build_url_for(resource_or_url, mid), &block end |
#each_page(start_page, &block) ⇒ Object
process sequentially (avoid eager loading) to ensure minimum API access
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/makeleaps/request/generic.rb', line 31 def each_page(start_page , &block) next_url = start_page loop do response = get(next_url) block.call(response) next_url = response.next break unless next_url sleep 0.1 # TODO: throttling parameter can be adjusted individually end end |
#each_resource(start_page, &block) ⇒ Object
43 44 45 46 47 48 49 |
# File 'lib/makeleaps/request/generic.rb', line 43 def each_resource(start_page , &block) each_page(start_page) do |page| page.each_resource do |resource| block.call(resource) end end end |
#find_partner_by(name:) ⇒ Object
25 26 27 28 |
# File 'lib/makeleaps/request/generic.rb', line 25 def find_partner_by(name: ) partners = get(:partner) partners.find_resource { |partner| partner['name'] == name } end |
#find_resource(start_page, *args, &block) ⇒ Object
51 52 53 54 55 56 57 |
# File 'lib/makeleaps/request/generic.rb', line 51 def find_resource(start_page, *args, &block) each_page(start_page) do |page| resource = page.find_resource(*args, &block) return resource if resource end nil end |
#get(resource_or_url, mid = nil, &block) ⇒ Object
59 60 61 |
# File 'lib/makeleaps/request/generic.rb', line 59 def get(resource_or_url, mid=nil, &block) handler.get url_manager.build_url_for(resource_or_url, mid), &block end |
#options(resource_or_url, mid = nil, &block) ⇒ Object
79 80 81 |
# File 'lib/makeleaps/request/generic.rb', line 79 def (resource_or_url, mid=nil, &block) handler. url_manager.build_url_for(resource_or_url, mid), &block end |
#patch(resource_or_url, mid = nil, &block) ⇒ Object
71 72 73 |
# File 'lib/makeleaps/request/generic.rb', line 71 def patch(resource_or_url, mid=nil, &block) handler.patch url_manager.build_url_for(resource_or_url, mid), &block end |
#post(resource_or_url, mid = nil, &block) ⇒ Object
63 64 65 |
# File 'lib/makeleaps/request/generic.rb', line 63 def post(resource_or_url, mid=nil, &block) handler.post url_manager.build_url_for(resource_or_url, mid), &block end |
#put(resource_or_url, mid = nil, &block) ⇒ Object
67 68 69 |
# File 'lib/makeleaps/request/generic.rb', line 67 def put(resource_or_url, mid=nil, &block) handler.put url_manager.build_url_for(resource_or_url, mid), &block end |
#set_partner!(name:) ⇒ Object
18 19 20 21 22 23 |
# File 'lib/makeleaps/request/generic.rb', line 18 def set_partner!(name: ) url = find_partner_by(name: name)['url'] partner_mid = url.split('/').last url_manager.set_partner!(partner_mid) self end |