lib/rails/templates/03-expert.rb in elasticsearch-rails-2.0.1 vs lib/rails/templates/03-expert.rb in elasticsearch-rails-5.0.0

- old
+ new

@@ -1,8 +1,8 @@ # $ rails new searchapp --skip --skip-bundle --template https://raw.github.com/elasticsearch/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/03-expert.rb -unless File.read('README.rdoc').include? '== [2] Pretty' +unless File.read('README.md').include? '## [2] Pretty' say_status "ERROR", "You have to run the 01-basic.rb and 02-pretty.rb templates first.", :red exit(1) end begin @@ -19,13 +19,13 @@ say_status "ERROR", "Redis not available", :red say_status "", "This template uses an asynchronous indexer via Sidekiq, and requires a running Redis server." exit(1) end -append_to_file 'README.rdoc', <<-README +append_to_file 'README.md', <<-README -== [3] Expert +## [3] Expert The `expert` template changes to a complex database schema with model relationships: article belongs to a category, has many authors and comments. * The Elasticsearch integration is refactored into the `Searchable` concern @@ -37,11 +37,11 @@ * A Rails initializer is added to customize the Elasticsearch client configuration * Seed script and example data from New York Times is added README -git add: "README.rdoc" +git add: "README.md" git commit: "-m '[03] Updated the application README'" # ----- Add gems into Gemfile --------------------------------------------------------------------- puts @@ -75,23 +75,10 @@ git add: "Gemfile*" git add: "config/" git commit: "-m 'Added Pry as the console for development'" -# ----- Disable asset logging in development ------------------------------------------------------ - -puts -say_status "Application", "Disabling asset logging in development...\n", :yellow -puts '-'*80, ''; sleep 0.25 - -environment 'config.assets.logger = false', env: 'development' -gem 'quiet_assets', group: "development" - -git add: "Gemfile*" -git add: "config/" -git commit: "-m 'Disabled asset logging in development'" - # ----- Run bundle install ------------------------------------------------------------------------ run "bundle install" # ----- Define and generate schema ---------------------------------------------------------------- @@ -171,15 +158,14 @@ class Article < ActiveRecord::Base include Searchable end CODE -gsub_file "#{Rails::VERSION::STRING > '4' ? 'test/models' : 'test/unit' }/article_test.rb", %r{assert_equal 'foo', definition\[:query\]\[:multi_match\]\[:query\]}, "assert_equal 'foo', definition.to_hash[:query][:bool][:should][0][:multi_match][:query]" +gsub_file "test/models/article_test.rb", %r{assert_equal 'foo', definition\[:query\]\[:multi_match\]\[:query\]}, "assert_equal 'foo', definition.to_hash[:query][:bool][:should][0][:multi_match][:query]" # copy_file File.expand_path('../searchable.rb', __FILE__), 'app/models/concerns/searchable.rb' -get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/searchable.rb', - 'app/models/concerns/searchable.rb' +get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/searchable.rb', 'app/models/concerns/searchable.rb' insert_into_file "app/models/article.rb", after: "ActiveRecord::Base" do <<-CODE has_and_belongs_to_many :categories, after_add: [ lambda { |a,c| Indexer.perform_async(:update, a.class.to_s, a.id) } ], @@ -203,12 +189,11 @@ gem "sidekiq" run "bundle install" # copy_file File.expand_path('../indexer.rb', __FILE__), 'app/workers/indexer.rb' -get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/indexer.rb', - 'app/workers/indexer.rb' +get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/indexer.rb', 'app/workers/indexer.rb' insert_into_file "test/test_helper.rb", "require 'sidekiq/testing'\n\n", before: "class ActiveSupport::TestCase\n" @@ -239,23 +224,20 @@ CODE end # copy_file File.expand_path('../search_controller_test.rb', __FILE__), 'test/controllers/search_controller_test.rb' -get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/search_controller_test.rb', - 'test/controllers/search_controller_test.rb' +get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/search_controller_test.rb', 'test/controllers/search_controller_test.rb' route "get '/search', to: 'search#index', as: 'search'" gsub_file 'config/routes.rb', %r{root to: 'articles#index'$}, "root to: 'search#index'" # copy_file File.expand_path('../index.html.erb', __FILE__), 'app/views/search/index.html.erb' -get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/index.html.erb', - 'app/views/search/index.html.erb' +get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/index.html.erb', 'app/views/search/index.html.erb' # copy_file File.expand_path('../search.css', __FILE__), 'app/assets/stylesheets/search.css' -get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/search.css', - 'app/assets/stylesheets/search.css' +get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/search.css', 'app/assets/stylesheets/search.css' git add: "app/controllers/ test/controllers/ config/routes.rb" git add: "app/views/search/ app/assets/stylesheets/search.css" git commit: "-m 'Added SearchController#index'" @@ -302,16 +284,14 @@ puts say_status "Database", "Re-creating the database with data and importing into Elasticsearch...", :yellow puts '-'*80, ''; sleep 0.25 # copy_file File.expand_path('../articles.yml.gz', __FILE__), 'db/articles.yml.gz' -get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/articles.yml.gz', - 'db/articles.yml.gz' +get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/articles.yml.gz', 'db/articles.yml.gz' remove_file 'db/seeds.rb' # copy_file File.expand_path('../seeds.rb', __FILE__), 'db/seeds.rb' -get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/seeds.rb', - 'db/seeds.rb' +get 'https://raw.githubusercontent.com/elastic/elasticsearch-rails/master/elasticsearch-rails/lib/rails/templates/seeds.rb', 'db/seeds.rb' rake "db:reset" rake "environment elasticsearch:import:model CLASS='Article' BATCH=100 FORCE=y" git add: "db/seeds.rb db/articles.yml.gz"