Class: TrackRelay::Generators::InstallGenerator

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

Instance Method Summary collapse

Instance Method Details

#create_application_subscriberObject



20
21
22
# File 'lib/generators/track_relay/install/install_generator.rb', line 20

def create_application_subscriber
  template "application_subscriber.rb.tt", "app/track_relay/subscribers/application_subscriber.rb"
end

#create_initializerObject



12
13
14
# File 'lib/generators/track_relay/install/install_generator.rb', line 12

def create_initializer
  template "initializer.rb.tt", "config/initializers/track_relay.rb"
end

#create_sample_catalogObject



16
17
18
# File 'lib/generators/track_relay/install/install_generator.rb', line 16

def create_sample_catalog
  template "sample_catalog.rb.tt", "config/track_relay/sample.rb"
end

#inject_controller_trackingObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/generators/track_relay/install/install_generator.rb', line 24

def inject_controller_tracking
  controller_path = "app/controllers/application_controller.rb"
  unless File.exist?(File.join(destination_root, controller_path))
    say_status :skip, "#{controller_path} not found; add `include TrackRelay::ControllerTracking` manually", :yellow
    return
  end

  existing = File.read(File.join(destination_root, controller_path))
  if existing.include?("TrackRelay::ControllerTracking")
    say_status :identical, "#{controller_path} already includes TrackRelay::ControllerTracking", :blue
    return
  end

  inject_into_class controller_path, "ApplicationController", "  include TrackRelay::ControllerTracking\n"
end

#post_install_messageObject



40
41
42
43
44
45
46
# File 'lib/generators/track_relay/install/install_generator.rb', line 40

def post_install_message
  say ""
  say "TrackRelay installed.", :green
  say "  Edit config/initializers/track_relay.rb to wire subscribers."
  say "  Edit config/track_relay/sample.rb (or rails g track_relay:event NAME) to define events."
  say "  Run `bundle exec rake test` — it should pass cleanly out of the box."
end