class ReportsKit::Order
Constants
- VALID_DIRECTIONS
- VALID_FIELDS
- VALID_RELATIONS
Attributes
direction[RW]
field[RW]
relation[RW]
Public Class Methods
new(relation, field, direction)
click to toggle source
# File lib/reports_kit/order.rb, line 9 def initialize(relation, field, direction) self.relation = relation self.field = field self.direction = direction end
parse(string)
click to toggle source
# File lib/reports_kit/order.rb, line 15 def self.parse(string) string ||= '' field_expression, direction = string.to_s.split(/\s+/) relation, field = (field_expression || '').split('.') relation = relation.presence field = field.presence direction = direction.presence || 'asc' relation = relation.to_i if relation =~ /^\d+$/ raise ArgumentError.new("Invalid relation: #{relation}") unless VALID_RELATIONS.include?(relation) || relation.is_a?(Fixnum) raise ArgumentError.new("Invalid field: #{field}") unless VALID_FIELDS.include?(field) raise ArgumentError.new("Invalid direction: #{direction}") unless VALID_DIRECTIONS.include?(direction) new(relation, field, direction) end