class Sortiri::Parser

Constants

DELIMITER

Attributes

sort_string[R]
sortable_columns[R]

Public Class Methods

new(sortable_columns:, sort_string:) click to toggle source
# File lib/sortiri/parser.rb, line 9
def initialize(sortable_columns:, sort_string:)
  @sortable_columns = sortable_columns # Array of Sortiri::ActiveRecord::Column
  @sort_string = sort_string
end
parse(sort_string:) click to toggle source
# File lib/sortiri/parser.rb, line 22
def self.parse(sort_string:)
  return [] if sort_string.blank?

  sort_string.split(DELIMITER).map do |s|
    Sortiri::Column.new(column: s)
  end
end

Public Instance Methods

whitelisted_columns() click to toggle source
# File lib/sortiri/parser.rb, line 14
def whitelisted_columns
  columns = self.class.parse(sort_string: sort_string)

  columns.select do |column|
    sortable_columns.any? { |c| c.matches_with?(column) }
  end
end