af83/chouette-core

View on GitHub
app/inserters/id_inserter.rb

Summary

Maintainability
A
0 mins
Test Coverage
# frozen_string_literal: true

# Define primary key via a simple sequence
#
#   inserter = ReferentialInserter.new referential do |config|
#     config.add IdInserter
#   end
#
#   inserter.routes << Chouette::TimeTable.new
#
class IdInserter < ByClassInserter
  def initialize(_target, _options = {})
    super()
  end

  # :nodoc:
  class Base
    def initialize(_model_class, _parent_inserter)
      @next_primary_key = 0
    end

    def insert(model, _options = {})
      model.id = next_primary_key
    end

    def flush
      @next_primary_key = 0
    end

    private

    def next_primary_key
      @next_primary_key += 1
    end
  end
end