class Railsone::Generators::InstallGenerator

Public Instance Methods

init_emberjs_structure() click to toggle source
# File lib/railsone/generators/install_generator.rb, line 51
def init_emberjs_structure
  generate 'ember:bootstrap'
  route "root 'portal#index'"

  application(nil, env: "development") do
    "config.ember.variant = :development"
  end

  application(nil, env: "production") do
    "config.ember.variant = :production"
  end

  remove_file 'app/assets/javascripts/application.js'
  remove_file "app/assets/javascripts/store.js.coffee"

  copy_file 'app/assets/javascripts/application.js', 'app/assets/javascripts/application.js'
  copy_file 'app/assets/javascripts/portal.js', 'app/assets/javascripts/portal.js'
  copy_file 'app/assets/javascripts/templates/application.hbs', 'app/assets/javascripts/templates/application.hbs'
  copy_file 'app/views/portal/index.html.erb', 'app/views/portal/index.html.erb'
  copy_file 'app/controllers/portal_controller.rb', 'app/controllers/portal_controller.rb'

  inject_into_file 'app/assets/javascripts/portal.js', :after => "//= require ember" do
    "\n//= require #{app_name.underscore}"
  end

  remove_file "app/assets/javascripts/#{app_name.underscore}.js.coffee"
  template 'app/assets/javascripts/app_name.js.coffee.erb', "app/assets/javascripts/#{app_name.underscore}.js.coffee"
end
init_git() click to toggle source
# File lib/railsone/generators/install_generator.rb, line 103
def init_git
  git :init 
end
init_twitter_bootstrap_css() click to toggle source
# File lib/railsone/generators/install_generator.rb, line 80
def init_twitter_bootstrap_css
  #inject_into_file 'app/assets/javascripts/application.js', "\n//= require twitter/bootstrap\n", :after => "//= require turbolinks"

  remove_file 'app/assets/stylesheets/application.css'
  # create_file "app/assets/stylesheets/application.css.scss" do
  #   %Q(//= require_self\n//= require common)
  # end

  # create_file "app/assets/stylesheets/common.css.scss" do
  #   %q(@import "twitter/bootstrap";)
  # end
  
  copy_file 'app/assets/stylesheets/application.css.scss', 'app/assets/stylesheets/application.css.scss'
  copy_file 'app/assets/stylesheets/common.css.scss', 'app/assets/stylesheets/common.css.scss'
  #directory 'stylesheets', 'app/assets/stylesheets'
end
replace_application_html_erb() click to toggle source
# File lib/railsone/generators/install_generator.rb, line 97
def replace_application_html_erb
  remove_file 'app/views/layouts/application.html.erb'
  copy_file 'app/views/layouts/application.html.erb', 'app/views/layouts/application.html.erb'        
  inject_into_file 'app/views/layouts/application.html.erb', "\n<title>#{app_name}</title>", :after => %Q(<meta name="viewport" content="width=device-width, initial-scale=1.0">)
end
secure_secret_token_from_env() click to toggle source
# File lib/railsone/generators/install_generator.rb, line 44
def secure_secret_token_from_env
  comment_lines 'config/initializers/secret_token.rb', /config.secret_key_base/
  append_to_file 'config/initializers/secret_token.rb', "#{app_name}::Application.config.secret_key_base = ENV['SECRET_TOKEN']"
  secret_token =  SecureRandom.urlsafe_base64(64, false)
  append_to_file '.env' , "SECRET_TOKEN=#{secret_token}\n"
end
set_ignore_file_to_git() click to toggle source
# File lib/railsone/generators/install_generator.rb, line 107
def set_ignore_file_to_git
  append_to_file '.gitignore', '.env'
end
setup_all_gems_with_bundle_install() click to toggle source

self.source_paths << File.join(self.root_folder , 'templates')

# File lib/railsone/generators/install_generator.rb, line 19
def setup_all_gems_with_bundle_install
  gem 'ember-rails'
  gem 'ember-source', '1.0.0'
  gem 'anjlab-bootstrap-rails', '>= 3.0.0', :require => 'bootstrap-rails'

  comment_lines 'Gemfile', 'gem \'sqlite3\''
  # gsub_file 'Gemfile', 'gem \'sqlite3\'', '#gem \'sqlite3\''
  gem_group :development do
    gem "powder"
    gem 'dotenv-rails'
    gem 'sqlite3'
  end

  say "create .env for dotenv-rails"
  create_file '.env'

  say "set gems for production on heroku"
  gem_group :production do
    gem 'pg'
    gem 'thin'
  end
  
  run 'bundle install'
end