laserlemon-search_party 0.2.2 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/VERSION.yml +2 -2
- data/lib/search_party.rb +7 -2
- data/search_party.gemspec +1 -1
- metadata +1 -1
data/Rakefile
CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
|
|
2
2
|
require 'rake'
|
3
3
|
require 'echoe'
|
4
4
|
|
5
|
-
Echoe.new('search_party', '0.
|
5
|
+
Echoe.new('search_party', '0.3.0') do |g|
|
6
6
|
g.description = %(Parse your query parameters into more meaningful values)
|
7
7
|
g.url = 'http://github.com/laserlemon/search_party'
|
8
8
|
g.author = 'Steve Richert'
|
data/VERSION.yml
CHANGED
data/lib/search_party.rb
CHANGED
@@ -5,6 +5,10 @@ module LaserLemon
|
|
5
5
|
base.cattr_accessor :search_parameter_models
|
6
6
|
base.search_parameter_models = {}
|
7
7
|
|
8
|
+
base.cattr_accessor :search_parameter_finders
|
9
|
+
base.search_parameter_finders = {}
|
10
|
+
base.search_parameter_finders.default = :find_by_id
|
11
|
+
|
8
12
|
base.cattr_accessor :search_parameter_patterns
|
9
13
|
base.search_parameter_patterns = []
|
10
14
|
end
|
@@ -13,8 +17,9 @@ module LaserLemon
|
|
13
17
|
@search_parameters ||= begin
|
14
18
|
query_parameters.symbolize_keys.inject({}) do |new_parameters, (key, value)|
|
15
19
|
parsed_value = parse_search_parameter(value)
|
16
|
-
if
|
17
|
-
|
20
|
+
if model = self.class.search_parameter_models[key]
|
21
|
+
finder = self.class.search_parameter_finders[key]
|
22
|
+
new_values = [*parsed_value].map{|v| model.send(finder, v) }
|
18
23
|
new_value = (parsed_value.is_a?(Array) ? new_values.dup : new_values.first)
|
19
24
|
else
|
20
25
|
new_value = parsed_value
|
data/search_party.gemspec
CHANGED