class Cranium::Transformation::Sequence

Attributes

name[R]

Public Class Methods

by_name(name) click to toggle source
# File lib/cranium/transformation/sequence.rb, line 31
def by_name(name)
  @sequences ||= {}
  if @sequences[name].nil?
    @sequences[name] = new name
    Cranium.application.after_import { @sequences[name].flush }
  end
  @sequences[name]
end
new(name) click to toggle source
# File lib/cranium/transformation/sequence.rb, line 7
def initialize(name)
  @name = name
end

Public Instance Methods

flush() click to toggle source
# File lib/cranium/transformation/sequence.rb, line 23
def flush
  Cranium::Database.connection.run "SELECT setval('#{@name}', #{@current_value})" unless @current_value.nil?
end
next_value() click to toggle source
# File lib/cranium/transformation/sequence.rb, line 13
def next_value
  if @current_value.nil?
    @current_value = Cranium::Database.connection["SELECT nextval('#{@name}') AS next_value"].first[:next_value]
  else
    @current_value += 1
  end
end