rubberband 0.0.12 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,6 +4,7 @@ Maintainer:
4
4
  Contributors:
5
5
  Edmund Salvacion
6
6
  Ernie Makris
7
+ Frederic De Jaeger
7
8
  jeroig
8
9
  mootpointer
9
10
  Ryan Sonnek
@@ -30,8 +30,8 @@ PLATFORMS
30
30
 
31
31
  DEPENDENCIES
32
32
  bundler (~> 1.0.0)
33
- mocha (~> 0.9.11)
34
- rspec (~> 2)
33
+ mocha (~> 0.9.0)
34
+ rspec (~> 2.0)
35
35
  rubberband!
36
36
  simplecov (>= 0.3.8)
37
37
  yard (~> 0.6.0)
@@ -15,7 +15,7 @@ module ElasticSearch
15
15
  id = options.delete(:id)
16
16
  if @batch
17
17
  #TODO add routing, parent
18
- @batch << { :index => { :_index => index, :_type => type, :_id => id }}
18
+ @batch << { :index => { :_index => index, :_type => type, :_id => id }.merge(options)}
19
19
  @batch << document
20
20
  else
21
21
  result = execute(:index, index, type, id, document, options)
@@ -51,6 +51,11 @@ module ElasticSearch
51
51
  result["ok"]
52
52
  end
53
53
  end
54
+
55
+ def delete_by_query(query, options = {})
56
+ index, type, options = extract_required_scope(options)
57
+ execute(:delete_by_query, index, type, query, options)
58
+ end
54
59
 
55
60
  #df The default field to use when no field prefix is defined within the query.
56
61
  #analyzer The analyzer name to be used when analyzing the query string.
@@ -58,7 +63,7 @@ module ElasticSearch
58
63
  #explain For each hit, contain an explanation of how to scoring of the hits was computed.
59
64
  #fields The selective fields of the document to return for each hit (fields must be stored), comma delimited. Defaults to the internal _source field.
60
65
  #field Same as fields above, but each parameter contains a single field name to load. There can be several field parameters.
61
- #sort Sorting to perform. Can either be in the form of fieldName, or fieldName:reverse (for reverse sorting). The fieldName can either be an actual field within the document, or the special score name to indicate sorting based on scores. There can be several sort parameters (order is important).
66
+ #sort Sorting to perform. Can either be in the form of fieldName, or fieldName:desc (for reverse sorting). The fieldName can either be an actual field within the document, or the special score name to indicate sorting based on scores. There can be several sort parameters (order is important).
62
67
  #from The starting from index of the hits to return. Defaults to 0.
63
68
  #size The number of hits to return. Defaults to 10.
64
69
  #search_type The type of the search operation to perform. Can be dfs_query_then_fetch, dfs_query_and_fetch, query_then_fetch, query_and_fetch. Defaults to query_then_fetch.
@@ -28,6 +28,17 @@ module ElasticSearch
28
28
  handle_error(response) unless response.status == 200 # ElasticSearch always returns 200 on delete, even if the object doesn't exist
29
29
  encoder.decode(response.body)
30
30
  end
31
+
32
+ def delete_by_query(index, type, query, options={})
33
+ # pass the query through the parameters in all the cases, since
34
+ # DELETE with a body are ambiguously supported
35
+ if query.is_a?(Hash)
36
+ params = options.merge(:source => encoder.encode(query))
37
+ else
38
+ params = options.merge(:q => query)
39
+ end
40
+ request(:delete, {:index => index, :type => type, :op => "_query"}, params)
41
+ end
31
42
 
32
43
  def search(index, type, query, options={})
33
44
  if query.is_a?(Hash)
@@ -1,3 +1,3 @@
1
1
  module ElasticSearch
2
- VERSION = "0.0.12"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -28,10 +28,10 @@ Gem::Specification.new do |s|
28
28
 
29
29
  s.add_runtime_dependency("patron", [">= 0"])
30
30
  s.add_runtime_dependency("yajl-ruby", [">= 0"])
31
- s.add_development_dependency("rspec", ["~> 2"])
32
- s.add_development_dependency("yard", ["~> 0.6"])
33
- s.add_development_dependency("bundler", ["~> 1"])
31
+ s.add_development_dependency("rspec", ["~> 2.0"])
32
+ s.add_development_dependency("yard", ["~> 0.6.0"])
33
+ s.add_development_dependency("bundler", ["~> 1.0.0"])
34
34
  s.add_development_dependency("simplecov", [">= 0.3.8"])
35
- s.add_development_dependency("mocha", ["~> 0.9"])
35
+ s.add_development_dependency("mocha", ["~> 0.9.0"])
36
36
 
37
37
  end
@@ -28,6 +28,13 @@ describe "bulk ops" do
28
28
  @client.get("4").socks.should == "argyle"
29
29
  end
30
30
 
31
- it "should take options"
32
- # check that url generated has options in query string
31
+ it "should take options" do
32
+ @client.bulk do |c|
33
+ c.index({:foo => 'bar'}, :id => '1', :_routing => '1', :_parent => '1')
34
+ #TODO better way to test this?
35
+ meta = c.instance_variable_get('@batch').detect { |b| b.has_key?(:index) }
36
+ meta[:index].should include(:_routing => '1')
37
+ meta[:index].should include(:_parent => '1')
38
+ end
39
+ end
33
40
  end
@@ -40,4 +40,15 @@ describe "index ops" do
40
40
  results = @client.search({:query => { :field => { :socks => 'stripey' }}}, :ids_only => true)
41
41
  results.should include("5")
42
42
  end
43
+
44
+ it 'should delete by query' do
45
+ @client.index({:deleted => "bar"}, :id => "d1")
46
+ @client.index({:deleted => "bar"}, :id => "d2")
47
+ @client.refresh
48
+
49
+ @client.count(:term => { :deleted => 'bar'}).should == 2
50
+ @client.delete_by_query(:term => { :deleted => 'bar' })
51
+ @client.refresh
52
+ @client.count(:term => { :deleted => 'bar'}).should == 0
53
+ end
43
54
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rubberband
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-04-28 00:00:00.000000000Z
12
+ date: 2011-06-14 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: patron
16
- requirement: &20994820 !ruby/object:Gem::Requirement
16
+ requirement: &14303940 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *20994820
24
+ version_requirements: *14303940
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: yajl-ruby
27
- requirement: &20994280 !ruby/object:Gem::Requirement
27
+ requirement: &14303100 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,43 +32,43 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *20994280
35
+ version_requirements: *14303100
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rspec
38
- requirement: &20993760 !ruby/object:Gem::Requirement
38
+ requirement: &14302340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
42
42
  - !ruby/object:Gem::Version
43
- version: '2'
43
+ version: '2.0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *20993760
46
+ version_requirements: *14302340
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: yard
49
- requirement: &20993280 !ruby/object:Gem::Requirement
49
+ requirement: &14301800 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0.6'
54
+ version: 0.6.0
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *20993280
57
+ version_requirements: *14301800
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: bundler
60
- requirement: &20992760 !ruby/object:Gem::Requirement
60
+ requirement: &14301220 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
64
64
  - !ruby/object:Gem::Version
65
- version: '1'
65
+ version: 1.0.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *20992760
68
+ version_requirements: *14301220
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: simplecov
71
- requirement: &20992240 !ruby/object:Gem::Requirement
71
+ requirement: &14298880 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,18 +76,18 @@ dependencies:
76
76
  version: 0.3.8
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *20992240
79
+ version_requirements: *14298880
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: mocha
82
- requirement: &20991720 !ruby/object:Gem::Requirement
82
+ requirement: &14298320 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
86
86
  - !ruby/object:Gem::Version
87
- version: '0.9'
87
+ version: 0.9.0
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *20991720
90
+ version_requirements: *14298320
91
91
  description: An ElasticSearch client with ThriftClient-like failover handling.
92
92
  email:
93
93
  - grantr@gmail.com
@@ -161,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
161
161
  version: '0'
162
162
  requirements: []
163
163
  rubyforge_project: rubberband
164
- rubygems_version: 1.7.2
164
+ rubygems_version: 1.8.5
165
165
  signing_key:
166
166
  specification_version: 3
167
167
  summary: An ElasticSearch client with ThriftClient-like failover handling.
@@ -173,4 +173,3 @@ test_files:
173
173
  - spec/index_spec.rb
174
174
  - spec/spec_helper.rb
175
175
  - spec/type_spec.rb
176
- has_rdoc: