Class: Wayfarer::CLI
- Inherits:
-
Thor
- Object
- Thor
- Wayfarer::CLI
- Defined in:
- lib/wayfarer/cli.rb,
lib/wayfarer/cli/route_printer.rb
Defined Under Namespace
Classes: RoutePrinter
Class Method Summary collapse
Instance Method Summary collapse
- #enqueue(job, url) ⇒ Object
- #execute(job, url) ⇒ Object
- #perform(job, url) ⇒ Object
- #route(job, url) ⇒ Object
- #tree(job, url) ⇒ Object
- #version ⇒ Object
Class Method Details
.exit_on_failure? ⇒ Boolean
5 6 7 |
# File 'lib/wayfarer/cli.rb', line 5 def self.exit_on_failure? true end |
Instance Method Details
#enqueue(job, url) ⇒ Object
62 63 64 65 66 67 |
# File 'lib/wayfarer/cli.rb', line 62 def enqueue(job, url) load_environment job = job.classify.constantize job.crawl(url, batch: [:batch]) end |
#execute(job, url) ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/wayfarer/cli.rb', line 74 def execute(job, url) load_environment mock_redis job = job.classify.constantize job.queue_adapter = ActiveJob::QueueAdapters::AsyncAdapter.new(min_threads: [:min_threads], max_threads: [:max_threads]) scheduler = job.queue_adapter.instance_variable_get(:@scheduler) executor = scheduler.instance_variable_get(:@async_executor) job.crawl(url, batch: [:batch]) sleep(0.1) while executor.scheduled_task_count > executor.completed_task_count Wayfarer::Networking::Pool.instance.free end |
#perform(job, url) ⇒ Object
51 52 53 54 55 56 57 58 |
# File 'lib/wayfarer/cli.rb', line 51 def perform(job, url) load_environment mock_redis job = job.classify.constantize task = Wayfarer::Task.new(url, [:batch]) job.new(task).perform_now end |
#route(job, url) ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/wayfarer/cli.rb', line 17 def route(job, url) load_environment url = parsed_url(url) job = job.classify.constantize route = job.route route.invoke(url) result = Wayfarer::Routing::PathFinder.result(route, url) result_type = result.class.name.demodulize say case result when Wayfarer::Routing::Result::Match "#{result_type} => #{result.action.inspect}" else result_type end end |
#tree(job, url) ⇒ Object
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/wayfarer/cli.rb', line 37 def tree(job, url) load_environment url = parsed_url(url) job = job.classify.constantize route = job.route route.invoke(url) Wayfarer::CLI::RoutePrinter.print(route, url) end |