meta_search 0.5.4 → 0.9.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitmodules CHANGED
@@ -3,4 +3,4 @@
3
3
  url = git://github.com/rails/rails.git
4
4
  [submodule "vendor/arel"]
5
5
  path = vendor/arel
6
- url = git://github.com/ernie/arel.git
6
+ url = git://github.com/rails/arel.git
data/CHANGELOG CHANGED
@@ -1,6 +1,7 @@
1
1
  Changes since 0.5.3 (2010-07-26):
2
- *Add is_true/is_false for boolean columns
3
- * Add is_present and is_blank for non-boolean columns
2
+ * Add is_true/is_false for boolean columns
3
+ * Add is_present and is_blank for string/numeric columns
4
+ * Add is_null and is_not_null for all columns
4
5
  * Fix behavior of equals when used with boolean columns.
5
6
 
6
7
  Changes since 0.5.2 (2010-07-22):
data/Gemfile CHANGED
@@ -1,6 +1,8 @@
1
1
  source :rubygems
2
- gem "arel", ">= 0.4.0"
3
- gem "rails", ">= 3.0.0.beta4"
2
+ gem "arel", "~> 1.0.0.rc1"
3
+ gem "activerecord", "~> 3.0.0.rc2"
4
+ gem "activesupport", "~> 3.0.0.rc2"
5
+ gem "actionpack", "~> 3.0.0.rc2"
4
6
  group :test do
5
7
  gem "rake"
6
8
  gem "shoulda"
data/README.rdoc CHANGED
@@ -231,9 +231,14 @@ Excluded attributes on a model will be honored across associations, so if an Art
231
231
  Then your call to <tt>Article.search</tt> will allow <tt>:comments_body_contains</tt>
232
232
  but not <tt>:comments_user_id_equals</tt> to be passed.
233
233
 
234
- == Reporting issues
234
+ == Contributions
235
235
 
236
- Please report any issues using {Lighthouse}[http://metautonomous.lighthouseapp.com/projects/53012-metasearch/]. Thanks in advance for helping me improve MetaSearch!
236
+ There are several ways you can help MetaSearch continue to improve.
237
+
238
+ * Use MetaSearch in your real-world projects and {submit bug reports or feature suggestions}[http://metautonomous.lighthouseapp.com/projects/53012-metasearch/].
239
+ * Better yet, if you’re so inclined, fix the issue yourself and submit a patch! Or you can {fork the project on GitHub}[http://github.com/ernie/meta_search] and send me a pull request (please include tests!)
240
+ * If you like MetaSearch, spread the word. More users == more eyes on code == more bugs getting found == more bugs getting fixed (hopefully!)
241
+ * Lastly, if MetaSearch has saved you hours of development time on your latest Rails gig, and you’re feeling magnanimous, please consider {making a donation}[http://pledgie.com/campaigns/9647] to the project. I have spent hours of my personal time coding and supporting MetaSearch, and your donation would go a great way toward justifying that time spent to my loving wife. :)
237
242
 
238
243
  == Copyright
239
244
 
data/Rakefile CHANGED
@@ -15,10 +15,10 @@ begin
15
15
  gem.homepage = "http://metautonomo.us/projects/metasearch/"
16
16
  gem.authors = ["Ernie Miller"]
17
17
  gem.add_development_dependency "shoulda"
18
- gem.add_dependency "activerecord", ">= 3.0.0.beta4"
19
- gem.add_dependency "activesupport", ">= 3.0.0.beta4"
20
- gem.add_dependency "actionpack", ">= 3.0.0.beta4"
21
- gem.add_dependency "arel", ">= 0.4.0"
18
+ gem.add_dependency "activerecord", "~> 3.0.0.rc2"
19
+ gem.add_dependency "activesupport", "~> 3.0.0.rc2"
20
+ gem.add_dependency "actionpack", "~> 3.0.0.rc2"
21
+ gem.add_dependency "arel", "~> 1.0.0.rc1"
22
22
  # gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
23
23
  end
24
24
  Jeweler::GemcutterTasks.new
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.4
1
+ 0.9.1
@@ -28,7 +28,7 @@ module MetaSearch
28
28
  include ModelCompatibility
29
29
  include Utility
30
30
 
31
- attr_reader :base, :search_attributes, :join_dependency
31
+ attr_reader :base, :search_attributes, :join_dependency, :errors
32
32
  delegate *RELATION_METHODS + [:to => :relation]
33
33
 
34
34
  # Initialize a new Builder. Requires a base model to wrap, and supports a couple of options
@@ -39,6 +39,7 @@ module MetaSearch
39
39
  @opts = opts
40
40
  @join_dependency = build_join_dependency
41
41
  @search_attributes = {}
42
+ @errors = ActiveModel::Errors.new(self)
42
43
  end
43
44
 
44
45
  def relation
@@ -112,6 +113,25 @@ module MetaSearch
112
113
  self
113
114
  end
114
115
 
116
+ def respond_to?(method_name, include_private = false)
117
+ return true if super # Hopefully we've already defined the method.
118
+
119
+ # Curses! Looks like we'll need to do this the hard way.
120
+ method_name = method_name.to_s
121
+ if RELATION_METHODS.map(&:to_s).include?(method_name)
122
+ true
123
+ elsif method_name.match(/^meta_sort=?$/)
124
+ true
125
+ elsif match = method_name.match(/^(.*)\(([0-9]+).*\)$/)
126
+ method_name, index = match.captures
127
+ respond_to?(method_name)
128
+ elsif matches_named_method(method_name) || matches_attribute_method(method_name)
129
+ true
130
+ else
131
+ false
132
+ end
133
+ end
134
+
115
135
  private
116
136
 
117
137
  def method_missing(method_id, *args, &block)
@@ -5,7 +5,6 @@ module MetaSearch
5
5
 
6
6
  module Helpers
7
7
  module FormBuilder
8
- extend ActiveSupport::Concern
9
8
 
10
9
  # Like other form_for field methods (text_field, hidden_field, password_field) etc,
11
10
  # but takes a list of hashes between the +method+ parameter and the trailing option hash,
@@ -1,23 +1,27 @@
1
1
  module MetaSearch
2
2
  # Just a little module to mix in so that ActionPack doesn't complain.
3
3
  module ModelCompatibility
4
- def self.included(base)
4
+ def self.included(base)
5
5
  base.extend ClassMethods
6
6
  end
7
-
7
+
8
8
  # Force default "Update search" text
9
9
  def persisted?
10
10
  true
11
11
  end
12
-
12
+
13
13
  def to_key
14
14
  nil
15
15
  end
16
-
16
+
17
17
  def to_param
18
18
  nil
19
19
  end
20
-
20
+
21
+ def to_model
22
+ self
23
+ end
24
+
21
25
  class Name < String
22
26
  attr_reader :singular, :plural, :element, :collection, :partial_path, :human
23
27
  alias_method :cache_key, :collection
@@ -32,11 +36,11 @@ module MetaSearch
32
36
  @partial_path = "#{@collection}/#{@element}".freeze
33
37
  end
34
38
  end
35
-
36
- module ClassMethods
37
- def model_name
39
+
40
+ module ClassMethods
41
+ def model_name
38
42
  @_model_name ||= Name.new
39
- end
40
- end
43
+ end
44
+ end
41
45
  end
42
46
  end
@@ -4,23 +4,19 @@ require 'meta_search/builder'
4
4
 
5
5
  module MetaSearch::Searches
6
6
  module ActiveRecord
7
- extend ActiveSupport::Concern
8
-
9
- included do
10
- class_attribute :_metasearch_include_attributes, :_metasearch_exclude_attributes
11
- class_attribute :_metasearch_include_associations, :_metasearch_exclude_associations
12
- class_attribute :_metasearch_methods
13
- self._metasearch_include_attributes =
14
- self._metasearch_exclude_attributes =
15
- self._metasearch_exclude_associations =
16
- self._metasearch_include_associations = []
17
- self._metasearch_methods = {}
18
-
19
- singleton_class.instance_eval do
20
- alias_method :metasearch_include_attr, :attr_searchable
21
- alias_method :metasearch_exclude_attr, :attr_unsearchable
22
- alias_method :metasearch_include_assoc, :assoc_searchable
23
- alias_method :metasearch_exclude_assoc, :assoc_unsearchable
7
+
8
+ def self.included(base)
9
+ base.extend ClassMethods
10
+
11
+ base.class_eval do
12
+ class_attribute :_metasearch_include_attributes, :_metasearch_exclude_attributes
13
+ class_attribute :_metasearch_include_associations, :_metasearch_exclude_associations
14
+ class_attribute :_metasearch_methods
15
+ self._metasearch_include_attributes =
16
+ self._metasearch_exclude_attributes =
17
+ self._metasearch_exclude_associations =
18
+ self._metasearch_include_associations = []
19
+ self._metasearch_methods = {}
24
20
  end
25
21
  end
26
22
 
@@ -29,15 +25,17 @@ module MetaSearch::Searches
29
25
  # MetaSearch::Builder, which behaves pretty much like an ActiveRecord::Relation,
30
26
  # in that it doesn't actually query the database until you do something that
31
27
  # requires it to do so.
32
- def search(opts = {})
28
+ def metasearch(opts = {})
33
29
  opts ||= {} # to catch nil params
34
30
  search_options = opts.delete(:search_options) || {}
35
31
  builder = MetaSearch::Builder.new(self, search_options)
36
32
  builder.build(opts)
37
33
  end
38
34
 
35
+ alias_method :search, :metasearch unless respond_to?(:search)
36
+
39
37
  private
40
-
38
+
41
39
  # Excludes model attributes from searchability. This means that searches can't be created against
42
40
  # these columns, whether the search is based on this model, or the model's attributes are being
43
41
  # searched by association from another model. If a Comment <tt>belongs_to :article</tt> but declares
@@ -62,7 +60,7 @@ module MetaSearch::Searches
62
60
  self._metasearch_include_attributes = (self._metasearch_include_attributes + [attr]).uniq
63
61
  end
64
62
  end
65
-
63
+
66
64
  # Excludes model associations from searchability. This mean that searches can't be created against
67
65
  # these associations. An article that <tt>has_many :comments</tt> but excludes comments from
68
66
  # searching by declaring <tt>assoc_unsearchable :comments</tt> won't make any of the
@@ -74,7 +72,7 @@ module MetaSearch::Searches
74
72
  self._metasearch_exclude_associations = (self._metasearch_exclude_associations + [assoc]).uniq
75
73
  end
76
74
  end
77
-
75
+
78
76
  # As with <tt>attr_searchable</tt> this is the whitelist version of
79
77
  # <tt>assoc_unsearchable</tt>
80
78
  def assoc_searchable(*args)
@@ -84,7 +82,7 @@ module MetaSearch::Searches
84
82
  self._metasearch_include_associations = (self._metasearch_include_associations + [assoc]).uniq
85
83
  end
86
84
  end
87
-
85
+
88
86
  def search_methods(*args)
89
87
  opts = args.last.is_a?(Hash) ? args.pop : {}
90
88
  args.flatten.map(&:to_s).each do |arg|
data/lib/meta_search.rb CHANGED
@@ -26,14 +26,19 @@ module MetaSearch
26
26
  ['not_in', 'ni', 'not_in', {:types => ALL_TYPES, :predicate => :not_in}],
27
27
  ['is_true', {:types => BOOLEANS, :skip_compounds => true}],
28
28
  ['is_false', {:types => BOOLEANS, :skip_compounds => true, :formatter => Proc.new {|param| !param}}],
29
- ['is_present', {:types => (ALL_TYPES - BOOLEANS), :predicate => :not_eq_all, :splat_param => true, :skip_compounds => true, :cast => :boolean, :formatter => Proc.new {|param| [nil, '']}}],
30
- ['is_blank', {:types => (ALL_TYPES - BOOLEANS), :predicate => :eq_any, :splat_param => true, :skip_compounds => true, :cast => :boolean, :formatter => Proc.new {|param| [nil, '']}}]
29
+ ['is_present', {:types => (NUMBERS + STRINGS), :predicate => :not_eq_all, :splat_param => true, :skip_compounds => true, :cast => :boolean, :formatter => Proc.new {|param| [nil, '']}}],
30
+ ['is_blank', {:types => (NUMBERS + STRINGS), :predicate => :eq_any, :splat_param => true, :skip_compounds => true, :cast => :boolean, :formatter => Proc.new {|param| [nil, '']}}],
31
+ ['is_null', {:types => ALL_TYPES, :skip_compounds => true, :cast => :boolean, :formatter => Proc.new {|param| nil}}],
32
+ ['is_not_null', {:types => ALL_TYPES, :predicate => :not_eq, :skip_compounds => true, :cast => :boolean, :formatter => Proc.new {|param| nil}}]
31
33
  ]
32
34
 
33
- RELATION_METHODS = [:joins, :includes, :to_a, :all, :count, :to_sql, :paginate, :autojoin, :find_each, :first, :last, :each, :arel]
35
+ RELATION_METHODS = [:joins, :includes, :select, :order, :where, :having,
36
+ :to_a, :all, :count, :length, :size, :to_sql, :debug_sql, :paginate,
37
+ :find_each, :first, :last, :each, :arel]
34
38
  end
35
39
 
36
40
  require 'active_record'
41
+ require 'active_support'
37
42
  require 'action_view'
38
43
  require 'action_controller'
39
44
  require 'meta_search/searches/active_record'
data/meta_search.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{meta_search}
8
- s.version = "0.5.4"
8
+ s.version = "0.9.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Ernie Miller"]
12
- s.date = %q{2010-07-28}
12
+ s.date = %q{2010-08-24}
13
13
  s.description = %q{
14
14
  Allows simple search forms to be created against an AR3 model
15
15
  and its associations, has useful view helpers for sort links
@@ -62,7 +62,7 @@ Gem::Specification.new do |s|
62
62
  s.homepage = %q{http://metautonomo.us/projects/metasearch/}
63
63
  s.rdoc_options = ["--charset=UTF-8"]
64
64
  s.require_paths = ["lib"]
65
- s.rubygems_version = %q{1.3.7}
65
+ s.rubygems_version = %q{1.3.6}
66
66
  s.summary = %q{ActiveRecord 3 object-based searching for your form_for enjoyment.}
67
67
  s.test_files = [
68
68
  "test/fixtures/company.rb",
@@ -80,25 +80,25 @@ Gem::Specification.new do |s|
80
80
  current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
81
81
  s.specification_version = 3
82
82
 
83
- if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
83
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
84
84
  s.add_development_dependency(%q<shoulda>, [">= 0"])
85
- s.add_runtime_dependency(%q<activerecord>, [">= 3.0.0.beta4"])
86
- s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0.beta4"])
87
- s.add_runtime_dependency(%q<actionpack>, [">= 3.0.0.beta4"])
88
- s.add_runtime_dependency(%q<arel>, [">= 0.4.0"])
85
+ s.add_runtime_dependency(%q<activerecord>, ["~> 3.0.0.rc2"])
86
+ s.add_runtime_dependency(%q<activesupport>, ["~> 3.0.0.rc2"])
87
+ s.add_runtime_dependency(%q<actionpack>, ["~> 3.0.0.rc2"])
88
+ s.add_runtime_dependency(%q<arel>, ["~> 1.0.0.rc1"])
89
89
  else
90
90
  s.add_dependency(%q<shoulda>, [">= 0"])
91
- s.add_dependency(%q<activerecord>, [">= 3.0.0.beta4"])
92
- s.add_dependency(%q<activesupport>, [">= 3.0.0.beta4"])
93
- s.add_dependency(%q<actionpack>, [">= 3.0.0.beta4"])
94
- s.add_dependency(%q<arel>, [">= 0.4.0"])
91
+ s.add_dependency(%q<activerecord>, ["~> 3.0.0.rc2"])
92
+ s.add_dependency(%q<activesupport>, ["~> 3.0.0.rc2"])
93
+ s.add_dependency(%q<actionpack>, ["~> 3.0.0.rc2"])
94
+ s.add_dependency(%q<arel>, ["~> 1.0.0.rc1"])
95
95
  end
96
96
  else
97
97
  s.add_dependency(%q<shoulda>, [">= 0"])
98
- s.add_dependency(%q<activerecord>, [">= 3.0.0.beta4"])
99
- s.add_dependency(%q<activesupport>, [">= 3.0.0.beta4"])
100
- s.add_dependency(%q<actionpack>, [">= 3.0.0.beta4"])
101
- s.add_dependency(%q<arel>, [">= 0.4.0"])
98
+ s.add_dependency(%q<activerecord>, ["~> 3.0.0.rc2"])
99
+ s.add_dependency(%q<activesupport>, ["~> 3.0.0.rc2"])
100
+ s.add_dependency(%q<actionpack>, ["~> 3.0.0.rc2"])
101
+ s.add_dependency(%q<arel>, ["~> 1.0.0.rc1"])
102
102
  end
103
103
  end
104
104
 
@@ -1,4 +1,4 @@
1
1
  class DataType < ActiveRecord::Base
2
2
  belongs_to :company
3
- metasearch_exclude_attr :str
3
+ attr_unsearchable :str
4
4
  end
data/test/test_search.rb CHANGED
@@ -18,14 +18,30 @@ class TestSearch < Test::Unit::TestCase
18
18
  assert @s.get_association(:developers)
19
19
  end
20
20
 
21
+ should "respond_to? a search against a developer attribute" do
22
+ assert_respond_to @s, :developers_name_eq
23
+ end
24
+
21
25
  should "have a column named name" do
22
26
  assert @s.get_column(:name)
23
27
  end
24
28
 
29
+ should "respond_to? a search against name" do
30
+ assert_respond_to @s, :name_eq
31
+ end
32
+
33
+ should "respond_to? a search against backwards_name" do
34
+ assert_respond_to @s, :backwards_name
35
+ end
36
+
25
37
  should "exclude the column named updated_at" do
26
38
  assert_nil @s.get_column(:updated_at)
27
39
  end
28
40
 
41
+ should "not respond_to? updated_at" do
42
+ assert !@s.respond_to?(:updated_at), "The search responded to :updated_at"
43
+ end
44
+
29
45
  should "raise an error if we try to search on updated_at" do
30
46
  assert_raise NoMethodError do
31
47
  @s.updated_at_eq = [2009, 1, 1]
@@ -36,6 +52,10 @@ class TestSearch < Test::Unit::TestCase
36
52
  assert_nil @s.get_association(:notes)
37
53
  end
38
54
 
55
+ should "not respond_to? notes_note_eq" do
56
+ assert !@s.respond_to?(:notes_note_eq), "The search responded to :notes_note_eq"
57
+ end
58
+
39
59
  should "raise an error if we try to search on notes" do
40
60
  assert_raise NoMethodError do
41
61
  @s.notes_note_eq = 'Blah'
@@ -46,6 +66,14 @@ class TestSearch < Test::Unit::TestCase
46
66
  assert_nil @s.get_attribute(:data_types_str)
47
67
  end
48
68
 
69
+ should "not respond_to? data_types_str_eq" do
70
+ assert !@s.respond_to?(:data_types_str_eq), "The search responded to :data_types_str_eq"
71
+ end
72
+
73
+ should "respond_to? data_types_bln_eq" do
74
+ assert_respond_to @s, :data_types_bln_eq
75
+ end
76
+
49
77
  should "raise an error if we try to search data_types.str" do
50
78
  assert_raise NoMethodError do
51
79
  @s.data_types_str_eq = 'Blah'
@@ -665,7 +693,7 @@ class TestSearch < Test::Unit::TestCase
665
693
  @s.name_is_blank = true
666
694
  end
667
695
 
668
- should "return 5 results" do
696
+ should "return 2 results" do
669
697
  assert_equal 2, @s.all.size
670
698
  end
671
699
 
@@ -673,6 +701,34 @@ class TestSearch < Test::Unit::TestCase
673
701
  assert_equal 0, @s.all.select {|r| r.name.present?}.size
674
702
  end
675
703
  end
704
+
705
+ context "where name is null" do
706
+ setup do
707
+ @s.name_is_null = true
708
+ end
709
+
710
+ should "return 1 result" do
711
+ assert_equal 1, @s.all.size
712
+ end
713
+
714
+ should "contain no results with a non-null name column" do
715
+ assert_equal 0, @s.all.select {|r| r.name != nil}.size
716
+ end
717
+ end
718
+
719
+ context "where name is not null" do
720
+ setup do
721
+ @s.name_is_not_null = true
722
+ end
723
+
724
+ should "return 6 results" do
725
+ assert_equal 6, @s.all.size
726
+ end
727
+
728
+ should "contain no results with a null name column" do
729
+ assert_equal 0, @s.all.select {|r| r.name = nil}.size
730
+ end
731
+ end
676
732
  end
677
733
  end
678
734
  end
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 5
8
- - 4
9
- version: 0.5.4
7
+ - 9
8
+ - 1
9
+ version: 0.9.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - Ernie Miller
@@ -14,14 +14,13 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-07-28 00:00:00 -04:00
17
+ date: 2010-08-24 00:00:00 -04:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: shoulda
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
24
  requirements:
26
25
  - - ">="
27
26
  - !ruby/object:Gem::Version
@@ -34,63 +33,60 @@ dependencies:
34
33
  name: activerecord
35
34
  prerelease: false
36
35
  requirement: &id002 !ruby/object:Gem::Requirement
37
- none: false
38
36
  requirements:
39
- - - ">="
37
+ - - ~>
40
38
  - !ruby/object:Gem::Version
41
39
  segments:
42
40
  - 3
43
41
  - 0
44
42
  - 0
45
- - beta4
46
- version: 3.0.0.beta4
43
+ - rc2
44
+ version: 3.0.0.rc2
47
45
  type: :runtime
48
46
  version_requirements: *id002
49
47
  - !ruby/object:Gem::Dependency
50
48
  name: activesupport
51
49
  prerelease: false
52
50
  requirement: &id003 !ruby/object:Gem::Requirement
53
- none: false
54
51
  requirements:
55
- - - ">="
52
+ - - ~>
56
53
  - !ruby/object:Gem::Version
57
54
  segments:
58
55
  - 3
59
56
  - 0
60
57
  - 0
61
- - beta4
62
- version: 3.0.0.beta4
58
+ - rc2
59
+ version: 3.0.0.rc2
63
60
  type: :runtime
64
61
  version_requirements: *id003
65
62
  - !ruby/object:Gem::Dependency
66
63
  name: actionpack
67
64
  prerelease: false
68
65
  requirement: &id004 !ruby/object:Gem::Requirement
69
- none: false
70
66
  requirements:
71
- - - ">="
67
+ - - ~>
72
68
  - !ruby/object:Gem::Version
73
69
  segments:
74
70
  - 3
75
71
  - 0
76
72
  - 0
77
- - beta4
78
- version: 3.0.0.beta4
73
+ - rc2
74
+ version: 3.0.0.rc2
79
75
  type: :runtime
80
76
  version_requirements: *id004
81
77
  - !ruby/object:Gem::Dependency
82
78
  name: arel
83
79
  prerelease: false
84
80
  requirement: &id005 !ruby/object:Gem::Requirement
85
- none: false
86
81
  requirements:
87
- - - ">="
82
+ - - ~>
88
83
  - !ruby/object:Gem::Version
89
84
  segments:
85
+ - 1
90
86
  - 0
91
- - 4
92
87
  - 0
93
- version: 0.4.0
88
+ - rc1
89
+ version: 1.0.0.rc1
94
90
  type: :runtime
95
91
  version_requirements: *id005
96
92
  description: "\n Allows simple search forms to be created against an AR3 model\n and its associations, has useful view helpers for sort links\n and multiparameter fields as well.\n "
@@ -150,7 +146,6 @@ rdoc_options:
150
146
  require_paths:
151
147
  - lib
152
148
  required_ruby_version: !ruby/object:Gem::Requirement
153
- none: false
154
149
  requirements:
155
150
  - - ">="
156
151
  - !ruby/object:Gem::Version
@@ -158,7 +153,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
158
153
  - 0
159
154
  version: "0"
160
155
  required_rubygems_version: !ruby/object:Gem::Requirement
161
- none: false
162
156
  requirements:
163
157
  - - ">="
164
158
  - !ruby/object:Gem::Version
@@ -168,7 +162,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
168
162
  requirements: []
169
163
 
170
164
  rubyforge_project:
171
- rubygems_version: 1.3.7
165
+ rubygems_version: 1.3.6
172
166
  signing_key:
173
167
  specification_version: 3
174
168
  summary: ActiveRecord 3 object-based searching for your form_for enjoyment.