class HoptoadGenerator

Public Class Methods

source_root() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 8
def self.source_root
  @_hoptoad_source_root ||= File.expand_path("../../../../../generators/hoptoad/templates", __FILE__)
end

Public Instance Methods

install() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 12
def install
  ensure_api_key_was_configured
  ensure_plugin_is_not_present
  append_capistrano_hook
  generate_initializer unless api_key_configured?
  determine_api_key if heroku?
  test_hoptoad
end

Private Instance Methods

api_key_configured?() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 83
def api_key_configured?
  File.exists?('config/initializers/hoptoad.rb')
end
api_key_expression() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 47
def api_key_expression
  s = if options[:api_key]
    "'#{options[:api_key]}'"
  elsif options[:heroku]
    "ENV['HOPTOAD_API_KEY']"
  end
end
append_capistrano_hook() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 37
  def append_capistrano_hook
    if File.exists?('config/deploy.rb') && File.exists?('Capfile')
      append_file('config/deploy.rb', "
        require './config/boot'
        require 'hoptoad_notifier/capistrano'
")
    end
  end
determine_api_key() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 59
def determine_api_key
  puts "Attempting to determine your API Key from Heroku..."
  ENV['HOPTOAD_API_KEY'] = heroku_api_key
  if ENV['HOPTOAD_API_KEY'].blank?
    puts "... Failed."
    puts "WARNING: We were unable to detect the Hoptoad API Key from your Heroku environment."
    puts "Your Heroku application environment may not be configured correctly."
    exit 1
  else
    puts "... Done."
    puts "Heroku's Hoptoad API Key is '#{ENV['HOPTOAD_API_KEY']}'"
  end
end
ensure_api_key_was_configured() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 23
def ensure_api_key_was_configured
  if !options[:api_key] && !options[:heroku] && !api_key_configured?
    puts "Must pass --api-key or --heroku or create config/initializers/hoptoad.rb"
    exit
  end
end
ensure_plugin_is_not_present() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 30
def ensure_plugin_is_not_present
  if plugin_is_present?
    puts "You must first remove the hoptoad_notifier plugin. Please run: script/plugin remove hoptoad_notifier"
    exit
  end
end
generate_initializer() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 55
def generate_initializer
  template 'initializer.rb', 'config/initializers/hoptoad.rb'
end
heroku?() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 77
def heroku?
  options[:heroku] ||
    system("grep HOPTOAD_API_KEY config/initializers/hoptoad.rb") ||
    system("grep HOPTOAD_API_KEY config/environment.rb")
end
heroku_api_key() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 73
def heroku_api_key
  %x`heroku console 'puts ENV[%{HOPTOAD_API_KEY}]'`.split("\n").first
end
plugin_is_present?() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 91
def plugin_is_present?
  File.exists?('vendor/plugins/hoptoad_notifier')
end
test_hoptoad() click to toggle source
# File lib/rails/generators/hoptoad/hoptoad_generator.rb, line 87
def test_hoptoad
  puts run("rake hoptoad:test --trace")
end