module Nextable::DB
Private Instance Methods
field_is_string?()
click to toggle source
Utility ###
# File lib/nextable/db.rb, line 65 def field_is_string? self.class.columns_hash[@field].type == :string end
first_non_nil()
click to toggle source
# File lib/nextable/db.rb, line 16 def first_non_nil @scope.where("? IS NOT NULL", @field) end
greater_field_params()
click to toggle source
# File lib/nextable/db.rb, line 28 def greater_field_params if field_is_string? ["lower(#{@field}) > ?", self.send(@field).downcase] else ["#{@field} > ?", self.send(@field)] end end
greater_id_params()
click to toggle source
# File lib/nextable/db.rb, line 20 def greater_id_params if field_is_string? ["? = ? AND id > ?", @field.downcase, self.send(@field).downcase, id] else ["#{@field} = ? AND id > ?", self.send(@field), id] end end
last_non_nil()
click to toggle source
# File lib/nextable/db.rb, line 44 def last_non_nil @scope.where("? IS NOT NULL") end
lesser_field_params()
click to toggle source
# File lib/nextable/db.rb, line 56 def lesser_field_params if field_is_string? ["lower(#{@field}) < ?", self.send(@field).downcase] else ["#{@field} < ?", self.send(@field)] end end
lesser_id_params()
click to toggle source
# File lib/nextable/db.rb, line 48 def lesser_id_params if field_is_string? ["lower(#{@field}) = ? AND id < ?", self.send(@field).downcase, id] else ["#{@field} = ? AND id < ?", self.send(@field), id] end end
next_nil()
click to toggle source
next_record helpers
# File lib/nextable/db.rb, line 12 def next_nil @scope.where("? IS NULL AND id > ?", @field, id).order(:id).first end
prev_nil()
click to toggle source
previous_record helpers
# File lib/nextable/db.rb, line 40 def prev_nil @scope.where("? IS NULL AND id < ?", id).order(id: :desc).first end