Class: Louisville::CollisionResolvers::NumericSequence

Inherits:
Abstract
  • Object
show all
Defined in:
lib/louisville/collision_resolvers/numeric_sequence.rb

Instance Method Summary collapse

Methods inherited from Abstract

#initialize, #unique?

Constructor Details

This class inherits a constructor from Louisville::CollisionResolvers::Abstract

Instance Method Details

#assign_slug(val) ⇒ Object



16
17
18
19
20
21
# File 'lib/louisville/collision_resolvers/numeric_sequence.rb', line 16

def assign_slug(val)
  base, seq = Louisville::Util.slug_parts(val)

  @instance.send("#{config[:column]}=", base)
  @instance.send("#{config[:column]}_sequence=", seq)
end

#next_valid_slugObject



11
12
13
# File 'lib/louisville/collision_resolvers/numeric_sequence.rb', line 11

def next_valid_slug
  provide_latest_slug(next_valid_slug_from_table, next_valid_slug_from_history)
end

#provides_collision_solution?Boolean

Returns:

  • (Boolean)


6
7
8
# File 'lib/louisville/collision_resolvers/numeric_sequence.rb', line 6

def provides_collision_solution?
  true
end

#read_slugObject



24
25
26
27
28
29
# File 'lib/louisville/collision_resolvers/numeric_sequence.rb', line 24

def read_slug
  col = config[:column]
  seq = "#{col}_sequence"

  "#{@instance.send(col)}--#{@instance.send(seq)}"
end

#slug_changed?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/louisville/collision_resolvers/numeric_sequence.rb', line 32

def slug_changed?
  @instance.send("#{config[:column]}_changed?") || @instance.send("#{@config[:column]}_sequence_changed?")
end