namespace :spiderman do
# Load the environment and eager load all classes task :environment => :environment do if defined?(Rails) ActiveSupport.run_load_hooks(:before_eager_load, Rails.configuration) Rails.configuration.eager_load_namespaces.each(&:eager_load!) end if defined?(Zeitwerk) Zeitwerk::Loader.eager_load_all end end desc "Run crawlers" task :run, [:crawler] => :environment do |task, args| Spiderman.run(args[:crawler]) end desc "List available crawlers" task list: :environment do puts Spiderman.list end desc "" task :debug, [:crawler, :url, :type] => :environment do |task, args| unless crawler = Spiderman.find(args[:crawler]) raise "Can't find crawler with name `#{args[:crawler]}`. " \ "To list all available crawlers, run: `$ rake crawler:list`" end crawler.parse!(args[:url], args[:type]) end
end
task spiderman: 'spiderman:run'