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 CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('search_party', '0.2.2') do |g|
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
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :major: 0
3
- :minor: 2
4
- :patch: 2
3
+ :minor: 3
4
+ :patch: 0
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 search_parameter_model = self.class.search_parameter_models[key]
17
- new_values = [*parsed_value].map{|v| search_parameter_model.respond_to?(:from_param) ? search_parameter_model.from_param(v) : search_parameter_model.find_by_id(v) }
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
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{search_party}
5
- s.version = "0.2.2"
5
+ s.version = "0.3.0"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Steve Richert"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: laserlemon-search_party
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Steve Richert