indices 0.0.1 → 4.0.0.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 (74) hide show
  1. checksums.yaml +4 -4
  2. metadata +13 -185
  3. data/MIT-LICENSE +0 -20
  4. data/README.md +0 -245
  5. data/Rakefile +0 -19
  6. data/lib/generators/indices/index_generator.rb +0 -15
  7. data/lib/generators/indices/install_generator.rb +0 -15
  8. data/lib/generators/indices/templates/index.rb +0 -12
  9. data/lib/generators/indices/templates/initializer.rb +0 -10
  10. data/lib/indices.rb +0 -102
  11. data/lib/indices/collection.rb +0 -195
  12. data/lib/indices/concern.rb +0 -23
  13. data/lib/indices/configuration.rb +0 -39
  14. data/lib/indices/dsl/api.rb +0 -85
  15. data/lib/indices/dsl/mappings.rb +0 -14
  16. data/lib/indices/dsl/search.rb +0 -25
  17. data/lib/indices/dsl/serializer.rb +0 -17
  18. data/lib/indices/index.rb +0 -149
  19. data/lib/indices/pagination.rb +0 -33
  20. data/lib/indices/proxy.rb +0 -17
  21. data/lib/indices/railtie.rb +0 -15
  22. data/lib/indices/version.rb +0 -5
  23. data/lib/tasks/indices.rake +0 -11
  24. data/test/dsl_test.rb +0 -92
  25. data/test/dummy/Rakefile +0 -5
  26. data/test/dummy/app/assets/javascripts/application.js +0 -13
  27. data/test/dummy/app/assets/stylesheets/application.css +0 -15
  28. data/test/dummy/app/controllers/application_controller.rb +0 -5
  29. data/test/dummy/app/helpers/application_helper.rb +0 -2
  30. data/test/dummy/app/indices/products_index.rb +0 -51
  31. data/test/dummy/app/indices/shops_index.rb +0 -28
  32. data/test/dummy/app/models/product.rb +0 -5
  33. data/test/dummy/app/models/shop.rb +0 -5
  34. data/test/dummy/app/views/layouts/application.html.erb +0 -12
  35. data/test/dummy/bin/bundle +0 -4
  36. data/test/dummy/bin/rails +0 -5
  37. data/test/dummy/bin/rake +0 -5
  38. data/test/dummy/bin/setup +0 -30
  39. data/test/dummy/config.ru +0 -4
  40. data/test/dummy/config/application.rb +0 -25
  41. data/test/dummy/config/boot.rb +0 -5
  42. data/test/dummy/config/database.yml +0 -7
  43. data/test/dummy/config/database.yml.travis +0 -3
  44. data/test/dummy/config/environment.rb +0 -5
  45. data/test/dummy/config/environments/development.rb +0 -41
  46. data/test/dummy/config/environments/production.rb +0 -79
  47. data/test/dummy/config/environments/test.rb +0 -42
  48. data/test/dummy/config/initializers/assets.rb +0 -11
  49. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  50. data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
  51. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  52. data/test/dummy/config/initializers/indices.rb +0 -67
  53. data/test/dummy/config/initializers/inflections.rb +0 -16
  54. data/test/dummy/config/initializers/mime_types.rb +0 -4
  55. data/test/dummy/config/initializers/session_store.rb +0 -3
  56. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  57. data/test/dummy/config/locales/en.yml +0 -23
  58. data/test/dummy/config/routes.rb +0 -56
  59. data/test/dummy/config/secrets.yml +0 -22
  60. data/test/dummy/db/migrate/20161104164148_create_products.rb +0 -12
  61. data/test/dummy/db/migrate/20161104182219_create_shops.rb +0 -7
  62. data/test/dummy/db/schema.rb +0 -36
  63. data/test/dummy/log/development.log +0 -156
  64. data/test/dummy/log/test.log +0 -10249
  65. data/test/dummy/public/404.html +0 -67
  66. data/test/dummy/public/422.html +0 -67
  67. data/test/dummy/public/500.html +0 -66
  68. data/test/dummy/public/favicon.ico +0 -0
  69. data/test/generators_test.rb +0 -25
  70. data/test/indices_test.rb +0 -46
  71. data/test/record_test.rb +0 -25
  72. data/test/search_test.rb +0 -164
  73. data/test/tasks_test.rb +0 -25
  74. data/test/test_helper.rb +0 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b72b3ef891bbf4ba001c080c8a73a0b567f8098d
4
- data.tar.gz: 54850246383eba634fd80a68b48069ae87464370
3
+ metadata.gz: bf3faa1b4ff1e6705a77f6c2de29f2de55ee55b5
4
+ data.tar.gz: d0893eb2d2f1021e6ab1191a7e05345682c8d243
5
5
  SHA512:
6
- metadata.gz: a487528f3d53b1dfc5429d6e6ea0496f3da9aa99883750b96464890af023899a9a1e9e27c305eb977ab94316fbd8ffbbd2510099c2a458e05d6a013007cae2c8
7
- data.tar.gz: 5e44c2f59d06adf3f0faf0e3cdfb6b7689f8f007195a73cdfbd4ba100be9abb9514fe515c479cec7c6271e56f05f38bde58f9e2135e845de7bbe0c298a4385e4
6
+ metadata.gz: 0fbf4449a85b1a056d93429f6eb247f289069927f5e935328af9af935db3727fbdf510262db7589fa13ba1d83bb9b69c57fd517ef9ef8f76c8f998fa50d686e4
7
+ data.tar.gz: 8548b0d4cb862fc995b01aedb64ae7ede6e3ce9df158fa9a5437e10dab6ce0f4c14012b17ce69fe4c2705b5d80377737c819062398bbd94dd501070fce46efc2
metadata CHANGED
@@ -1,161 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: indices
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 4.0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - mmontossi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-11-18 00:00:00.000000000 Z
11
+ date: 2016-12-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: indexes
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 4.2.0
20
- - - "<"
21
- - !ruby/object:Gem::Version
22
- version: 4.3.0
19
+ version: '0'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ">="
28
25
  - !ruby/object:Gem::Version
29
- version: 4.2.0
30
- - - "<"
31
- - !ruby/object:Gem::Version
32
- version: 4.3.0
33
- - !ruby/object:Gem::Dependency
34
- name: elasticsearch
35
- requirement: !ruby/object:Gem::Requirement
36
- requirements:
37
- - - "~>"
38
- - !ruby/object:Gem::Version
39
- version: 2.0.0
40
- type: :runtime
41
- prerelease: false
42
- version_requirements: !ruby/object:Gem::Requirement
43
- requirements:
44
- - - "~>"
45
- - !ruby/object:Gem::Version
46
- version: 2.0.0
47
- - !ruby/object:Gem::Dependency
48
- name: pg
49
- requirement: !ruby/object:Gem::Requirement
50
- requirements:
51
- - - "~>"
52
- - !ruby/object:Gem::Version
53
- version: '0.18'
54
- type: :development
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- requirements:
58
- - - "~>"
59
- - !ruby/object:Gem::Version
60
- version: '0.18'
61
- - !ruby/object:Gem::Dependency
62
- name: mocha
63
- requirement: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - "~>"
66
- - !ruby/object:Gem::Version
67
- version: '1.1'
68
- type: :development
69
- prerelease: false
70
- version_requirements: !ruby/object:Gem::Requirement
71
- requirements:
72
- - - "~>"
73
- - !ruby/object:Gem::Version
74
- version: '1.1'
75
- description: Model search indices with elasticsearch in rails.
26
+ version: '0'
27
+ description: 'THIS GEM HAS BEEN RENAMED TO: indexes'
76
28
  email:
77
29
  - mmontossi@gmail.com
78
30
  executables: []
79
31
  extensions: []
80
32
  extra_rdoc_files: []
81
- files:
82
- - MIT-LICENSE
83
- - README.md
84
- - Rakefile
85
- - lib/generators/indices/index_generator.rb
86
- - lib/generators/indices/install_generator.rb
87
- - lib/generators/indices/templates/index.rb
88
- - lib/generators/indices/templates/initializer.rb
89
- - lib/indices.rb
90
- - lib/indices/collection.rb
91
- - lib/indices/concern.rb
92
- - lib/indices/configuration.rb
93
- - lib/indices/dsl/api.rb
94
- - lib/indices/dsl/mappings.rb
95
- - lib/indices/dsl/search.rb
96
- - lib/indices/dsl/serializer.rb
97
- - lib/indices/index.rb
98
- - lib/indices/pagination.rb
99
- - lib/indices/proxy.rb
100
- - lib/indices/railtie.rb
101
- - lib/indices/version.rb
102
- - lib/tasks/indices.rake
103
- - test/dsl_test.rb
104
- - test/dummy/Rakefile
105
- - test/dummy/app/assets/javascripts/application.js
106
- - test/dummy/app/assets/stylesheets/application.css
107
- - test/dummy/app/controllers/application_controller.rb
108
- - test/dummy/app/helpers/application_helper.rb
109
- - test/dummy/app/indices/products_index.rb
110
- - test/dummy/app/indices/shops_index.rb
111
- - test/dummy/app/models/product.rb
112
- - test/dummy/app/models/shop.rb
113
- - test/dummy/app/views/layouts/application.html.erb
114
- - test/dummy/bin/bundle
115
- - test/dummy/bin/rails
116
- - test/dummy/bin/rake
117
- - test/dummy/bin/setup
118
- - test/dummy/config.ru
119
- - test/dummy/config/application.rb
120
- - test/dummy/config/boot.rb
121
- - test/dummy/config/database.yml
122
- - test/dummy/config/database.yml.travis
123
- - test/dummy/config/environment.rb
124
- - test/dummy/config/environments/development.rb
125
- - test/dummy/config/environments/production.rb
126
- - test/dummy/config/environments/test.rb
127
- - test/dummy/config/initializers/assets.rb
128
- - test/dummy/config/initializers/backtrace_silencers.rb
129
- - test/dummy/config/initializers/cookies_serializer.rb
130
- - test/dummy/config/initializers/filter_parameter_logging.rb
131
- - test/dummy/config/initializers/indices.rb
132
- - test/dummy/config/initializers/inflections.rb
133
- - test/dummy/config/initializers/mime_types.rb
134
- - test/dummy/config/initializers/session_store.rb
135
- - test/dummy/config/initializers/wrap_parameters.rb
136
- - test/dummy/config/locales/en.yml
137
- - test/dummy/config/routes.rb
138
- - test/dummy/config/secrets.yml
139
- - test/dummy/db/migrate/20161104164148_create_products.rb
140
- - test/dummy/db/migrate/20161104182219_create_shops.rb
141
- - test/dummy/db/schema.rb
142
- - test/dummy/log/development.log
143
- - test/dummy/log/test.log
144
- - test/dummy/public/404.html
145
- - test/dummy/public/422.html
146
- - test/dummy/public/500.html
147
- - test/dummy/public/favicon.ico
148
- - test/generators_test.rb
149
- - test/indices_test.rb
150
- - test/record_test.rb
151
- - test/search_test.rb
152
- - test/tasks_test.rb
153
- - test/test_helper.rb
154
- homepage: https://github.com/mmontossi/indices
33
+ files: []
34
+ homepage: https://github.com/mmontossi/indexes
155
35
  licenses:
156
36
  - MIT
157
37
  metadata: {}
158
- post_install_message:
38
+ post_install_message: 'THIS GEM HAS BEEN RENAMED TO: indexes'
159
39
  rdoc_options: []
160
40
  require_paths:
161
41
  - lib
@@ -163,68 +43,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
43
  requirements:
164
44
  - - ">="
165
45
  - !ruby/object:Gem::Version
166
- version: 2.0.0
46
+ version: '0'
167
47
  required_rubygems_version: !ruby/object:Gem::Requirement
168
48
  requirements:
169
49
  - - ">="
170
50
  - !ruby/object:Gem::Version
171
51
  version: '0'
172
- requirements:
173
- - Elasticsearch
52
+ requirements: []
174
53
  rubyforge_project:
175
54
  rubygems_version: 2.5.1
176
55
  signing_key:
177
56
  specification_version: 4
178
- summary: Indices for rails.
179
- test_files:
180
- - test/dsl_test.rb
181
- - test/dummy/app/assets/javascripts/application.js
182
- - test/dummy/app/assets/stylesheets/application.css
183
- - test/dummy/app/controllers/application_controller.rb
184
- - test/dummy/app/helpers/application_helper.rb
185
- - test/dummy/app/indices/products_index.rb
186
- - test/dummy/app/indices/shops_index.rb
187
- - test/dummy/app/models/product.rb
188
- - test/dummy/app/models/shop.rb
189
- - test/dummy/app/views/layouts/application.html.erb
190
- - test/dummy/bin/bundle
191
- - test/dummy/bin/rails
192
- - test/dummy/bin/rake
193
- - test/dummy/bin/setup
194
- - test/dummy/config/application.rb
195
- - test/dummy/config/boot.rb
196
- - test/dummy/config/database.yml
197
- - test/dummy/config/database.yml.travis
198
- - test/dummy/config/environment.rb
199
- - test/dummy/config/environments/development.rb
200
- - test/dummy/config/environments/production.rb
201
- - test/dummy/config/environments/test.rb
202
- - test/dummy/config/initializers/assets.rb
203
- - test/dummy/config/initializers/backtrace_silencers.rb
204
- - test/dummy/config/initializers/cookies_serializer.rb
205
- - test/dummy/config/initializers/filter_parameter_logging.rb
206
- - test/dummy/config/initializers/indices.rb
207
- - test/dummy/config/initializers/inflections.rb
208
- - test/dummy/config/initializers/mime_types.rb
209
- - test/dummy/config/initializers/session_store.rb
210
- - test/dummy/config/initializers/wrap_parameters.rb
211
- - test/dummy/config/locales/en.yml
212
- - test/dummy/config/routes.rb
213
- - test/dummy/config/secrets.yml
214
- - test/dummy/config.ru
215
- - test/dummy/db/migrate/20161104164148_create_products.rb
216
- - test/dummy/db/migrate/20161104182219_create_shops.rb
217
- - test/dummy/db/schema.rb
218
- - test/dummy/log/development.log
219
- - test/dummy/log/test.log
220
- - test/dummy/public/404.html
221
- - test/dummy/public/422.html
222
- - test/dummy/public/500.html
223
- - test/dummy/public/favicon.ico
224
- - test/dummy/Rakefile
225
- - test/generators_test.rb
226
- - test/indices_test.rb
227
- - test/record_test.rb
228
- - test/search_test.rb
229
- - test/tasks_test.rb
230
- - test/test_helper.rb
57
+ summary: 'THIS GEM HAS BEEN RENAMED TO: indexes'
58
+ test_files: []
@@ -1,20 +0,0 @@
1
- Copyright 2016 Mathías Montossi
2
-
3
- Permission is hereby granted, free of charge, to any person obtaining
4
- a copy of this software and associated documentation files (the
5
- "Software"), to deal in the Software without restriction, including
6
- without limitation the rights to use, copy, modify, merge, publish,
7
- distribute, sublicense, and/or sell copies of the Software, and to
8
- permit persons to whom the Software is furnished to do so, subject to
9
- the following conditions:
10
-
11
- The above copyright notice and this permission notice shall be
12
- included in all copies or substantial portions of the Software.
13
-
14
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
- NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
- LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
- OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md DELETED
@@ -1,245 +0,0 @@
1
- [![Gem Version](https://badge.fury.io/rb/indices.svg)](http://badge.fury.io/rb/indices)
2
- [![Code Climate](https://codeclimate.com/github/mmontossi/indices/badges/gpa.svg)](https://codeclimate.com/github/mmontossi/indices)
3
- [![Build Status](https://travis-ci.org/mmontossi/indices.svg)](https://travis-ci.org/mmontossi/indices)
4
- [![Dependency Status](https://gemnasium.com/mmontossi/indices.svg)](https://gemnasium.com/mmontossi/indices)
5
-
6
- # Indices
7
-
8
- Model search indices with elasticsearch in rails.
9
-
10
- ## Why
11
-
12
- I did this gem to:
13
-
14
- - Gain control of the queries without losing simplicity.
15
- - Have out of the box integration with activerecord and pagers.
16
- - Deal with the just in time nature of elasticsearch.
17
- - Integrate activerecord tool on it.
18
- - Have a convention of how to integrate suggestions.
19
-
20
- ## Install
21
-
22
- Put this line in your Gemfile:
23
- ```ruby
24
- gem 'indices'
25
- ```
26
-
27
- Then bundle:
28
- ```
29
- $ bundle
30
- ```
31
-
32
- To install Redis you can use homebrew:
33
- ```
34
- brew install elasticsearch24
35
- ```
36
-
37
- NOTE: This gem is tested agains version 2.4.
38
-
39
- ## Configuration
40
-
41
- Generate the configuration file:
42
- ```
43
- bundle exec rails g indices:install
44
- ```
45
-
46
- Configure the global settings:
47
- ```ruby
48
- Indices.configure do |config|
49
-
50
- config.hosts = %w(localhost:9200)
51
- config.log = false
52
- config.trace = false
53
-
54
- config.mappings do
55
- name do
56
- type 'string'
57
- fields do
58
- raw do
59
- type 'string'
60
- index 'not_analyzed'
61
- end
62
- end
63
- end
64
- category type: 'string'
65
- price type: 'long'
66
- currency type: 'string'
67
- product_suggestions do
68
- type 'completion'
69
- analyzer 'simple'
70
- end
71
- end
72
-
73
- config.analysis do
74
- filter do
75
- ngram do
76
- type 'nGram'
77
- min_gram 2
78
- max_gram 20
79
- end
80
- end
81
- end
82
-
83
- config.suggestions do |name, term, options={}|
84
- type = name.to_s.singularize
85
- text (term || '')
86
- completion do
87
- field "#{type}_suggestions"
88
- end
89
- end
90
-
91
- config.add_computed_sort :price do |direction|
92
- _script do
93
- type 'number'
94
- script do
95
- inline "if (_source.currency == 'UYU') { doc['price'].value * 30 }"
96
- end
97
- order direction
98
- end
99
- end
100
-
101
- end
102
- ```
103
-
104
- Generate an index:
105
- ```
106
- bundle exec rails g indices:index products
107
- ```
108
-
109
- Configure the index:
110
- ```ruby
111
- Indices.define :products do
112
-
113
- mappings do
114
- properties :name, :category, :price, :product_suggestions
115
- end
116
-
117
- serializer do |record|
118
- set record, :name, :category, :price
119
- product_suggestions do
120
- input [record.name, transliterate(record.name)].uniq
121
- output record.name
122
- end
123
- end
124
-
125
- search do |*args|
126
- options = args.extract_options!
127
- term = args.first
128
- query do
129
- if term.present?
130
- multi_match do
131
- query term
132
- type 'phrase_prefix'
133
- fields %w(name category)
134
- end
135
- else
136
- match_all
137
- end
138
- end
139
- end
140
-
141
- end
142
- ```
143
-
144
- ## Usage
145
-
146
- ### Indexing
147
-
148
- Ocurrs everytime you create or destroy a record:
149
- ```ruby
150
- product = Product.create(name: 'Les Paul', category: 'Gibson')
151
- ```
152
-
153
- You can force it manually by:
154
- ```ruby
155
- product.index
156
- product.reindex
157
- product.unindex
158
- ```
159
-
160
- At any time you can force a full rebuild:
161
- ```
162
- bundle exec rake indices:rebuild
163
- ```
164
-
165
- Or if you need it, just a build:
166
- ```
167
- bundle exec rake indices:build
168
- ```
169
-
170
- ### Search
171
-
172
- The search parameters are sent to previous configured block:
173
- ```ruby
174
- @products = Product.search(name: 'Test')
175
- ```
176
-
177
- You can use the returned value as a collection in views:
178
- ```erb
179
- <%= render @products %>
180
- ```
181
-
182
- ### Includes
183
-
184
- Same as using activerecord relations:
185
- ```ruby
186
- Product.search(includes: :shop)
187
- ```
188
-
189
- ### With / Without
190
-
191
- You can force a record to be part of the results by id:
192
- ```ruby
193
- Product.search(with: 4)
194
- ```
195
-
196
- Or the opposite:
197
- ```ruby
198
- Product.search(without: 4)
199
- ```
200
-
201
- ### Pagination
202
-
203
- Works the same as [Pagers gem](https://github.com/mmontossi/pagers):
204
- ```ruby
205
- @products.page 1, padding: 4, length: 30
206
- ```
207
-
208
- And you can send the collection directly to the helper in views:
209
- ```erb
210
- <%= paginate @products %>
211
- ```
212
-
213
- ### Order
214
-
215
- Works the same as in relations:
216
- ```ruby
217
- @products.order(name: :asc)
218
- ```
219
-
220
- To use a computed_sort:
221
- ```ruby
222
- @products.order(price: :asc)
223
- ```
224
-
225
- NOTE: To sort by a string column, you must declare the mapping raw.
226
-
227
- ### Suggestions
228
-
229
- The suggestion parameters are sent to previous configured block:
230
- ```ruby
231
- Indices.suggest :products, 'gibson'
232
- ```
233
-
234
- Returns array of hashes with a text property:
235
- ```ruby
236
- [{ text: 'Les Paul' }, ...]
237
- ```
238
-
239
- ## Credits
240
-
241
- This gem is maintained and funded by [mmontossi](https://github.com/mmontossi).
242
-
243
- ## License
244
-
245
- It is free software, and may be redistributed under the terms specified in the MIT-LICENSE file.