Sha256: 1c56c2f8ede12b4314c4ac6ec91982d99ec9257cf8d620550fd1633583b4481b
Contents?: true
Size: 1.17 KB
Versions: 2
Compression:
Stored size: 1.17 KB
Contents
require 'active_support/core_ext/module/delegation' module Might # User provided filtering on particular parameter # class SortParameter DIRECTIONS = %w(asc desc).freeze REVERSED_DIRECTIONS = { 'asc' => 'desc', 'desc' => 'asc', }.freeze attr_reader :direction # @return [ParameterDefinition] # attr_reader :definition # @param ['asc', desc'] direction # @param [SortParameterDefinition] # def initialize(direction, definition) @direction = direction.to_s fail ArgumentError unless DIRECTIONS.include?(@direction) @definition = definition @validator = definition.validator end attr_reader :validator delegate :name, to: :definition delegate :valid?, to: :validator delegate :invalid?, to: :validator def errors validator.errors.full_messages end def ==(other) is_a?(other.class) && direction == other.direction && definition == other.definition end # @return ['asc', desc'] # def direction if definition.reverse_direction? REVERSED_DIRECTIONS[@direction] else @direction end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
might-0.7.1 | lib/might/sort_parameter.rb |
might-0.7.0 | lib/might/sort_parameter.rb |