Sha256: 106aceb15f53d19bfd89d7227f99c34729ff3372c9eee8f1e40c35943f9f42e8
Contents?: true
Size: 691 Bytes
Versions: 17
Compression:
Stored size: 691 Bytes
Contents
module JSONAPIonify::Api class SortFieldSet include Enumerable delegate :[], :length, :to_s, :inspect, :each, to: :@list def initialize @list = [] freeze end def to_h map(&:to_h).reduce(:merge) end def invert self.class.new.tap do |set| each do |field| name = case field.order when :asc "-#{field.name}" when :desc "#{field.name}" end set << SortField.new(name) end end end def <<(field) raise TypeError unless field.is_a? SortField @list << field unless @list.include? field end end end
Version data entries
17 entries across 17 versions & 1 rubygems