Class: SimpleJsonapi::Parameters::SortFieldSpec
- Inherits:
-
Object
- Object
- SimpleJsonapi::Parameters::SortFieldSpec
- Defined in:
- lib/simple_jsonapi/parameters/sort_spec.rb
Overview
Represents a single field (and direction) in a SortSpec.
Instance Attribute Summary collapse
- #dir ⇒ :asc, :desc
-
#field ⇒ Object
Symbol.
Instance Method Summary collapse
- #==(other) ⇒ Object (also: #eql?)
- #asc? ⇒ Boolean
- #desc? ⇒ Boolean
- #dup ⇒ Object
- #hash ⇒ Object
-
#initialize(spec) ⇒ SortFieldSpec
constructor
A new instance of SortFieldSpec.
- #to_s ⇒ Object (also: #inspect)
Constructor Details
#initialize(spec) ⇒ SortFieldSpec
Returns a new instance of SortFieldSpec.
72 73 74 75 76 77 78 79 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 72 def initialize(spec) if spec =~ /\A(-?)(\w+)\Z/ self.field = $2.to_sym self.dir = ($1 == '-' ? :desc : :asc) else raise ArgumentError, "field spec must match 'field' or '-field'" end end |
Instance Attribute Details
#dir ⇒ :asc, :desc
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 68 class SortFieldSpec attr_accessor :field, :dir # @param spec [String] def initialize(spec) if spec =~ /\A(-?)(\w+)\Z/ self.field = $2.to_sym self.dir = ($1 == '-' ? :desc : :asc) else raise ArgumentError, "field spec must match 'field' or '-field'" end end def asc? dir == :asc end def desc? dir == :desc end def dup SortFieldSpec.new(to_s) end def ==(other) other.respond_to?(:field) && other.respond_to?(:dir) && [field, dir] == [other.field, other.dir] end alias_method :eql?, :== def hash [field, dir].hash end def to_s "#{'-' if desc?}#{field}" end alias_method :inspect, :to_s end |
#field ⇒ Object
Returns Symbol.
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 68 class SortFieldSpec attr_accessor :field, :dir # @param spec [String] def initialize(spec) if spec =~ /\A(-?)(\w+)\Z/ self.field = $2.to_sym self.dir = ($1 == '-' ? :desc : :asc) else raise ArgumentError, "field spec must match 'field' or '-field'" end end def asc? dir == :asc end def desc? dir == :desc end def dup SortFieldSpec.new(to_s) end def ==(other) other.respond_to?(:field) && other.respond_to?(:dir) && [field, dir] == [other.field, other.dir] end alias_method :eql?, :== def hash [field, dir].hash end def to_s "#{'-' if desc?}#{field}" end alias_method :inspect, :to_s end |
Instance Method Details
#==(other) ⇒ Object Also known as: eql?
93 94 95 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 93 def ==(other) other.respond_to?(:field) && other.respond_to?(:dir) && [field, dir] == [other.field, other.dir] end |
#asc? ⇒ Boolean
81 82 83 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 81 def asc? dir == :asc end |
#desc? ⇒ Boolean
85 86 87 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 85 def desc? dir == :desc end |
#dup ⇒ Object
89 90 91 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 89 def dup SortFieldSpec.new(to_s) end |
#hash ⇒ Object
98 99 100 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 98 def hash [field, dir].hash end |
#to_s ⇒ Object Also known as: inspect
102 103 104 |
# File 'lib/simple_jsonapi/parameters/sort_spec.rb', line 102 def to_s "#{'-' if desc?}#{field}" end |