class DatashiftJourney::InstallCollectorGenerator

Public Instance Methods

copy_collector_migration() click to toggle source
# File lib/generators/datashift_journey/collector/install_collector_generator.rb, line 14
def copy_collector_migration
  migration_template "migration.rb", "db/migrate/add_foo_to_bar.rb"
  migration_template 'collector_migration.rb', 'db/migrate/datashift_journey_create_collector.rb', migration_version: migration_version
end
install_common() click to toggle source

Hmm bit odd but to get thor to work appears we need to wrap calls to our common methods

# File lib/generators/datashift_journey/collector/install_collector_generator.rb, line 23
def install_common
  create_initializer_file(klass)

  notify_about_routes

  insert_into_file File.join('config', 'routes.rb'), before: "end\n" do
    %(
      # This line mounts Datashift Journey's Collector routes
      #
      scope :api, constraints: { format: 'json' } do
        scope :v1 do
          resources :page_states, only: [:create], controller: 'datashift_journey/page_states'
        end
      end
    )
  end

  journey_plan_host_file(klass)

  model_journey_code(klass)
end

Private Instance Methods

klass() click to toggle source
# File lib/generators/datashift_journey/collector/install_collector_generator.rb, line 51
def klass
  'DatashiftJourney::Collector::Collector'
end
migration_version() click to toggle source
# File lib/generators/datashift_journey/collector/install_collector_generator.rb, line 55
def migration_version
  "[#{Rails::VERSION::MAJOR}.#{Rails::VERSION::MINOR}]" if rails5?
end
rails5?() click to toggle source
# File lib/generators/datashift_journey/collector/install_collector_generator.rb, line 47
def rails5?
  Rails.version.start_with? '5'
end