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