Sha256: 8397fc43d8f9b2bf17d584c6e9a24dcd831ae962d057204506ee75a156e69ab9

Contents?: true

Size: 1.66 KB

Versions: 22

Compression:

Stored size: 1.66 KB

Contents

require 'rails/generators'

class ErrplaneGenerator < Rails::Generators::Base
  desc "Description:\n  This creates a Rails initializer for Errplane."

  begin
    if ARGV.count == 1
      puts "No Application ID provided, contacting Errplane API."
      application_name = Rails.application.class.parent_name || "NewApplication"
      api_key = ARGV.first

      connection = Net::HTTP.new("errplane.com", 443)
      connection.use_ssl = true
      connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
      url = "/api/v1/applications?api_key=#{api_key}&name=#{application_name}"
      response = connection.post(url, nil)

      unless response.is_a?(Net::HTTPSuccess)
        raise "The Errplane API returned an error: #{response.inspect}"
      end

      @application = JSON.parse(response.body)
      @application_id = @application["key"]
    else
      @application_id = ARGV[1]
    end
    puts "Received Application ID: #{@application_id}"

  rescue => e
    puts "We ran into a problem creating your application via the API!"
    puts "If this issue persists, contact us at support@errplane.com with the following details:"
    puts "#{e.class}: #{e.message}"
  end

  source_root File.expand_path('../templates', __FILE__)
  argument :api_key,
    :required => true,
    :type => :string,
    :description => "API key for your Errplane organization"
  argument :application_id,
    :required => false,
    :default => @application_id,
    :type => :string,
    :description => "Identifier for this application (Leave blank and a new one will be generated for you)"

  def copy_initializer_file
    template "initializer.rb", "config/initializers/errplane.rb"
  end

  def install
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
errplane-1.0.15 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.14 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.13 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.11 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.10 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.9 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.8 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.7 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.6 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.5 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.4 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.3 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.2 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.1 lib/rails/generators/errplane/errplane_generator.rb
errplane-1.0.0 lib/rails/generators/errplane/errplane_generator.rb
errplane-0.6.10 lib/rails/generators/errplane/errplane_generator.rb
errplane-0.6.9 lib/rails/generators/errplane/errplane_generator.rb
errplane-0.6.8 lib/rails/generators/errplane/errplane_generator.rb
errplane-0.6.7 lib/rails/generators/errplane/errplane_generator.rb
errplane-0.6.6 lib/rails/generators/errplane/errplane_generator.rb