Class: Wayfarer::Middleware::Fetch
- Inherits:
-
Object
- Object
- Wayfarer::Middleware::Fetch
- Includes:
- Stage::API
- Defined in:
- lib/wayfarer/middleware/fetch.rb
Defined Under Namespace
Modules: API
Instance Attribute Summary collapse
-
#pool ⇒ Object
readonly
Returns the value of attribute pool.
-
#task ⇒ Object
Returns the value of attribute task.
Instance Method Summary collapse
- #call(task) ⇒ Object
-
#initialize ⇒ Fetch
constructor
A new instance of Fetch.
Methods included from Stage::API
Constructor Details
#initialize ⇒ Fetch
Returns a new instance of Fetch.
23 24 25 |
# File 'lib/wayfarer/middleware/fetch.rb', line 23 def initialize @pool = Wayfarer::Networking::Pool.instance end |
Instance Attribute Details
#pool ⇒ Object (readonly)
Returns the value of attribute pool.
20 21 22 |
# File 'lib/wayfarer/middleware/fetch.rb', line 20 def pool @pool end |
#task ⇒ Object
Returns the value of attribute task.
21 22 23 |
# File 'lib/wayfarer/middleware/fetch.rb', line 21 def task @task end |
Instance Method Details
#call(task) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/wayfarer/middleware/fetch.rb', line 27 def call(task) self.task = task pool.with do |context| result = task.job.run_callbacks :fetch do context.fetch(task.url) end case result when Networking::Result::Redirect stage(result.redirect_url) when Networking::Result::Success task..agent = context.instance task..page = result.page yield if block_given? end end end |