class Sinatra::CLI::Generator

Public Class Methods

source_root() click to toggle source
# File lib/sinatra/cli/generator.rb, line 10
def self.source_root
  File.join(File.dirname(__FILE__), "../../../", "templates")
end

Public Instance Methods

bundle_install() click to toggle source
# File lib/sinatra/cli/generator.rb, line 84
def bundle_install
  system "cd #{app_name} && bundle install && cd ../"
end
create_app_file() click to toggle source
# File lib/sinatra/cli/generator.rb, line 41
def create_app_file
  copy_file "app.rb", "#{app_name}/app.rb"
end
create_assets() click to toggle source
# File lib/sinatra/cli/generator.rb, line 31
def create_assets
  create_file "#{app_name}/public/javascripts/app.js"
  create_file "#{app_name}/public/stylesheets/app.css"
  keep_file "#{app_name}/public/images/"
end
create_database_config() click to toggle source
# File lib/sinatra/cli/generator.rb, line 23
def create_database_config
  template "config/database.yml.erb", "#{app_name}/config/database.yml"
end
create_gemfile() click to toggle source
# File lib/sinatra/cli/generator.rb, line 45
def create_gemfile
  copy_file "Gemfile", "#{app_name}/Gemfile"
end
create_gitignore() click to toggle source
# File lib/sinatra/cli/generator.rb, line 37
def create_gitignore
  copy_file ".gitignore", "#{app_name}/.gitignore"
end
create_models_dir() click to toggle source
# File lib/sinatra/cli/generator.rb, line 14
def create_models_dir
  keep_file "#{app_name}/app/models"
end
create_rakefile() click to toggle source
# File lib/sinatra/cli/generator.rb, line 49
def create_rakefile
  copy_file "Rakefile", "#{app_name}/Rakefile"
end
create_readme() click to toggle source
# File lib/sinatra/cli/generator.rb, line 53
def create_readme
  template "README.md.erb", "#{app_name}/README.md"
end
create_seeds_file() click to toggle source
# File lib/sinatra/cli/generator.rb, line 27
def create_seeds_file
  copy_file "db/seeds.rb", "#{app_name}/db/seeds.rb"
end
create_views_dir() click to toggle source
# File lib/sinatra/cli/generator.rb, line 18
def create_views_dir
  template "app/views/index.erb", "#{app_name}/app/views/index.erb"
  template "app/views/layout.erb", "#{app_name}/app/views/layout.erb"
end
setup_capybara() click to toggle source
# File lib/sinatra/cli/generator.rb, line 68
def setup_capybara
  insert_into_file(
    "#{app_name}/Gemfile",
    "gem 'capybara'",
    after: "group :test, :development do"
  )

  insert_into_file(
    "#{app_name}/spec/spec_helper.rb",
    "require 'capybara/rspec'",
    after: "require 'rspec'"
  )

  append_to_file "#{app_name}/spec/spec_helper.rb", "\n\nCapybara.app = Sinatra::Application"
end
setup_rspec() click to toggle source
# File lib/sinatra/cli/generator.rb, line 57
def setup_rspec
  insert_into_file(
    "#{app_name}/Gemfile",
    "gem 'rspec'",
    after: "group :test, :development do"
  )

  copy_file ".rspec", "#{app_name}/.rspec"
  copy_file "spec/spec_helper.rb", "#{app_name}/spec/spec_helper.rb"
end

Protected Instance Methods

keep_file(destination) click to toggle source
# File lib/sinatra/cli/generator.rb, line 90
def keep_file(destination)
  create_file "#{destination}/.keep"
end