elastic_searchable 1.3.1 → 1.4.0

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.
data/.rvmrc CHANGED
@@ -1 +1 @@
1
- rvm use ree-1.8.7-2011.03@elastic_searchable --create
1
+ rvm use ruby-1.9.2@elastic_searchable --create
data/README.md CHANGED
@@ -32,7 +32,7 @@ gem 'elastic_searchable'
32
32
  # config/initializers/elastic_searchable.rb
33
33
  # (optional) customize elasticsearch host
34
34
  # default is localhost:9200
35
- ElasticSearchable.base_uri = 'server:9200'
35
+ ElasticSearchable.base_uri 'server:9200'
36
36
 
37
37
  # (optional) customize elasticsearch paginator
38
38
  # default is ElasticSearchable::Pagination::WillPaginate
@@ -40,6 +40,7 @@ module ElasticSearchable
40
40
  backgrounded :delete_id_from_index => ElasticSearchable::Callbacks.backgrounded_options
41
41
  end
42
42
 
43
+ attr_reader :hit # the hit json for this result
43
44
  attr_accessor :index_lifecycle, :percolations
44
45
  define_model_callbacks :index, :percolate, :only => :after
45
46
  after_commit :update_index_on_create_backgrounded, :if => :should_index?, :on => :create
@@ -40,6 +40,10 @@ module ElasticSearchable
40
40
  ids = hits['hits'].collect {|h| h['_id'].to_i }
41
41
  results = self.find(ids).sort_by {|result| ids.index(result.id) }
42
42
 
43
+ results.each do |result|
44
+ result.instance_variable_set '@hit', hits['hits'][ids.index(result.id)]
45
+ end
46
+
43
47
  ElasticSearchable::Paginator.handler.new(results, page, options[:size], hits['total'])
44
48
  end
45
49
 
@@ -1,3 +1,3 @@
1
1
  module ElasticSearchable
2
- VERSION = '1.3.1'
2
+ VERSION = '1.4.0'
3
3
  end
@@ -180,7 +180,7 @@ class TestElasticSearchable < Test::Unit::TestCase
180
180
  Post.refresh_index
181
181
  end
182
182
 
183
- context 'searching for results' do
183
+ context 'searching on a term that returns one result' do
184
184
  setup do
185
185
  @results = Post.search 'first'
186
186
  end
@@ -193,6 +193,18 @@ class TestElasticSearchable < Test::Unit::TestCase
193
193
  assert_nil @results.previous_page
194
194
  assert_nil @results.next_page
195
195
  end
196
+ should 'have populated hit' do
197
+ assert_equal @results.first.hit['_id'], @first_post.id.to_s
198
+ end
199
+ end
200
+ context 'searching on a term that returns multiple results' do
201
+ setup do
202
+ @results = Post.search 'foo'
203
+ end
204
+ should 'have populated hit on each record with the correct hit json' do
205
+ assert_equal @results.first.hit['_id'], @first_post.id.to_s
206
+ assert_equal @results.last.hit['_id'], @second_post.id.to_s
207
+ end
196
208
  end
197
209
 
198
210
  context 'searching for results using a query Hash' do
metadata CHANGED
@@ -1,178 +1,122 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: elastic_searchable
3
- version: !ruby/object:Gem::Version
4
- hash: 25
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.4.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 3
9
- - 1
10
- version: 1.3.1
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Ryan Sonnek
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2011-11-28 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-02-07 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: activerecord
22
- prerelease: false
23
- version_requirements: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2151908980 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
26
- - - ">="
27
- - !ruby/object:Gem::Version
28
- hash: 13
29
- segments:
30
- - 3
31
- - 0
32
- - 5
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
33
21
  version: 3.0.5
34
- requirement: *id001
35
22
  type: :runtime
36
- - !ruby/object:Gem::Dependency
37
- name: httparty
38
23
  prerelease: false
39
- version_requirements: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2151908980
25
+ - !ruby/object:Gem::Dependency
26
+ name: httparty
27
+ requirement: &2151907880 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
42
- - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 7
45
- segments:
46
- - 0
47
- - 6
48
- - 0
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
49
32
  version: 0.6.0
50
- requirement: *id002
51
33
  type: :runtime
52
- - !ruby/object:Gem::Dependency
53
- name: backgrounded
54
34
  prerelease: false
55
- version_requirements: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2151907880
36
+ - !ruby/object:Gem::Dependency
37
+ name: backgrounded
38
+ requirement: &2151907180 !ruby/object:Gem::Requirement
56
39
  none: false
57
- requirements:
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- hash: 3
61
- segments:
62
- - 0
63
- - 7
64
- - 0
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
65
43
  version: 0.7.0
66
- requirement: *id003
67
44
  type: :runtime
68
- - !ruby/object:Gem::Dependency
69
- name: multi_json
70
45
  prerelease: false
71
- version_requirements: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2151907180
47
+ - !ruby/object:Gem::Dependency
48
+ name: multi_json
49
+ requirement: &2151906480 !ruby/object:Gem::Requirement
72
50
  none: false
73
- requirements:
74
- - - ">="
75
- - !ruby/object:Gem::Version
76
- hash: 23
77
- segments:
78
- - 1
79
- - 0
80
- - 0
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
81
54
  version: 1.0.0
82
- requirement: *id004
83
55
  type: :runtime
84
- - !ruby/object:Gem::Dependency
85
- name: rake
86
56
  prerelease: false
87
- version_requirements: &id005 !ruby/object:Gem::Requirement
57
+ version_requirements: *2151906480
58
+ - !ruby/object:Gem::Dependency
59
+ name: rake
60
+ requirement: &2151905740 !ruby/object:Gem::Requirement
88
61
  none: false
89
- requirements:
90
- - - "="
91
- - !ruby/object:Gem::Version
92
- hash: 11
93
- segments:
94
- - 0
95
- - 9
96
- - 2
97
- - 2
62
+ requirements:
63
+ - - =
64
+ - !ruby/object:Gem::Version
98
65
  version: 0.9.2.2
99
- requirement: *id005
100
66
  type: :development
101
- - !ruby/object:Gem::Dependency
102
- name: sqlite3
103
67
  prerelease: false
104
- version_requirements: &id006 !ruby/object:Gem::Requirement
68
+ version_requirements: *2151905740
69
+ - !ruby/object:Gem::Dependency
70
+ name: sqlite3
71
+ requirement: &2151905120 !ruby/object:Gem::Requirement
105
72
  none: false
106
- requirements:
107
- - - "="
108
- - !ruby/object:Gem::Version
109
- hash: 19
110
- segments:
111
- - 1
112
- - 3
113
- - 4
73
+ requirements:
74
+ - - =
75
+ - !ruby/object:Gem::Version
114
76
  version: 1.3.4
115
- requirement: *id006
116
77
  type: :development
117
- - !ruby/object:Gem::Dependency
118
- name: pry
119
78
  prerelease: false
120
- version_requirements: &id007 !ruby/object:Gem::Requirement
79
+ version_requirements: *2151905120
80
+ - !ruby/object:Gem::Dependency
81
+ name: pry
82
+ requirement: &2151904400 !ruby/object:Gem::Requirement
121
83
  none: false
122
- requirements:
123
- - - "="
124
- - !ruby/object:Gem::Version
125
- hash: 27
126
- segments:
127
- - 0
128
- - 9
129
- - 6
130
- - 2
84
+ requirements:
85
+ - - =
86
+ - !ruby/object:Gem::Version
131
87
  version: 0.9.6.2
132
- requirement: *id007
133
88
  type: :development
134
- - !ruby/object:Gem::Dependency
135
- name: shoulda
136
89
  prerelease: false
137
- version_requirements: &id008 !ruby/object:Gem::Requirement
90
+ version_requirements: *2151904400
91
+ - !ruby/object:Gem::Dependency
92
+ name: shoulda
93
+ requirement: &2151903660 !ruby/object:Gem::Requirement
138
94
  none: false
139
- requirements:
140
- - - "="
141
- - !ruby/object:Gem::Version
142
- hash: 37
143
- segments:
144
- - 2
145
- - 11
146
- - 3
95
+ requirements:
96
+ - - =
97
+ - !ruby/object:Gem::Version
147
98
  version: 2.11.3
148
- requirement: *id008
149
99
  type: :development
150
- - !ruby/object:Gem::Dependency
151
- name: mocha
152
100
  prerelease: false
153
- version_requirements: &id009 !ruby/object:Gem::Requirement
101
+ version_requirements: *2151903660
102
+ - !ruby/object:Gem::Dependency
103
+ name: mocha
104
+ requirement: &2151919040 !ruby/object:Gem::Requirement
154
105
  none: false
155
- requirements:
156
- - - "="
157
- - !ruby/object:Gem::Version
158
- hash: 55
159
- segments:
160
- - 0
161
- - 10
162
- - 0
106
+ requirements:
107
+ - - =
108
+ - !ruby/object:Gem::Version
163
109
  version: 0.10.0
164
- requirement: *id009
165
110
  type: :development
111
+ prerelease: false
112
+ version_requirements: *2151919040
166
113
  description: integrate the elastic search engine with rails
167
- email:
114
+ email:
168
115
  - ryan@codecrate.com
169
116
  executables: []
170
-
171
117
  extensions: []
172
-
173
118
  extra_rdoc_files: []
174
-
175
- files:
119
+ files:
176
120
  - .document
177
121
  - .gitignore
178
122
  - .rvmrc
@@ -197,38 +141,35 @@ files:
197
141
  - test/test_elastic_searchable.rb
198
142
  homepage: http://github.com/socialcast/elastic_searchable
199
143
  licenses: []
200
-
201
144
  post_install_message:
202
145
  rdoc_options: []
203
-
204
- require_paths:
146
+ require_paths:
205
147
  - lib
206
- required_ruby_version: !ruby/object:Gem::Requirement
148
+ required_ruby_version: !ruby/object:Gem::Requirement
207
149
  none: false
208
- requirements:
209
- - - ">="
210
- - !ruby/object:Gem::Version
211
- hash: 3
212
- segments:
150
+ requirements:
151
+ - - ! '>='
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ segments:
213
155
  - 0
214
- version: "0"
215
- required_rubygems_version: !ruby/object:Gem::Requirement
156
+ hash: -2819836595351036726
157
+ required_rubygems_version: !ruby/object:Gem::Requirement
216
158
  none: false
217
- requirements:
218
- - - ">="
219
- - !ruby/object:Gem::Version
220
- hash: 3
221
- segments:
159
+ requirements:
160
+ - - ! '>='
161
+ - !ruby/object:Gem::Version
162
+ version: '0'
163
+ segments:
222
164
  - 0
223
- version: "0"
165
+ hash: -2819836595351036726
224
166
  requirements: []
225
-
226
167
  rubyforge_project: elastic_searchable
227
- rubygems_version: 1.8.5
168
+ rubygems_version: 1.8.13
228
169
  signing_key:
229
170
  specification_version: 3
230
171
  summary: elastic search for activerecord
231
- test_files:
172
+ test_files:
232
173
  - test/database.yml
233
174
  - test/helper.rb
234
175
  - test/setup_database.rb