mongoid_search2 0.3.0.beta.1

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.
Files changed (116) hide show
  1. data/LICENSE +20 -0
  2. data/README.md +121 -0
  3. data/Rakefile +12 -0
  4. data/VERSION +1 -0
  5. data/lib/mongoid_search/log.rb +22 -0
  6. data/lib/mongoid_search/mongoid_search.rb +127 -0
  7. data/lib/mongoid_search/railtie.rb +10 -0
  8. data/lib/mongoid_search/stemmers.rb +26 -0
  9. data/lib/mongoid_search/util.rb +45 -0
  10. data/lib/mongoid_search.rb +4 -0
  11. data/spec/config/ignorelist.yml +2 -0
  12. data/spec/coverage/assets/0.4.5/app.js +66 -0
  13. data/spec/coverage/assets/0.4.5/fancybox/blank.gif +0 -0
  14. data/spec/coverage/assets/0.4.5/fancybox/fancy_close.png +0 -0
  15. data/spec/coverage/assets/0.4.5/fancybox/fancy_loading.png +0 -0
  16. data/spec/coverage/assets/0.4.5/fancybox/fancy_nav_left.png +0 -0
  17. data/spec/coverage/assets/0.4.5/fancybox/fancy_nav_right.png +0 -0
  18. data/spec/coverage/assets/0.4.5/fancybox/fancy_shadow_e.png +0 -0
  19. data/spec/coverage/assets/0.4.5/fancybox/fancy_shadow_n.png +0 -0
  20. data/spec/coverage/assets/0.4.5/fancybox/fancy_shadow_ne.png +0 -0
  21. data/spec/coverage/assets/0.4.5/fancybox/fancy_shadow_nw.png +0 -0
  22. data/spec/coverage/assets/0.4.5/fancybox/fancy_shadow_s.png +0 -0
  23. data/spec/coverage/assets/0.4.5/fancybox/fancy_shadow_se.png +0 -0
  24. data/spec/coverage/assets/0.4.5/fancybox/fancy_shadow_sw.png +0 -0
  25. data/spec/coverage/assets/0.4.5/fancybox/fancy_shadow_w.png +0 -0
  26. data/spec/coverage/assets/0.4.5/fancybox/fancy_title_left.png +0 -0
  27. data/spec/coverage/assets/0.4.5/fancybox/fancy_title_main.png +0 -0
  28. data/spec/coverage/assets/0.4.5/fancybox/fancy_title_over.png +0 -0
  29. data/spec/coverage/assets/0.4.5/fancybox/fancy_title_right.png +0 -0
  30. data/spec/coverage/assets/0.4.5/fancybox/fancybox-x.png +0 -0
  31. data/spec/coverage/assets/0.4.5/fancybox/fancybox-y.png +0 -0
  32. data/spec/coverage/assets/0.4.5/fancybox/fancybox.png +0 -0
  33. data/spec/coverage/assets/0.4.5/fancybox/jquery.fancybox-1.3.1.css +363 -0
  34. data/spec/coverage/assets/0.4.5/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  35. data/spec/coverage/assets/0.4.5/favicon.png +0 -0
  36. data/spec/coverage/assets/0.4.5/jquery-1.4.2.min.js +155 -0
  37. data/spec/coverage/assets/0.4.5/jquery.dataTables.min.js +152 -0
  38. data/spec/coverage/assets/0.4.5/jquery.timeago.js +141 -0
  39. data/spec/coverage/assets/0.4.5/jquery.url.js +174 -0
  40. data/spec/coverage/assets/0.4.5/loading.gif +0 -0
  41. data/spec/coverage/assets/0.4.5/magnify.png +0 -0
  42. data/spec/coverage/assets/0.4.5/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  43. data/spec/coverage/assets/0.4.5/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  44. data/spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  45. data/spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  46. data/spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  47. data/spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  48. data/spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  49. data/spec/coverage/assets/0.4.5/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  50. data/spec/coverage/assets/0.4.5/smoothness/images/ui-icons_222222_256x240.png +0 -0
  51. data/spec/coverage/assets/0.4.5/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  52. data/spec/coverage/assets/0.4.5/smoothness/images/ui-icons_454545_256x240.png +0 -0
  53. data/spec/coverage/assets/0.4.5/smoothness/images/ui-icons_888888_256x240.png +0 -0
  54. data/spec/coverage/assets/0.4.5/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  55. data/spec/coverage/assets/0.4.5/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  56. data/spec/coverage/assets/0.4.5/stylesheet.css +341 -0
  57. data/spec/coverage/assets/0.5.3/app.js +88 -0
  58. data/spec/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
  59. data/spec/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
  60. data/spec/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
  61. data/spec/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
  62. data/spec/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
  63. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
  64. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
  65. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
  66. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
  67. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
  68. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
  69. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
  70. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
  71. data/spec/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
  72. data/spec/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
  73. data/spec/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
  74. data/spec/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
  75. data/spec/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
  76. data/spec/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
  77. data/spec/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
  78. data/spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
  79. data/spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  80. data/spec/coverage/assets/0.5.3/favicon_green.png +0 -0
  81. data/spec/coverage/assets/0.5.3/favicon_red.png +0 -0
  82. data/spec/coverage/assets/0.5.3/favicon_yellow.png +0 -0
  83. data/spec/coverage/assets/0.5.3/highlight.css +129 -0
  84. data/spec/coverage/assets/0.5.3/highlight.pack.js +1 -0
  85. data/spec/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
  86. data/spec/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
  87. data/spec/coverage/assets/0.5.3/jquery.timeago.js +141 -0
  88. data/spec/coverage/assets/0.5.3/jquery.url.js +174 -0
  89. data/spec/coverage/assets/0.5.3/loading.gif +0 -0
  90. data/spec/coverage/assets/0.5.3/magnify.png +0 -0
  91. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  92. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  93. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  94. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  95. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  96. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  97. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  98. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  99. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
  100. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  101. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
  102. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
  103. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  104. data/spec/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  105. data/spec/coverage/assets/0.5.3/stylesheet.css +383 -0
  106. data/spec/coverage/index.html +702 -0
  107. data/spec/coverage/resultset.yml +631 -0
  108. data/spec/models/category.rb +6 -0
  109. data/spec/models/product.rb +13 -0
  110. data/spec/models/subproduct.rb +8 -0
  111. data/spec/models/tag.rb +6 -0
  112. data/spec/models/variant.rb +4 -0
  113. data/spec/mongoid_search_spec.rb +161 -0
  114. data/spec/spec_helper.rb +34 -0
  115. data/spec/util_spec.rb +62 -0
  116. metadata +343 -0
@@ -0,0 +1,161 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
4
+
5
+ describe Mongoid::Search do
6
+
7
+ before(:each) do
8
+ Product.stem_keywords = false
9
+ Product.ignore_list = nil
10
+ @product = Product.create :brand => "Apple",
11
+ :name => "iPhone",
12
+ :tags => ["Amazing", "Awesome", "Olé"].map { |tag| Tag.new(:name => tag) },
13
+ :category => Category.new(:name => "Mobile"),
14
+ :subproducts => [Subproduct.new(:brand => "Apple", :name => "Craddle")]
15
+ end
16
+
17
+ context "utf-8 characters" do
18
+ before(:each) {
19
+ Product.stem_keywords = false
20
+ Product.ignore_list = nil
21
+ @product = Product.create :brand => "Эльбрус",
22
+ :name => "Процессор",
23
+ :tags => ["Amazing", "Awesome", "Olé"].map { |tag| Tag.new(:name => tag) },
24
+ :category => Category.new(:name => "процессоры"),
25
+ :subproducts => []
26
+ }
27
+
28
+ it "should leave utf8 characters" do
29
+ @product._keywords.should == ["amazing", "awesome", "ole", "процессор", "процессоры", "эльбрус"]
30
+ end
31
+
32
+ it "should return results in search when case doesn't match" do
33
+ Product.search("ЭЛЬБРУС").size.should == 1
34
+ end
35
+ end
36
+
37
+ context "when references are nil" do
38
+ context "when instance is being created" do
39
+ it "should not complain about method missing" do
40
+ lambda { Product.create! }.should_not raise_error
41
+ end
42
+ end
43
+
44
+ subject { Product.create :brand => "Apple", :name => "iPhone" }
45
+
46
+ its(:_keywords) { should == ["apple", "iphone"] }
47
+ end
48
+
49
+ it "should set the _keywords field for array fields also" do
50
+ @product.attrs = ['lightweight', 'plastic', :red]
51
+ @product.save!
52
+ @product._keywords.should include 'lightweight', 'plastic', 'red'
53
+ end
54
+
55
+ it "should inherit _keywords field and build upon" do
56
+ variant = Variant.create :brand => "Apple",
57
+ :name => "iPhone",
58
+ :tags => ["Amazing", "Awesome", "Olé"].map { |tag| Tag.new(:name => tag) },
59
+ :category => Category.new(:name => "Mobile"),
60
+ :subproducts => [Subproduct.new(:brand => "Apple", :name => "Craddle")],
61
+ :color => :white
62
+ variant._keywords.should include 'white'
63
+ Variant.search(:name => 'Apple', :color => :white).should eq [variant]
64
+ end
65
+
66
+ it "should set the _keywords field with stemmed words if stem is enabled" do
67
+ Product.stem_keywords = true
68
+ @product.save!
69
+ @product._keywords.should == ["amaz", "appl", "awesom", "craddl", "iphon", "mobil", "ol"]
70
+ end
71
+
72
+ it "should ignore keywords in an ignore list" do
73
+ Product.ignore_list = YAML.load(File.open(File.dirname(__FILE__) + '/config/ignorelist.yml'))["ignorelist"]
74
+ @product.save!
75
+ @product._keywords.should == ["apple", "craddle", "iphone", "mobile", "ole"]
76
+ end
77
+
78
+ it "should incorporate numbers as keywords" do
79
+ @product = Product.create :brand => "Ford",
80
+ :name => "T 1908",
81
+ :tags => ["Amazing", "First", "Car"].map { |tag| Tag.new(:name => tag) },
82
+ :category => Category.new(:name => "Vehicle")
83
+
84
+ @product.save!
85
+ @product._keywords.should == ["1908","amazing", "car", "first", "ford", "vehicle"]
86
+ end
87
+
88
+
89
+ it "should return results in search" do
90
+ Product.search("apple").size.should == 1
91
+ end
92
+
93
+ it "should return results in search for dynamic attribute" do
94
+ @product[:outlet] = "online shop"
95
+ @product.save!
96
+ Product.search("online").size.should == 1
97
+ end
98
+
99
+ it "should return results in search even searching a accented word" do
100
+ Product.search("Ole").size.should == 1
101
+ Product.search("Olé").size.should == 1
102
+ end
103
+
104
+ it "should return results in search even if the case doesn't match" do
105
+ Product.search("oLe").size.should == 1
106
+ end
107
+
108
+ it "should return results in search with a partial word" do
109
+ Product.search("iph").size.should == 1
110
+ end
111
+
112
+ it "should return results for any matching word with default search" do
113
+ Product.search("apple motorola").size.should == 1
114
+ end
115
+
116
+ it "should not return results when all words do not match, if using :match => :all" do
117
+ Product.match = :all
118
+ Product.search("apple motorola").size.should == 0
119
+ end
120
+
121
+ it "should return results for any matching word, using :match => :all, passing :match => :any to .search" do
122
+ Product.match = :all
123
+ Product.search("apple motorola", :match => :any).size.should == 1
124
+ end
125
+
126
+ it "should not return results when all words do not match, passing :match => :all to .search" do
127
+ Product.search("apple motorola", :match => :all).size.should == 0
128
+ end
129
+
130
+ it "should return no results when a blank search is made" do
131
+ Product.search("").size.should == 0
132
+ end
133
+
134
+ it "should return results when a blank search is made when :allow_empty_search is true" do
135
+ Product.allow_empty_search = true
136
+ Product.search("").size.should == 1
137
+ end
138
+
139
+ it "should search for embedded documents" do
140
+ Product.search("craddle").size.should == 1
141
+ end
142
+
143
+ it 'should work in a chainable fashion' do
144
+ @product.category.products.where(:brand => 'Apple').csearch('apple').size.should == 1
145
+ @product.category.products.csearch('craddle').where(:brand => 'Apple').size.should == 1
146
+ end
147
+
148
+ it 'should return the classes that include the search module' do
149
+ Mongoid::Search.classes.should == [Product]
150
+ end
151
+
152
+ it 'should have a method to index keywords' do
153
+ @product.index_keywords!.should == true
154
+ end
155
+
156
+ it 'should have a class method to index all documents keywords' do
157
+ Product.index_keywords!.should_not include(false)
158
+ end
159
+
160
+
161
+ end
@@ -0,0 +1,34 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+
4
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
5
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
+ require 'mongoid'
7
+ require 'database_cleaner'
8
+ require 'fast_stemmer'
9
+ require 'yaml'
10
+ require 'mongoid_search'
11
+ require "lingua/stemmer"
12
+
13
+ Mongoid.configure do |config|
14
+ name = "mongoid_search_test"
15
+ config.master = Mongo::Connection.new.db(name)
16
+ end
17
+
18
+ Dir["#{File.dirname(__FILE__)}/models/*.rb"].each { |file| require file }
19
+
20
+ DatabaseCleaner.orm = :mongoid
21
+
22
+ RSpec.configure do |config|
23
+ config.before(:all) do
24
+ DatabaseCleaner.strategy = :truncation
25
+ end
26
+
27
+ config.before(:each) do
28
+ DatabaseCleaner.start
29
+ end
30
+
31
+ config.after(:each) do
32
+ DatabaseCleaner.clean
33
+ end
34
+ end
data/spec/util_spec.rb ADDED
@@ -0,0 +1,62 @@
1
+ # encoding: utf-8
2
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
+
4
+ describe MongoidSearch::Util do
5
+ Util = MongoidSearch::Util
6
+
7
+ it "should return an empty array if no text is passed" do
8
+ Util.normalize_keywords("", false, "").should == []
9
+ end
10
+
11
+ it "should return an array of keywords" do
12
+ Util.normalize_keywords("keyword", false, "").class.should == Array
13
+ end
14
+
15
+ it "should return an array of strings" do
16
+ Util.normalize_keywords("keyword", false, "").first.class.should == String
17
+ end
18
+
19
+ it "should remove accents from the text passed" do
20
+ Util.normalize_keywords("café", false, "").should == ["cafe"]
21
+ end
22
+
23
+ it "should downcase the text passed" do
24
+ Util.normalize_keywords("CaFé", false, "").should == ["cafe"]
25
+ end
26
+
27
+ it "should downcase utf-8 chars of the text passed" do
28
+ Util.normalize_keywords("Кафе", false, "").should == ["кафе"]
29
+ end
30
+
31
+ it "should split whitespaces, hifens, dots, underlines, etc.." do
32
+ Util.normalize_keywords("CaFé-express.com delicious;come visit, and 'win' an \"iPad\"", false, "").should == ["cafe", "express", "com", "delicious", "come", "visit", "and", "win", "an", "ipad"]
33
+ end
34
+
35
+ it "should stem keywords" do
36
+ Util.normalize_keywords("A runner running and eating", MongoidSearch::FastStemmer.new, "").should == ["runner", "run", "and", "eat"]
37
+ end
38
+
39
+ it "should stem keywords with ruby-stemmer" do
40
+ Util.normalize_keywords("A runner running and eating", MongoidSearch::LinguaStemmer.new, "").should == ["runner", "run", "and", "eat"]
41
+ end
42
+
43
+ it "should stem russian keywords" do
44
+ Util.normalize_keywords('Города в России бывают очень красивыми', MongoidSearch::LinguaStemmer.new(:language => 'ru'), "").should == %w( город росс быва очен красив )
45
+ end
46
+
47
+ it "should not stem unsupported-language keywords with ruby-stemmer" do
48
+ Util.normalize_keywords("Bakı", MongoidSearch::LinguaStemmer.new(:language => 'az'), "").should == ["bakı"]
49
+ end
50
+
51
+ it "should ignore keywords from ignore list" do
52
+ Util.normalize_keywords("An amazing awesome runner running and eating", MongoidSearch::FastStemmer.new, YAML.load(File.open(File.dirname(__FILE__) + '/config/ignorelist.yml'))["ignorelist"]).should == ["an", "runner", "run", "and", "eat"]
53
+ end
54
+
55
+ it "should ignore keywords with less than two words" do
56
+ Util.normalize_keywords("A runner running", false, "").should_not include "a"
57
+ end
58
+
59
+ it "should not ignore numbers" do
60
+ Util.normalize_keywords("Ford T 1908", false, "").should include "1908"
61
+ end
62
+ end
metadata ADDED
@@ -0,0 +1,343 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: mongoid_search2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.0.beta.1
5
+ prerelease: 6
6
+ platform: ruby
7
+ authors:
8
+ - Mauricio Zaffari
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-02-16 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: mongoid
16
+ requirement: &70366081637700 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 2.0.0
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70366081637700
25
+ - !ruby/object:Gem::Dependency
26
+ name: bson_ext
27
+ requirement: &70366081636920 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '1.2'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70366081636920
36
+ - !ruby/object:Gem::Dependency
37
+ name: fast-stemmer
38
+ requirement: &70366081718420 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ~>
42
+ - !ruby/object:Gem::Version
43
+ version: 1.0.0
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70366081718420
47
+ - !ruby/object:Gem::Dependency
48
+ name: ruby-stemmer
49
+ requirement: &70366081717600 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 0.8.3
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70366081717600
58
+ - !ruby/object:Gem::Dependency
59
+ name: database_cleaner
60
+ requirement: &70366081717020 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ~>
64
+ - !ruby/object:Gem::Version
65
+ version: 0.6.4
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70366081717020
69
+ - !ruby/object:Gem::Dependency
70
+ name: rake
71
+ requirement: &70366081715560 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ~>
75
+ - !ruby/object:Gem::Version
76
+ version: 0.8.7
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70366081715560
80
+ - !ruby/object:Gem::Dependency
81
+ name: rspec
82
+ requirement: &70366081714040 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ~>
86
+ - !ruby/object:Gem::Version
87
+ version: '2.4'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70366081714040
91
+ description: Simple full text search implementation.
92
+ email:
93
+ - mauricio@papodenerd.net
94
+ executables: []
95
+ extensions: []
96
+ extra_rdoc_files: []
97
+ files:
98
+ - lib/mongoid_search/log.rb
99
+ - lib/mongoid_search/mongoid_search.rb
100
+ - lib/mongoid_search/railtie.rb
101
+ - lib/mongoid_search/stemmers.rb
102
+ - lib/mongoid_search/util.rb
103
+ - lib/mongoid_search.rb
104
+ - LICENSE
105
+ - README.md
106
+ - Rakefile
107
+ - VERSION
108
+ - spec/config/ignorelist.yml
109
+ - spec/coverage/assets/0.4.5/app.js
110
+ - spec/coverage/assets/0.4.5/fancybox/blank.gif
111
+ - spec/coverage/assets/0.4.5/fancybox/fancy_close.png
112
+ - spec/coverage/assets/0.4.5/fancybox/fancy_loading.png
113
+ - spec/coverage/assets/0.4.5/fancybox/fancy_nav_left.png
114
+ - spec/coverage/assets/0.4.5/fancybox/fancy_nav_right.png
115
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_e.png
116
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_n.png
117
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_ne.png
118
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_nw.png
119
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_s.png
120
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_se.png
121
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_sw.png
122
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_w.png
123
+ - spec/coverage/assets/0.4.5/fancybox/fancy_title_left.png
124
+ - spec/coverage/assets/0.4.5/fancybox/fancy_title_main.png
125
+ - spec/coverage/assets/0.4.5/fancybox/fancy_title_over.png
126
+ - spec/coverage/assets/0.4.5/fancybox/fancy_title_right.png
127
+ - spec/coverage/assets/0.4.5/fancybox/fancybox-x.png
128
+ - spec/coverage/assets/0.4.5/fancybox/fancybox-y.png
129
+ - spec/coverage/assets/0.4.5/fancybox/fancybox.png
130
+ - spec/coverage/assets/0.4.5/fancybox/jquery.fancybox-1.3.1.css
131
+ - spec/coverage/assets/0.4.5/fancybox/jquery.fancybox-1.3.1.pack.js
132
+ - spec/coverage/assets/0.4.5/favicon.png
133
+ - spec/coverage/assets/0.4.5/jquery-1.4.2.min.js
134
+ - spec/coverage/assets/0.4.5/jquery.dataTables.min.js
135
+ - spec/coverage/assets/0.4.5/jquery.timeago.js
136
+ - spec/coverage/assets/0.4.5/jquery.url.js
137
+ - spec/coverage/assets/0.4.5/loading.gif
138
+ - spec/coverage/assets/0.4.5/magnify.png
139
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
140
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
141
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
142
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
143
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_75_dadada_1x400.png
144
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
145
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
146
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
147
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_222222_256x240.png
148
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_2e83ff_256x240.png
149
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_454545_256x240.png
150
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_888888_256x240.png
151
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_cd0a0a_256x240.png
152
+ - spec/coverage/assets/0.4.5/smoothness/jquery-ui-1.8.4.custom.css
153
+ - spec/coverage/assets/0.4.5/stylesheet.css
154
+ - spec/coverage/assets/0.5.3/app.js
155
+ - spec/coverage/assets/0.5.3/fancybox/blank.gif
156
+ - spec/coverage/assets/0.5.3/fancybox/fancy_close.png
157
+ - spec/coverage/assets/0.5.3/fancybox/fancy_loading.png
158
+ - spec/coverage/assets/0.5.3/fancybox/fancy_nav_left.png
159
+ - spec/coverage/assets/0.5.3/fancybox/fancy_nav_right.png
160
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png
161
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png
162
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png
163
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png
164
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png
165
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png
166
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png
167
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png
168
+ - spec/coverage/assets/0.5.3/fancybox/fancy_title_left.png
169
+ - spec/coverage/assets/0.5.3/fancybox/fancy_title_main.png
170
+ - spec/coverage/assets/0.5.3/fancybox/fancy_title_over.png
171
+ - spec/coverage/assets/0.5.3/fancybox/fancy_title_right.png
172
+ - spec/coverage/assets/0.5.3/fancybox/fancybox-x.png
173
+ - spec/coverage/assets/0.5.3/fancybox/fancybox-y.png
174
+ - spec/coverage/assets/0.5.3/fancybox/fancybox.png
175
+ - spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css
176
+ - spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js
177
+ - spec/coverage/assets/0.5.3/favicon_green.png
178
+ - spec/coverage/assets/0.5.3/favicon_red.png
179
+ - spec/coverage/assets/0.5.3/favicon_yellow.png
180
+ - spec/coverage/assets/0.5.3/highlight.css
181
+ - spec/coverage/assets/0.5.3/highlight.pack.js
182
+ - spec/coverage/assets/0.5.3/jquery-1.6.2.min.js
183
+ - spec/coverage/assets/0.5.3/jquery.dataTables.min.js
184
+ - spec/coverage/assets/0.5.3/jquery.timeago.js
185
+ - spec/coverage/assets/0.5.3/jquery.url.js
186
+ - spec/coverage/assets/0.5.3/loading.gif
187
+ - spec/coverage/assets/0.5.3/magnify.png
188
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
189
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
190
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
191
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
192
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png
193
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
194
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
195
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
196
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png
197
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png
198
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png
199
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png
200
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png
201
+ - spec/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css
202
+ - spec/coverage/assets/0.5.3/stylesheet.css
203
+ - spec/coverage/index.html
204
+ - spec/coverage/resultset.yml
205
+ - spec/models/category.rb
206
+ - spec/models/product.rb
207
+ - spec/models/subproduct.rb
208
+ - spec/models/tag.rb
209
+ - spec/models/variant.rb
210
+ - spec/mongoid_search_spec.rb
211
+ - spec/spec_helper.rb
212
+ - spec/util_spec.rb
213
+ homepage: http://www.papodenerd.net/mongoid-search-full-text-search-for-your-mongoid-models/
214
+ licenses: []
215
+ post_install_message:
216
+ rdoc_options: []
217
+ require_paths:
218
+ - lib
219
+ required_ruby_version: !ruby/object:Gem::Requirement
220
+ none: false
221
+ requirements:
222
+ - - ! '>='
223
+ - !ruby/object:Gem::Version
224
+ version: '0'
225
+ required_rubygems_version: !ruby/object:Gem::Requirement
226
+ none: false
227
+ requirements:
228
+ - - ! '>='
229
+ - !ruby/object:Gem::Version
230
+ version: 1.3.6
231
+ requirements: []
232
+ rubyforge_project:
233
+ rubygems_version: 1.8.15
234
+ signing_key:
235
+ specification_version: 3
236
+ summary: Search implementation for Mongoid ORM
237
+ test_files:
238
+ - spec/config/ignorelist.yml
239
+ - spec/coverage/assets/0.4.5/app.js
240
+ - spec/coverage/assets/0.4.5/fancybox/blank.gif
241
+ - spec/coverage/assets/0.4.5/fancybox/fancy_close.png
242
+ - spec/coverage/assets/0.4.5/fancybox/fancy_loading.png
243
+ - spec/coverage/assets/0.4.5/fancybox/fancy_nav_left.png
244
+ - spec/coverage/assets/0.4.5/fancybox/fancy_nav_right.png
245
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_e.png
246
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_n.png
247
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_ne.png
248
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_nw.png
249
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_s.png
250
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_se.png
251
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_sw.png
252
+ - spec/coverage/assets/0.4.5/fancybox/fancy_shadow_w.png
253
+ - spec/coverage/assets/0.4.5/fancybox/fancy_title_left.png
254
+ - spec/coverage/assets/0.4.5/fancybox/fancy_title_main.png
255
+ - spec/coverage/assets/0.4.5/fancybox/fancy_title_over.png
256
+ - spec/coverage/assets/0.4.5/fancybox/fancy_title_right.png
257
+ - spec/coverage/assets/0.4.5/fancybox/fancybox-x.png
258
+ - spec/coverage/assets/0.4.5/fancybox/fancybox-y.png
259
+ - spec/coverage/assets/0.4.5/fancybox/fancybox.png
260
+ - spec/coverage/assets/0.4.5/fancybox/jquery.fancybox-1.3.1.css
261
+ - spec/coverage/assets/0.4.5/fancybox/jquery.fancybox-1.3.1.pack.js
262
+ - spec/coverage/assets/0.4.5/favicon.png
263
+ - spec/coverage/assets/0.4.5/jquery-1.4.2.min.js
264
+ - spec/coverage/assets/0.4.5/jquery.dataTables.min.js
265
+ - spec/coverage/assets/0.4.5/jquery.timeago.js
266
+ - spec/coverage/assets/0.4.5/jquery.url.js
267
+ - spec/coverage/assets/0.4.5/loading.gif
268
+ - spec/coverage/assets/0.4.5/magnify.png
269
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
270
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
271
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
272
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
273
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_75_dadada_1x400.png
274
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
275
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
276
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
277
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_222222_256x240.png
278
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_2e83ff_256x240.png
279
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_454545_256x240.png
280
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_888888_256x240.png
281
+ - spec/coverage/assets/0.4.5/smoothness/images/ui-icons_cd0a0a_256x240.png
282
+ - spec/coverage/assets/0.4.5/smoothness/jquery-ui-1.8.4.custom.css
283
+ - spec/coverage/assets/0.4.5/stylesheet.css
284
+ - spec/coverage/assets/0.5.3/app.js
285
+ - spec/coverage/assets/0.5.3/fancybox/blank.gif
286
+ - spec/coverage/assets/0.5.3/fancybox/fancy_close.png
287
+ - spec/coverage/assets/0.5.3/fancybox/fancy_loading.png
288
+ - spec/coverage/assets/0.5.3/fancybox/fancy_nav_left.png
289
+ - spec/coverage/assets/0.5.3/fancybox/fancy_nav_right.png
290
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png
291
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png
292
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png
293
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png
294
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png
295
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png
296
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png
297
+ - spec/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png
298
+ - spec/coverage/assets/0.5.3/fancybox/fancy_title_left.png
299
+ - spec/coverage/assets/0.5.3/fancybox/fancy_title_main.png
300
+ - spec/coverage/assets/0.5.3/fancybox/fancy_title_over.png
301
+ - spec/coverage/assets/0.5.3/fancybox/fancy_title_right.png
302
+ - spec/coverage/assets/0.5.3/fancybox/fancybox-x.png
303
+ - spec/coverage/assets/0.5.3/fancybox/fancybox-y.png
304
+ - spec/coverage/assets/0.5.3/fancybox/fancybox.png
305
+ - spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css
306
+ - spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js
307
+ - spec/coverage/assets/0.5.3/favicon_green.png
308
+ - spec/coverage/assets/0.5.3/favicon_red.png
309
+ - spec/coverage/assets/0.5.3/favicon_yellow.png
310
+ - spec/coverage/assets/0.5.3/highlight.css
311
+ - spec/coverage/assets/0.5.3/highlight.pack.js
312
+ - spec/coverage/assets/0.5.3/jquery-1.6.2.min.js
313
+ - spec/coverage/assets/0.5.3/jquery.dataTables.min.js
314
+ - spec/coverage/assets/0.5.3/jquery.timeago.js
315
+ - spec/coverage/assets/0.5.3/jquery.url.js
316
+ - spec/coverage/assets/0.5.3/loading.gif
317
+ - spec/coverage/assets/0.5.3/magnify.png
318
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png
319
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png
320
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png
321
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png
322
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png
323
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png
324
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png
325
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png
326
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png
327
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png
328
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png
329
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png
330
+ - spec/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png
331
+ - spec/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css
332
+ - spec/coverage/assets/0.5.3/stylesheet.css
333
+ - spec/coverage/index.html
334
+ - spec/coverage/resultset.yml
335
+ - spec/models/category.rb
336
+ - spec/models/product.rb
337
+ - spec/models/subproduct.rb
338
+ - spec/models/tag.rb
339
+ - spec/models/variant.rb
340
+ - spec/mongoid_search_spec.rb
341
+ - spec/spec_helper.rb
342
+ - spec/util_spec.rb
343
+ has_rdoc: