module Install::Gems

Public Class Methods

included(thor) click to toggle source
# File lib/myrails/modules/gems.rb, line 3
    def self.included(thor)
      thor.class_eval do
        
        desc 'add_test_group', 'Add test group gems to Gemfile'
        def add_test_group
          insert_into_file 'Gemfile', before: "group :development, :test do" do <<-CODE
group :test do
  gem 'simplecov'
  gem 'shoulda-matchers'
  gem 'factory_bot_rails'
  gem 'database_cleaner'
  gem 'chromedriver-helper'
  gem 'launchy'
  gem 'rails-controller-testing'
end
CODE
          end
        end

        desc 'add_development_test_gems', 'Add test and development group gems to Gemfile'
        def add_development_test_gems
          insert_into_file 'Gemfile', after: "group :development, :test do\n" do <<-CODE
  gem 'faker'
  gem 'yard'
  gem 'letter_opener'
  gem "rails-erd"
CODE
          end
        end

        desc 'add_rails_gems', 'Add commonly used gems to Gemfile'
        def add_rails_gems
          insert_into_file 'Gemfile', after: "gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]\n" do <<-CODE
gem 'haml-rails'
gem "ransack"
gem 'will_paginate'
gem "font-awesome-rails"
gem 'trix'
gem 'record_tag_helper'
gem 'jquery-rails'
CODE
          end
        end

        desc 'add_private_section', 'Add private section to appliation controller'
        def add_private_section
          insert_into_file 'app/controllers/application_controller.rb', before: 'end' do <<-CODE
  private
 CODE
          end
        end

        desc 'setup_gems', 'Install development, test and prodution gems'
        def setup_gems
          add_test_group
          add_development_test_gems
          add_rails_gems
          run 'bundle install'
          add_private_section
        end

      end
    end

Public Instance Methods

add_development_test_gems() click to toggle source
# File lib/myrails/modules/gems.rb, line 23
        def add_development_test_gems
          insert_into_file 'Gemfile', after: "group :development, :test do\n" do <<-CODE
  gem 'faker'
  gem 'yard'
  gem 'letter_opener'
  gem "rails-erd"
CODE
          end
        end
add_private_section() click to toggle source
# File lib/myrails/modules/gems.rb, line 48
        def add_private_section
          insert_into_file 'app/controllers/application_controller.rb', before: 'end' do <<-CODE
  private
 CODE
          end
        end
add_rails_gems() click to toggle source
# File lib/myrails/modules/gems.rb, line 34
        def add_rails_gems
          insert_into_file 'Gemfile', after: "gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]\n" do <<-CODE
gem 'haml-rails'
gem "ransack"
gem 'will_paginate'
gem "font-awesome-rails"
gem 'trix'
gem 'record_tag_helper'
gem 'jquery-rails'
CODE
          end
        end
add_test_group() click to toggle source
# File lib/myrails/modules/gems.rb, line 7
        def add_test_group
          insert_into_file 'Gemfile', before: "group :development, :test do" do <<-CODE
group :test do
  gem 'simplecov'
  gem 'shoulda-matchers'
  gem 'factory_bot_rails'
  gem 'database_cleaner'
  gem 'chromedriver-helper'
  gem 'launchy'
  gem 'rails-controller-testing'
end
CODE
          end
        end
setup_gems() click to toggle source
# File lib/myrails/modules/gems.rb, line 56
def setup_gems
  add_test_group
  add_development_test_gems
  add_rails_gems
  run 'bundle install'
  add_private_section
end