Class: Tanakai::CLI::Generator
- Inherits:
-
Thor::Group
- Object
- Thor::Group
- Tanakai::CLI::Generator
- Includes:
- Thor::Actions
- Defined in:
- lib/tanakai/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/tanakai/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/tanakai/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/tanakai/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/tanakai/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 exist?" if File.exist? spider_path spider_class = to_spider_class(spider_name) create_file spider_path do " class \#{spider_class} < \#{in_project ? 'ApplicationSpider' : 'Tanakai::Base'}\n @name = \"\#{spider_name}\"\n @start_urls = []\n @config = {}\n\n def parse(response, url:, data: {})\n end\n end\n RUBY\n end\n\n unless in_project\n insert_into_file spider_path, \" @engine = :mechanize\\n\", after: \"@name = \\\"\#{spider_name}\\\"\\n\"\n prepend_to_file spider_path, \"require 'tanakai'\\n\\n\"\n append_to_file spider_path, \"\\n\#{spider_class}.crawl!\"\n end\nend\n" |