has_searcher 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -3,6 +3,7 @@ class HasSearcher::Base < ::ApplicationController
3
3
  base.class_eval do
4
4
  include HasSearcher::Helpers
5
5
  helper_method :searcher_for
6
+ helper_method :searcher
6
7
  end
7
8
 
8
9
  end
@@ -2,6 +2,10 @@ module HasSearcher::Helpers
2
2
 
3
3
  protected
4
4
 
5
+ def searcher
6
+ @searcher ||= searcher_for(resource_instance_name)
7
+ end
8
+
5
9
  def searcher_for(name)
6
10
  instance_variable_get("@#{searcher_name(name)}") ||
7
11
  instance_variable_set("@#{searcher_name(name)}", create_searcher(searcher_name(name)))
@@ -16,13 +20,14 @@ module HasSearcher::Helpers
16
20
  def create_searcher(searcher_name)
17
21
  begin
18
22
  searcher_clazz = searcher_name.classify.constantize
19
- searcher_clazz.new(params[searcher_name]) do | searcher |
20
- searcher_clazz.column_names.each do | column_name |
21
- searcher[column_name] ||= params[column_name]
22
- end
23
- end
24
23
  rescue NameError
24
+ return
25
25
  end
26
- end
26
+ searcher_clazz.new(params[searcher_name]) do | searcher |
27
+ searcher_clazz.column_names.each do | column_name |
28
+ searcher.send("#{column_name}=", params[column_name]) if searcher.send(column_name).blank?
29
+ end
30
+ end
31
+ end
27
32
 
28
33
  end
@@ -1,3 +1,3 @@
1
1
  module HasSearcher
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 0
8
- - 2
9
- version: 0.0.2
8
+ - 3
9
+ version: 0.0.3
10
10
  platform: ruby
11
11
  authors:
12
12
  - Dmitry Lihachev
@@ -14,7 +14,7 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2011-04-14 00:00:00 +07:00
17
+ date: 2011-04-18 00:00:00 +07:00
18
18
  default_executable:
19
19
  dependencies: []
20
20