inquisitio 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 7e07cc53ffa7b5cdb0d8b62c7f3afb38bec99b97
4
- data.tar.gz: a954c3e4223e0b3df9a30271274d482ba793fb01
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjQ5Y2RhNzkxM2MwZmE5OTVmY2FkYjI0NGJmNDFlY2JkM2Q5ZmE5NQ==
5
+ data.tar.gz: !binary |-
6
+ NzE0OWNkZjkwZTk5M2VmZjQyOWIxOWYxNGUwMjBlZjhmNjlhZTc4MA==
5
7
  SHA512:
6
- metadata.gz: 0037bcd1d4993960e3af1191d986b508000bc84f80c757c2db54097ee6a24bad66f17bf2a0190135ec53d1938cc46e1241d259edce2e8a8fb616830f6a6bf013
7
- data.tar.gz: 76f5cec6d4ae58d2d9606f1e079cf92e0a05804da798b19375fbefedf7106cad4ecea23b2538bf835dc63728430bd5a80849d1202688427bcd3e443fc6628649
8
+ metadata.gz: !binary |-
9
+ ZTM0NWJmMjlmMTNmYjZlZDFkMTdhMzI2OTNmZmUzZDA4OWJkOTljYTk0OTYw
10
+ Mjk3ODBiNWVjMjZjOTA5ZWZlOGI2MDcwZjE2NWI1M2I3N2ZhMmJlYjY0ZTY2
11
+ NzZhNjA1MTZlY2Y1NzA2NzAyMDU1OTM0NWNkNGZmZTMxZTZiMGI=
12
+ data.tar.gz: !binary |-
13
+ ZWUwMzViZjJhMDQ3MjllY2NiOTc4MzY0MWNkZGI2MmYzN2M0NDNmMjg2MjRk
14
+ YzMyOTMzYjM5ZTUzNGI2ZDBkYmNiNmQwOWM4ZWY0ZjMyZjJmNTYyZTAwOWMx
15
+ Y2ZmMWEyNzZjOTZiOTlkNjZlOTk1MDJhZTYwZjdkNTE5MjMzOWU=
data/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ 0.1.7 / 2013-12-13
2
+
3
+ [FEATURE] Added dry-run configuration option to prevent data being sent to
4
+ CloudSearch when indexing.
5
+
1
6
  0.1.6 / 2013-11-05
2
7
 
3
8
  [BUGFIX] Correctly ignore nil fields when indexing.
data/README.md CHANGED
@@ -20,7 +20,7 @@ And then execute:
20
20
 
21
21
  This gem allows you to build and execute queries to run against Amazon Cloud Search.
22
22
 
23
- ```
23
+ ```ruby
24
24
  results = Inquisitio.where("foobar").per(10).page(2).with(facet: 'thingy')
25
25
  results.each do |result|
26
26
  # ...
@@ -9,12 +9,15 @@ module Inquisitio
9
9
  :search_endpoint,
10
10
  :document_endpoint,
11
11
  :default_search_size,
12
+ :dry_run,
12
13
  :logger
13
14
  ]
15
+
14
16
  attr_writer *SETTINGS
15
17
 
16
18
  def initialize
17
19
  self.logger = Inquisitio::Logger.new
20
+ self.dry_run = false
18
21
  end
19
22
 
20
23
  SETTINGS.each do |setting|
@@ -26,8 +29,8 @@ module Inquisitio
26
29
  private
27
30
 
28
31
  def get_or_raise(setting)
29
- instance_variable_get("@#{setting.to_s}") ||
30
- raise(InquisitioConfigurationError.new("Configuration for #{setting} is not set"))
32
+ val = instance_variable_get("@#{setting.to_s}")
33
+ val.nil?? raise(InquisitioConfigurationError.new("Configuration for #{setting} is not set")) : val
31
34
  end
32
35
  end
33
36
  end
@@ -16,12 +16,11 @@ module Inquisitio
16
16
 
17
17
  def index
18
18
  Inquisitio.config.logger.info "Indexer posting to #{batch_index_url} body: #{body}"
19
- response = Excon.post(batch_index_url,
20
- :body => body,
21
- :headers => {"Content-Type" =>"application/json"})
22
- Inquisitio.config.logger.info "Response - status: #{response.status} body: #{response.body}"
23
- raise InquisitioError.new("Index failed with status code: #{response.status} Message: #{response.body}") unless response.status == 200
24
- response.body
19
+ if Inquisitio.config.dry_run
20
+ Inquisitio.config.logger.info "Skipping POST as running in dry-run mode"
21
+ else
22
+ post_to_endpoint
23
+ end
25
24
  end
26
25
 
27
26
  private
@@ -34,5 +33,15 @@ module Inquisitio
34
33
  def batch_index_url
35
34
  "#{Inquisitio.config.document_endpoint}/2011-02-01/documents/batch"
36
35
  end
36
+
37
+ def post_to_endpoint
38
+ response = Excon.post(batch_index_url,
39
+ :body => body,
40
+ :headers => {"Content-Type" =>"application/json"})
41
+ Inquisitio.config.logger.info "Response - status: #{response.status} body: #{response.body}"
42
+ raise InquisitioError.new("Index failed with status code: #{response.status} Message: #{response.body}") unless response.status == 200
43
+ response.body
44
+ end
45
+
37
46
  end
38
47
  end
@@ -1,3 +1,3 @@
1
1
  module Inquisitio
2
- VERSION = "0.1.6"
2
+ VERSION = "0.1.7"
3
3
  end
@@ -54,6 +54,19 @@ module Inquisitio
54
54
  Inquisitio.config.default_search_size
55
55
  end
56
56
  end
57
+
58
+ def test_logger_is_configured_by_default
59
+ assert_kind_of Inquisitio::Logger, Inquisitio.config.logger
60
+ end
61
+
62
+ def test_dry_run_disabled_by_default
63
+ refute Inquisitio.config.dry_run
64
+ end
65
+
66
+ def test_enable_dry_run
67
+ Inquisitio.config.dry_run = true
68
+ assert Inquisitio.config.dry_run
69
+ end
57
70
  end
58
71
  end
59
72
 
data/test/indexer_test.rb CHANGED
@@ -7,6 +7,8 @@ module Inquisitio
7
7
  Inquisitio.config.document_endpoint = @document_endpoint
8
8
  #def initialize(type, id, version, fields)
9
9
  @documents = [Document.new("add", "12345", 1, {})]
10
+
11
+ Inquisitio.config.dry_run = false
10
12
  end
11
13
 
12
14
  def teardown
@@ -70,5 +72,15 @@ module Inquisitio
70
72
  response = indexer.index
71
73
  assert_equal body, response
72
74
  end
75
+
76
+ def test_index_does_not_post_when_in_dry_run_mode
77
+ Excon.defaults[:mock] = true
78
+
79
+ Inquisitio.config.dry_run = true
80
+
81
+ indexer = Indexer.new(@documents)
82
+ response = indexer.index
83
+ assert response.nil?
84
+ end
73
85
  end
74
86
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inquisitio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Walker
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-11-05 00:00:00.000000000 Z
13
+ date: 2013-12-13 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: excon
@@ -30,14 +30,14 @@ dependencies:
30
30
  name: ruby_deep_clone
31
31
  requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
- - - '>='
33
+ - - ! '>='
34
34
  - !ruby/object:Gem::Version
35
35
  version: '0'
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
- - - '>='
40
+ - - ! '>='
41
41
  - !ruby/object:Gem::Version
42
42
  version: '0'
43
43
  - !ruby/object:Gem::Dependency
@@ -58,42 +58,42 @@ dependencies:
58
58
  name: rake
59
59
  requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
- - - '>='
61
+ - - ! '>='
62
62
  - !ruby/object:Gem::Version
63
63
  version: '0'
64
64
  type: :development
65
65
  prerelease: false
66
66
  version_requirements: !ruby/object:Gem::Requirement
67
67
  requirements:
68
- - - '>='
68
+ - - ! '>='
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: mocha
73
73
  requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - '>='
75
+ - - ! '>='
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  type: :development
79
79
  prerelease: false
80
80
  version_requirements: !ruby/object:Gem::Requirement
81
81
  requirements:
82
- - - '>='
82
+ - - ! '>='
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: yard
87
87
  requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
- - - '>='
89
+ - - ! '>='
90
90
  - !ruby/object:Gem::Version
91
91
  version: '0'
92
92
  type: :development
93
93
  prerelease: false
94
94
  version_requirements: !ruby/object:Gem::Requirement
95
95
  requirements:
96
- - - '>='
96
+ - - ! '>='
97
97
  - !ruby/object:Gem::Version
98
98
  version: '0'
99
99
  - !ruby/object:Gem::Dependency
@@ -165,17 +165,17 @@ require_paths:
165
165
  - lib
166
166
  required_ruby_version: !ruby/object:Gem::Requirement
167
167
  requirements:
168
- - - '>='
168
+ - - ! '>='
169
169
  - !ruby/object:Gem::Version
170
170
  version: '0'
171
171
  required_rubygems_version: !ruby/object:Gem::Requirement
172
172
  requirements:
173
- - - '>='
173
+ - - ! '>='
174
174
  - !ruby/object:Gem::Version
175
175
  version: '0'
176
176
  requirements: []
177
177
  rubyforge_project:
178
- rubygems_version: 2.0.3
178
+ rubygems_version: 2.1.9
179
179
  signing_key:
180
180
  specification_version: 4
181
181
  summary: This wraps AWS CloudSearch in a Ruby Gem