class DatashiftJourney::CollectorGenerator

Public Instance Methods

create_collector() click to toggle source
# File lib/generators/datashift_journey/collector/collector_generator.rb, line 15
    def create_collector
      @migration_version = '6.1'   # TODO: how can we get this dynamically from Rails version ?

      migration_template 'collector_migration.rb', 'db/migrate/datashift_journey_create_collector.rb'#, migration_version: migration_version

      code = <<-EOS
  has_many :data_nodes, class_name: 'DatashiftJourney::Collector::DataNode', as: :plan, foreign_key: :plan_id, dependent: :destroy
  accepts_nested_attributes_for :data_nodes

EOS

      inject_into_file model_path, :after => /class.* < ApplicationRecord/ do
        "\n#{code}"
      end

      route(%(
          # This 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