Class: Aruba::Initializers::CommonInitializer

Inherits:
Thor::Group
  • Object
show all
Includes:
Thor::Actions
Defined in:
lib/aruba/initializer.rb

Overview

Common initializer

Instance Method Summary collapse

Instance Method Details

#add_gemObject

Add gem to gemfile



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/aruba/initializer.rb', line 20

def add_gem
  file = 'Gemfile'
  creator = if File.exist? file
              :append_to_file
            else
              :create_file
            end

  content = if File.exist? file
              file_ends_with_carriage_return =
                File.open(file, 'r').readlines.last.match(/.*\n$/)

              prefix = file_ends_with_carriage_return ? '' : "\n"

              %(#{prefix}gem 'aruba', '~> #{Aruba::VERSION}')
            else
              %(source 'https://rubygems.org'\ngem 'aruba', '~> #{Aruba::VERSION}'\n)
            end
  send creator, file, content
end