class Sortiri::Column

Constants

ASCENDING_SIGN
ASCENDING_SQL
ASSOCIATION_DELIMITER
DESCENDING_SIGN
DESCENDING_SQL

Attributes

name_with_sign[R]

Public Class Methods

new(column:) click to toggle source
# File lib/sortiri/column.rb, line 13
def initialize(column:)
  @name_with_sign = column.to_s
end

Public Instance Methods

asc?() click to toggle source
# File lib/sortiri/column.rb, line 63
def asc?
  direction == ASCENDING_SIGN
end
association() click to toggle source
# File lib/sortiri/column.rb, line 31
def association
  return unless foreign_column?

  # name might have '-' sign, delete_prefix removes that
  # if no sign in there, it just returns the whole string
  name_with_sign.delete_prefix(DESCENDING_SIGN).split(ASSOCIATION_DELIMITER).first
end
desc?() click to toggle source
# File lib/sortiri/column.rb, line 67
def desc?
  direction == DESCENDING_SIGN
end
direction() click to toggle source
# File lib/sortiri/column.rb, line 39
def direction
  return DESCENDING_SIGN if name_with_sign.start_with?(DESCENDING_SIGN)

  ASCENDING_SIGN
end
direction_sql() click to toggle source
# File lib/sortiri/column.rb, line 45
def direction_sql
  return DESCENDING_SQL if direction == DESCENDING_SIGN

  ASCENDING_SQL
end
foreign_column?() click to toggle source
# File lib/sortiri/column.rb, line 71
def foreign_column?
  name_with_sign.include?(ASSOCIATION_DELIMITER)
end
name() click to toggle source
# File lib/sortiri/column.rb, line 17
def name
  raw_name = name_with_sign
  raw_name = raw_name[1..] if raw_name.start_with?(DESCENDING_SIGN)
  raw_name = raw_name.split(ASSOCIATION_DELIMITER)[1] if foreign_column?

  raw_name
end
name_with_association() click to toggle source
# File lib/sortiri/column.rb, line 25
def name_with_association
  return [association, name].join(ASSOCIATION_DELIMITER) if foreign_column?

  name
end
toggle_direction() click to toggle source
# File lib/sortiri/column.rb, line 51
def toggle_direction
  return ASCENDING_SIGN if desc?

  DESCENDING_SIGN
end
toggle_icon_class() click to toggle source
# File lib/sortiri/column.rb, line 57
def toggle_icon_class
  return Sortiri.configuration.down_arrow if desc?

  Sortiri.configuration.up_arrow
end