Class: Sorted::ParamsQuery
- Inherits:
-
Object
- Object
- Sorted::ParamsQuery
- Extended by:
- Parse
- Defined in:
- lib/sorted/params_query.rb
Overview
Parses an array of decoded query params
This parser/encoder uses an already decoded array of sort strings parsed by a URI library.
Parsing:
params = ['phone_desc', 'name_asc']
set = Sorted::ParamsQuery.parse(params)
set.to_a #=> [['phone', 'desc'], ['name', asc']]
Encoding:
Sorted::ParamsQuery.encode(set) #=> ['phone_desc', 'name_asc']
Constant Summary collapse
- REGEXP =
/(([a-z0-9._]+)_([asc|desc]+)|[a-z0-9._]+)/i
Class Method Summary collapse
Methods included from Parse
Class Method Details
.encode(set) ⇒ Object
34 35 36 |
# File 'lib/sorted/params_query.rb', line 34 def self.encode(set) set.map { |a| a.join('_') } end |
.parse(params) ⇒ Object
26 27 28 29 30 31 32 |
# File 'lib/sorted/params_query.rb', line 26 def self.parse(params) params.inject(Set.new) do |set, part| m = part.match(REGEXP) next unless m set << parse_match(m) end end |