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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 44bac02c15e1ea5ac170e5ead716ed32d2a2e0c9
4
- data.tar.gz: 1b1263a1980b20109be0a125776b56c597014066
3
+ metadata.gz: 8ef34e64a60623b87c60e8477416604d19138a10
4
+ data.tar.gz: b55837db1a514c41e356618b1e2681115e08a8fa
5
5
  SHA512:
6
- metadata.gz: 7d034a538c4f0f657cddff452dbfe87e88db7e911dd5b52f9226f4706ec71b067ecb7cd035884fa1f4d7f72befa28193a8af30475a39fb2dac702ab665a7d5b5
7
- data.tar.gz: 5dd79e2a9978c2ad677e4d85da8e05c6e3cca2add42df49cc8755d316e4a317fb755349f296d036a8ffb3b2ff9199be8805b4f5c3e57d9017d1c9034e2cc6f0f
6
+ metadata.gz: 1c9bdd0df778f890e22fe167a7eb5c4239ab7cf55e4910bd3661da841c96cb346bef64b633409b178b9b6eea961c70e035af937b905b4bff4c133160df73abf7
7
+ data.tar.gz: 91ecda07f660e90de9f2f2ab9819154a1f9189b78a8ab25a81e76d14d84ab70d765017d32fe0cbb90bb5493f4cc6ff8c15de0d6383c7c57e5f5a31103e633fbe
data/.gitignore CHANGED
@@ -3,7 +3,6 @@
3
3
  .bundle
4
4
  .config
5
5
  .yardoc
6
- Gemfile.lock
7
6
  InstalledFiles
8
7
  _yardoc
9
8
  coverage
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
 
@@ -18,6 +18,7 @@ Gem::Specification.new do |spec|
18
18
  spec.require_paths = ["lib"]
19
19
 
20
20
  spec.add_dependency "stretcher"
21
+ spec.add_dependency "faraday", "~>0.8.9"
21
22
 
22
23
  spec.add_development_dependency "bundler", "~> 1.5"
23
24
  spec.add_development_dependency "rspec"
@@ -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.
@@ -1,3 +1,3 @@
1
1
  module ElasticMapper
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.1"
3
3
  end
@@ -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.0
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-03-11 00:00:00.000000000 Z
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.1
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: