Class: Addons::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/addons/install_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args, &block) ⇒ InstallGenerator

Returns a new instance of InstallGenerator.



13
14
15
16
17
18
19
20
21
# File 'lib/generators/addons/install_generator.rb', line 13

def initialize(*args, &block)
  super

  @addons_app_id = options[:appid]
  @addons_app_token = options[:apptoken]

  puts "ADDONS_APP_ID: #{@addons_app_id}"
  puts "ADDONS_APP_TOKEN: #{@addons_app_token}"
end

Instance Method Details

#add_application_yml_to_gitignoreObject



29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/addons/install_generator.rb', line 29

def add_application_yml_to_gitignore
  # gitignore config/application.yml so we aren't storing sensitive info in .git
  # TODO: replace figaro with figaro-addons and application.yml with addons.yml
  gitignore = Rails.root.join('.gitignore')
  if File.readlines(gitignore).grep(/config\/application.yml/).size == 0
    File.open(gitignore, 'a') do |file|
      file.puts 'config/application.yml'
    end
  end
end

#add_figaro_gemObject



40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/generators/addons/install_generator.rb', line 40

def add_figaro_gem
  figaro = Rails.root.join('Gemfile')
  if File.readlines(figaro).grep(/gem 'figaro'/).size == 0
    File.open(figaro, 'a') do |file|
      file.puts ""
      file.puts "gem 'figaro' # Addons dependency"
    end
  end

  # bundle install
  result = `bundle install`
end

#bootstrap_app_id_and_tokenObject



53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/generators/addons/install_generator.rb', line 53

def bootstrap_app_id_and_token
  # write config/application.yml to load env vars on startup
  filename = Rails.root.join('config', 'application.yml')

  # NOTE: 'w' overwrites the previous file!
  File.open(filename, 'w') do |file|
    # add new vars to application.yml for the restart
    file.puts "ADDONS_APP_ID: #{@addons_app_id}"
    file.puts "ADDONS_APP_TOKEN: #{@addons_app_token}"
  end

  puts "created application.yml"
end

#create_initializer_fileObject



25
26
27
# File 'lib/generators/addons/install_generator.rb', line 25

def create_initializer_file
  create_file "config/initializers/addons.rb", "# Addons initializer content\nAddons::Config.init()"
end