lib/positioning/mechanisms.rb in positioning-0.1.4 vs lib/positioning/mechanisms.rb in positioning-0.1.5
- old
+ new
@@ -101,13 +101,13 @@
position_before_type_cast = position_before_type_cast.symbolize_keys if position_before_type_cast.is_a? Hash
case position_before_type_cast
when Integer
self.position = position_before_type_cast.clamp(1..last_position)
- when :first, {after: nil}
+ when :first, {after: nil}, {after: ""}
self.position = 1
- when nil, :last, {before: nil}
+ when nil, "", :last, {before: nil}, {before: ""}
self.position = last_position
when Hash
relative_position, relative_record_or_primary_key = *position_before_type_cast.first
unless [:before, :after].include? relative_position
@@ -133,11 +133,12 @@
self.position = solidified_position
end
unless position.is_a? Integer
raise Error.new,
- "`#{@column}` must be an Integer, :first, :last, before: #{base_class.name}, " \
- "after: #{base_class.name}, or nil"
+ %(`#{@column}` must be an Integer, :first, :last, ) +
+ %{before: (#{base_class.name}, #{primary_key_column}, nil, or ""), } +
+ %{after: (#{base_class.name}, #{primary_key_column}, nil or ""), nil or ""}
end
end
def last_position
(positioning_scope.maximum(@column) || 0) + (in_positioning_scope? ? 0 : 1)