Class: Kimurai::CLI::Generator
- Inherits:
-
Thor::Group
- Object
- Thor::Group
- Kimurai::CLI::Generator
- Includes:
- Thor::Actions
- Defined in:
- lib/kimurai/cli/generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #generate_project(project_name) ⇒ Object
- #generate_schedule ⇒ Object
- #generate_spider(spider_name, in_project:) ⇒ Object
Class Method Details
.source_root ⇒ Object
6 7 8 |
# File 'lib/kimurai/cli/generator.rb', line 6 def self.source_root File.dirname(File.('..', __FILE__)) end |
Instance Method Details
#generate_project(project_name) ⇒ Object
10 11 12 13 14 15 16 |
# File 'lib/kimurai/cli/generator.rb', line 10 def generate_project(project_name) directory "template", project_name inside(project_name) do run "bundle install" run "git init" end end |
#generate_schedule ⇒ Object
43 44 45 |
# File 'lib/kimurai/cli/generator.rb', line 43 def generate_schedule copy_file "template/config/schedule.rb", "./schedule.rb" end |
#generate_spider(spider_name, in_project:) ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/kimurai/cli/generator.rb', line 18 def generate_spider(spider_name, in_project:) spider_path = in_project ? "spiders/#{spider_name}.rb" : "./#{spider_name}.rb" raise "Spider #{spider_path} already exists" if File.exists? spider_path spider_class = to_spider_class(spider_name) create_file spider_path do <<~RUBY class #{spider_class} < #{in_project ? 'ApplicationSpider' : 'Kimurai::Base'} @name = "#{spider_name}" @start_urls = [] @config = {} def parse(response, url:, data: {}) end end RUBY end unless in_project insert_into_file spider_path, " @engine = :mechanize\n", after: "@name = \"#{spider_name}\"\n" prepend_to_file spider_path, "require 'kimurai'\n\n" append_to_file spider_path, "\n#{spider_class}.crawl!" end end |