rails_spec = (Gem.loaded_specs["railties"] || Gem.loaded_specs["rails"]) version = rails_spec.version.to_s mongoid = options[:skip_active_record] if Gem::Version.new(version) < Gem::Version.new('4.2.7') or Gem::Version.new(version) >= Gem::Version.new('5.0.0') puts "You are using an incorrect version of Rails (#{version})" puts "Please update for 4.2.7" puts "Stopping" exit 1 end remove_file 'README.md' create_file 'README.md', "## #{app_name}\nProject generated by HancockCMS\nORM: #{if mongoid then 'Mongoid' else 'ActiveRecord' end}\n\n" ####### GEMFILE ####### remove_file 'Gemfile' create_file 'Gemfile' do <<-TEXT source 'https://rubygems.org' gem 'rails', '4.2.7.1' #{if mongoid then "gem 'mongoid'" else "gem 'pg'" end} gem 'sass' gem 'sass-rails' gem 'compass' gem 'compass-rails' # #{if mongoid then "gem 'glebtv-mongoid-paperclip'" else "gem 'paperclip'" end} # gem "image_optim" # gem "paperclip-optimizer" # gem 'ack-paperclip-meta', github: "red-rocks/paperclip-meta" # gem 'rails_admin_multiple_file_upload' gem 'rails_admin_user_abilities', '~> 0.1.0' # gem 'rails_admin_user_abilities', github: "red-rocks/rails_admin_user_abilities" gem 'rails_admin_model_settings', '~> 0.2.1' # gem 'rails_admin_model_settings', github: "red-rocks/rails_admin_model_settings" # #{if mongoid then "gem 'hancock_cms_mongoid'" else "gem 'hancock_cms_activerecord'" end}, github: 'red-rocks/hancock_cms', branch: 'rails4' #{if mongoid then "gem 'hancock_cms_mongoid'" else "gem 'hancock_cms_activerecord'" end}, path: "/home/ack/www/redrocks/hancock" # gem 'recaptcha', require: 'recaptcha/rails' # gem 'glebtv-simple_captcha' gem 'slim-rails' gem 'rs_russian' gem 'cancancan' # gem 'cloner' gem 'unicorn' gem 'x-real-ip' gem 'sentry-raven' group :development do gem 'better_errors' gem 'binding_of_caller' gem 'pry-rails' gem 'spring' # gem 'capistrano', require: false # # gem 'rvm1-capistrano3', require: false # gem 'glebtv-capistrano-unicorn', require: false # gem 'capistrano-bundler', require: false # gem 'capistrano-rails', require: false # gem 'hipchat' # gem 'coffee-rails-source-maps' # gem 'compass-rails-source-maps' gem 'ack_favicon_maker_rails', '~> 1.0.1' # gem 'ack_favicon_maker_rails', github: 'ack43/favicon_maker_rails' # gem 'rails_email_preview', '~> 1.0.3' gem 'image_optim_pack' gem 'puma' end group :test do gem 'rspec-rails' gem 'database_cleaner' gem 'email_spec' #{if mongoid then "gem 'mongoid-rspec'" else "" end} gem 'ffaker' gem 'factory_girl_rails' end # #{if mongoid then "gem 'mongo_session_store-rails4'" else "gem 'activerecord-session_store'" end} gem 'slim' gem 'sprockets' gem 'uglifier' group :production do gem "god" end gem 'glebtv_mongoid_userstamp', '0.6.2' TEXT end RVM_RUBY_VERSION = "2.3.3" create_file '.ruby-version', "#{RVM_RUBY_VERSION}\n" create_file '.ruby-gemset', "#{app_name.underscore}\n" run "rvm #{RVM_RUBY_VERSION} do rvm gemset create #{app_name.underscore}" run "rvm #{RVM_RUBY_VERSION}@#{app_name.underscore} do gem install bundler" run "rvm #{RVM_RUBY_VERSION}@#{app_name.underscore} do bundle install --without production" ####### CONFIG ####### create_file 'config/locales/ru.yml' do <<-TEXT ru: attributes: is_default: По умолчанию mongoid: models: item: Товар attributes: item: price: Цена TEXT end remove_file "config/locales/devise.en.yml" remove_file "config/locales/en.yml" create_file 'config/navigation.rb' do <<-TEXT # empty file to please simple_navigation, we are not using it # See https://github.com/red-rocks/hancock_cms/blob/master/app/controllers/concerns/hancock/menu.rb TEXT end if mongoid create_file 'config/mongoid.yml' do <<-TEXT development: clients: default: database: #{app_name.underscore} hosts: - localhost:27017 production: clients: default: database: #{app_name.underscore} hosts: - localhost:27017 test: clients: default: database: #{app_name.underscore}_test hosts: - localhost:27017 TEXT end FileUtils.cp(Pathname.new(destination_root).join('config', 'mongoid.yml').to_s, Pathname.new(destination_root).join('config', 'mongoid.yml.example').to_s) else remove_file 'config/database.yml' create_file 'config/database.yml' do <<-TEXT development: adapter: postgresql encoding: unicode database: #{app_name.underscore}_development pool: 5 username: #{app_name.underscore} password: #{app_name.underscore} template: template0 TEXT end FileUtils.cp(Pathname.new(destination_root).join('config', 'database.yml').to_s, Pathname.new(destination_root).join('config', 'database.yml.example').to_s) say "Please create a PostgreSQL user #{app_name.underscore} with password #{app_name.underscore} and a database #{app_name.underscore}_development owned by him for development NOW.", :red ask("Press when done.", true) end remove_file 'config/application.rb' create_file 'config/application.rb' do <<-TEXT require File.expand_path('../boot', __FILE__) # Pick the frameworks you want: require "active_model/railtie" #{'#' if mongoid}require "active_record/railtie" require "action_controller/railtie" # require "action_mailer/railtie" # mailer is off by default require "action_mailer/railtie" require "action_view/railtie" require "sprockets/railtie" # require "rails/test_unit/railtie" # Require the gems listed in Gemfile, including any gems # you've limited to :test, :development, or :production. Bundler.require(*Rails.groups) module #{app_name.underscore.camelcase} class Application < Rails::Application config.generators do |g| g.test_framework :rspec g.view_specs false g.helper_specs false g.feature_specs false g.template_engine :slim g.stylesheets false g.javascripts false g.helper false g.fixture_replacement :factory_girl, :dir => 'spec/factories' end config.i18n.locale = :ru config.i18n.default_locale = :ru config.i18n.available_locales = [:ru, :en] config.i18n.enforce_available_locales = true #{'config.active_record.schema_format = :sql' unless mongoid} #{'config.autoload_paths += %W(#{config.root}/extra)'} #{'config.eager_load_paths += %W(#{config.root}/extra)'} config.time_zone = 'Europe/Moscow' config.assets.paths << Rails.root.join("app", "assets", "fonts") end end TEXT end