class DatacraftsIoSkeleton::RailsCreator

Responsible for the creation of rails projects.

Public Class Methods

new(app_name) click to toggle source

Creates new instance of DatacraftsIoSkeleton::RailsCreator class with app_name which will be used during creation.

@param [String] app_name The name of app you are going to create.

Calls superclass method
# File lib/datacrafts_io_skeleton/rails_creator.rb, line 15
def initialize(app_name)
  super()
  @app_name = app_name
end

Public Instance Methods

call() click to toggle source

Creates new rails API app from predefined template. Copies rubocop and spec files to the new project.

# File lib/datacrafts_io_skeleton/rails_creator.rb, line 22
def call
  create_rails_api_app
  configure_rubocop
  update_spec_config
  run_rubocop
  commit_project
  say("Rails API part has built.", :green)
end

Private Instance Methods

commit_project() click to toggle source
# File lib/datacrafts_io_skeleton/rails_creator.rb, line 55
def commit_project
  append_to_file app(".gitignore"), "/.idea/"
  commit("Initial commit.")
end
configure_rubocop() click to toggle source
# File lib/datacrafts_io_skeleton/rails_creator.rb, line 39
def configure_rubocop
  template "rubocop.yml.erb", app(".rubocop.yml")
end
create_rails_api_app() click to toggle source
# File lib/datacrafts_io_skeleton/rails_creator.rb, line 35
def create_rails_api_app
  run "rails new #{@app_name} --database=postgresql --api -T -m #{TEMPLATES_DIR}/rails.rb"
end
run_rubocop() click to toggle source
# File lib/datacrafts_io_skeleton/rails_creator.rb, line 51
def run_rubocop
  run "cd #{app} && bundle exec rubocop -A"
end
update_spec_config() click to toggle source
# File lib/datacrafts_io_skeleton/rails_creator.rb, line 43
def update_spec_config
  remove_file app("spec/rails_helper.rb")
  copy_file "spec.rb", app("spec/rails_helper.rb")
  empty_directory app("spec/factories")
  empty_directory app("spec/models")
  empty_directory app("spec/controllers")
end