class Bearonrails::AppBuilder

Public Instance Methods

add_common_rake_tasks() click to toggle source
# File lib/bearonrails/app_builder.rb, line 5
def add_common_rake_tasks
  directory 'tasks', 'lib/tasks'
end
add_custom_gems() click to toggle source
# File lib/bearonrails/app_builder.rb, line 13
def add_custom_gems
  additions_path = find_in_source_paths 'Gemfile_additions'
  new_gems = File.open(additions_path).read
  inject_into_file(
    'Gemfile',
    "\n#{new_gems}",
    after: /^end/
  )
end
add_dot_env() click to toggle source
# File lib/bearonrails/app_builder.rb, line 37
def add_dot_env
  copy_file '.env', '.env'

  inject_into_file(
    'config/application.rb',
    "Dotenv.load\n\n",
    before: /^module/
  )
end
add_new_relic_config() click to toggle source
# File lib/bearonrails/app_builder.rb, line 27
def add_new_relic_config
  copy_file 'config/newrelic.yml', 'config/newrelic.yml'

  replace_in_file(
    '.env',
    /change-this-to-your-app-name/m,
    "#{app_name}"
  )
end
add_rspec_helper_addon() click to toggle source
# File lib/bearonrails/app_builder.rb, line 51
def add_rspec_helper_addon
  additions_path = find_in_source_paths 'spec/rails_helper_addon'
  addon_config = File.open(additions_path).read
  inject_into_file(
    'spec/rails_helper.rb',
    "\n#{addon_config}",
    before: /^end/
  )
end
add_rubocop_config() click to toggle source
# File lib/bearonrails/app_builder.rb, line 23
def add_rubocop_config
  copy_file '.rubocop.yml', '.rubocop.yml'
end
init_git() click to toggle source
# File lib/bearonrails/app_builder.rb, line 9
def init_git
  run 'git init'
end
install_rspec() click to toggle source
# File lib/bearonrails/app_builder.rb, line 47
def install_rspec
  run 'bundle exec rails g rspec:install'
end
remove_routes_comment_lines() click to toggle source
# File lib/bearonrails/app_builder.rb, line 61
def remove_routes_comment_lines
  replace_in_file(
    'config/routes.rb',
    /Rails\.application\.routes\.draw do.*end/m,
    "Rails.application.routes.draw do\nend"
  )
end

Private Instance Methods

replace_in_file(relative_path, find, replace) click to toggle source
# File lib/bearonrails/app_builder.rb, line 71
def replace_in_file(relative_path, find, replace)
  path = File.join(destination_root, relative_path)
  contents = IO.read(path)
  unless contents.gsub!(find, replace)
    fail "#{find.inspect} not found in #{relative_path}"
  end
  File.open(path, 'w') { |file| file.write(contents) }
end