Module: Install::Gems

Defined in:
lib/myrails/modules/gems.rb

Class Method Summary collapse

Class Method Details

.included(thor) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# 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 "group :test do\n  gem 'simplecov'\n  gem 'shoulda-matchers'\n  gem 'factory_bot_rails'\n  gem 'database_cleaner'\n  gem 'chromedriver-helper'\n  gem 'launchy'\n  gem 'rails-controller-testing'\nend\n"
      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 "  gem 'faker'\n  gem 'yard'\n  gem 'letter_opener'\n  gem \"rails-erd\"\n"
      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 "gem 'haml-rails'\ngem \"ransack\"\ngem 'will_paginate'\ngem \"font-awesome-rails\"\ngem 'trix'\ngem 'record_tag_helper'\ngem 'jquery-rails'\n"
      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 "  private\n CODE\n      end\n    end\n\n    desc 'setup_gems', 'Install development, test and prodution gems'\n    def setup_gems\n      add_test_group\n      add_development_test_gems\n      add_rails_gems\n      run 'bundle install'\n      add_private_section\n    end\n\n  end\nend\n"