elastic_mapper 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/.gitignore +0 -1
- data/Gemfile.lock +70 -0
- data/README.md +14 -0
- data/elasticmapper.gemspec +1 -0
- data/lib/elastic_mapper/index.rb +7 -0
- data/lib/elastic_mapper/version.rb +1 -1
- data/spec/elastic_mapper/index_spec.rb +21 -1
- data/spec/elastic_mapper/mapping_spec.rb +5 -6
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8ef34e64a60623b87c60e8477416604d19138a10
|
4
|
+
data.tar.gz: b55837db1a514c41e356618b1e2681115e08a8fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c9bdd0df778f890e22fe167a7eb5c4239ab7cf55e4910bd3661da841c96cb346bef64b633409b178b9b6eea961c70e035af937b905b4bff4c133160df73abf7
|
7
|
+
data.tar.gz: 91ecda07f660e90de9f2f2ab9819154a1f9189b78a8ab25a81e76d14d84ab70d765017d32fe0cbb90bb5493f4cc6ff8c15de0d6383c7c57e5f5a31103e633fbe
|
data/.gitignore
CHANGED
data/Gemfile.lock
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
elastic_mapper (0.2.1)
|
5
|
+
faraday (~> 0.8.9)
|
6
|
+
stretcher
|
7
|
+
|
8
|
+
GEM
|
9
|
+
remote: https://rubygems.org/
|
10
|
+
specs:
|
11
|
+
active_hash (1.3.0)
|
12
|
+
activesupport (>= 2.2.2)
|
13
|
+
activesupport (4.1.1)
|
14
|
+
i18n (~> 0.6, >= 0.6.9)
|
15
|
+
json (~> 1.7, >= 1.7.7)
|
16
|
+
minitest (~> 5.1)
|
17
|
+
thread_safe (~> 0.1)
|
18
|
+
tzinfo (~> 1.1)
|
19
|
+
diff-lcs (1.2.5)
|
20
|
+
docile (1.1.3)
|
21
|
+
excon (0.33.0)
|
22
|
+
faraday (0.8.9)
|
23
|
+
multipart-post (~> 1.2.0)
|
24
|
+
faraday_middleware (0.9.1)
|
25
|
+
faraday (>= 0.7.4, < 0.10)
|
26
|
+
faraday_middleware-multi_json (0.0.6)
|
27
|
+
faraday_middleware
|
28
|
+
multi_json
|
29
|
+
hashie (2.1.1)
|
30
|
+
i18n (0.6.9)
|
31
|
+
json (1.8.1)
|
32
|
+
minitest (5.3.4)
|
33
|
+
multi_json (1.10.1)
|
34
|
+
multipart-post (1.2.0)
|
35
|
+
rake (10.3.2)
|
36
|
+
rspec (2.14.1)
|
37
|
+
rspec-core (~> 2.14.0)
|
38
|
+
rspec-expectations (~> 2.14.0)
|
39
|
+
rspec-mocks (~> 2.14.0)
|
40
|
+
rspec-core (2.14.8)
|
41
|
+
rspec-expectations (2.14.5)
|
42
|
+
diff-lcs (>= 1.1.3, < 2.0)
|
43
|
+
rspec-mocks (2.14.6)
|
44
|
+
simplecov (0.8.2)
|
45
|
+
docile (~> 1.1.0)
|
46
|
+
multi_json
|
47
|
+
simplecov-html (~> 0.8.0)
|
48
|
+
simplecov-html (0.8.0)
|
49
|
+
stretcher (1.21.1)
|
50
|
+
excon (>= 0.16)
|
51
|
+
faraday (~> 0.8)
|
52
|
+
faraday_middleware (~> 0.9.0)
|
53
|
+
faraday_middleware-multi_json (~> 0.0.5)
|
54
|
+
hashie (>= 1.2.0)
|
55
|
+
multi_json (>= 1.0)
|
56
|
+
thread_safe (0.3.3)
|
57
|
+
tzinfo (1.2.0)
|
58
|
+
thread_safe (~> 0.1)
|
59
|
+
|
60
|
+
PLATFORMS
|
61
|
+
ruby
|
62
|
+
|
63
|
+
DEPENDENCIES
|
64
|
+
active_hash
|
65
|
+
activesupport
|
66
|
+
bundler (~> 1.5)
|
67
|
+
elastic_mapper!
|
68
|
+
rake
|
69
|
+
rspec
|
70
|
+
simplecov
|
data/README.md
CHANGED
@@ -74,6 +74,20 @@ class Article < ActiveRecord::Base
|
|
74
74
|
end
|
75
75
|
```
|
76
76
|
|
77
|
+
Deleting a Document
|
78
|
+
-------------------
|
79
|
+
|
80
|
+
To remove a document from ElasticSearch, use the `delete_from_index` method.
|
81
|
+
|
82
|
+
```ruby
|
83
|
+
class Article < ActiveRecord::Base
|
84
|
+
|
85
|
+
include ElasticMapper
|
86
|
+
|
87
|
+
after_destroy :delete_from_index
|
88
|
+
end
|
89
|
+
```
|
90
|
+
|
77
91
|
Searching
|
78
92
|
---------
|
79
93
|
|
data/elasticmapper.gemspec
CHANGED
data/lib/elastic_mapper/index.rb
CHANGED
@@ -9,6 +9,13 @@ module ElasticMapper::Index
|
|
9
9
|
ElasticMapper.index.type(mapping_name).put(self.id, index_hash)
|
10
10
|
end
|
11
11
|
|
12
|
+
# Remove the document from the ElasticSearch index.
|
13
|
+
def delete_from_index
|
14
|
+
mapping_name = self.class.instance_variable_get(:@_mapping_name)
|
15
|
+
|
16
|
+
ElasticMapper.index.type(mapping_name).delete(self.id)
|
17
|
+
end
|
18
|
+
|
12
19
|
# Generate a hash representation of the model.
|
13
20
|
#
|
14
21
|
# @return [Hash] hash representation of model.
|
@@ -26,7 +26,7 @@ describe ElasticMapper::Index do
|
|
26
26
|
|
27
27
|
describe "index" do
|
28
28
|
|
29
|
-
before(:each) do
|
29
|
+
before(:each) do
|
30
30
|
reset_index
|
31
31
|
IndexModel.put_mapping
|
32
32
|
ElasticMapper.index.refresh
|
@@ -45,4 +45,24 @@ describe ElasticMapper::Index do
|
|
45
45
|
results.first.bar.should == 'Coe'
|
46
46
|
end
|
47
47
|
end
|
48
|
+
|
49
|
+
describe "delete_from_index" do
|
50
|
+
before(:each) do
|
51
|
+
reset_index
|
52
|
+
IndexModel.put_mapping
|
53
|
+
ElasticMapper.index.refresh
|
54
|
+
end
|
55
|
+
|
56
|
+
it "removes the document from the search index" do
|
57
|
+
instance.index
|
58
|
+
ElasticMapper.index.refresh
|
59
|
+
instance.delete_from_index
|
60
|
+
|
61
|
+
results = ElasticMapper.index.type(:index_models)
|
62
|
+
.search({ size: 12, query: { "query_string" => {"query" => '*'} } })
|
63
|
+
.results
|
64
|
+
|
65
|
+
results.count.should == 1
|
66
|
+
end
|
67
|
+
end
|
48
68
|
end
|
@@ -31,7 +31,7 @@ describe ElasticMapper::Mapping do
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it "creates unique name for field in mapping, if a collision occurs" do
|
34
|
-
mapping.has_key?(:foo_2).should == true
|
34
|
+
mapping.has_key?(:foo_2).should == true
|
35
35
|
end
|
36
36
|
|
37
37
|
it "populates mapping entry with default options, if none given" do
|
@@ -78,12 +78,10 @@ describe ElasticMapper::Mapping do
|
|
78
78
|
|
79
79
|
describe "put_mapping" do
|
80
80
|
|
81
|
-
let(:expected_properties) do
|
81
|
+
let(:expected_properties) do
|
82
82
|
{
|
83
83
|
"foo" => { "type" => "string" },
|
84
|
-
"foo_2" => { "type" => "string", "index" => "not_analyzed",
|
85
|
-
"norms" => { "enabled" => false}, "index_options" => "docs"
|
86
|
-
},
|
84
|
+
"foo_2" => { "type" => "string", "index" => "not_analyzed"},
|
87
85
|
"bar" => { "type" => "string" },
|
88
86
|
"id" => { "type" => "integer", "index" => "no" }
|
89
87
|
}.stringify_keys
|
@@ -92,10 +90,11 @@ describe ElasticMapper::Mapping do
|
|
92
90
|
|
93
91
|
it "creates the mapping in ElasticSearch" do
|
94
92
|
Model.put_mapping
|
95
|
-
|
93
|
+
|
96
94
|
properties = ElasticMapper.index
|
97
95
|
.get_mapping
|
98
96
|
.elastic_mapper_tests
|
97
|
+
.mappings
|
99
98
|
.models
|
100
99
|
.properties
|
101
100
|
.to_hash
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elastic_mapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benjamin Coe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-05-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: stretcher
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - '>='
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: faraday
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.8.9
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.8.9
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: bundler
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,6 +132,7 @@ files:
|
|
118
132
|
- .gitignore
|
119
133
|
- .rspec
|
120
134
|
- Gemfile
|
135
|
+
- Gemfile.lock
|
121
136
|
- LICENSE.txt
|
122
137
|
- README.md
|
123
138
|
- Rakefile
|
@@ -151,7 +166,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
151
166
|
version: '0'
|
152
167
|
requirements: []
|
153
168
|
rubyforge_project:
|
154
|
-
rubygems_version: 2.2.
|
169
|
+
rubygems_version: 2.2.2
|
155
170
|
signing_key:
|
156
171
|
specification_version: 4
|
157
172
|
summary: A dead simple DSL for integrating ActiveModel with ElasticSearch.
|
@@ -160,4 +175,3 @@ test_files:
|
|
160
175
|
- spec/elastic_mapper/mapping_spec.rb
|
161
176
|
- spec/elastic_mapper/search_spec.rb
|
162
177
|
- spec/spec_helper.rb
|
163
|
-
has_rdoc:
|