class Priora::Priority

Constants

DIRECTIONAL_METHODS
DIRECTION_ASC
DIRECTION_DESC

Attributes

attribute[R]
direction[R]

Public Class Methods

new(attribute:, direction: DIRECTION_DESC) click to toggle source
# File lib/priora/priority.rb, line 13
def initialize(attribute:, direction: DIRECTION_DESC)
  @attribute = attribute
  @direction = direction
end

Public Instance Methods

comparable_value_from(object) click to toggle source
# File lib/priora/priority.rb, line 18
def comparable_value_from(object)
  raw_value = object.send(@attribute)
  numeric_value = numeric_value_from(raw_value)
  directional_value_from(numeric_value)
end

Private Instance Methods

directional_value_from(numeric_value) click to toggle source
# File lib/priora/priority.rb, line 31
def directional_value_from(numeric_value)
  0.send(DIRECTIONAL_METHODS[@direction], numeric_value)
end
numeric_value_from(raw_value) click to toggle source
# File lib/priora/priority.rb, line 26
def numeric_value_from(raw_value)
  conversion_lambda = Priora.configuration.conversion_lambda_for(raw_value.class)
  conversion_lambda ? conversion_lambda.call(raw_value) : raw_value
end