couchrest_changes 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -38,6 +38,12 @@ module CouchRest::Changes
38
38
  end
39
39
  end
40
40
 
41
+ #
42
+ # NOTE: the sequence stored in the variable @since is a different format
43
+ # depending on which flavor of couchdb is being used. For normal couchdb
44
+ # prior to version 2.0, the sequence is just a number. For bigcouch and
45
+ # new couchdb instances, the sequence is an array.
46
+ #
41
47
  class Observer
42
48
 
43
49
  attr_writer :logger
@@ -160,19 +166,20 @@ module CouchRest::Changes
160
166
  debug "Looking up sequence here: #{filename}"
161
167
  result = File.read(filename)
162
168
  if result.empty?
163
- debug "Found no sequence in the file."
169
+ debug "Found no sequence in the file #{filename}."
164
170
  return 0
165
171
  else
166
172
  debug "Found sequence: #{result}"
167
- return result.to_i
173
+ return result
168
174
  end
169
175
  rescue Errno::ENOENT => e
170
- warn "No sequence file found. Starting from scratch"
176
+ warn "No sequence file found. Starting from scratch (#{filename})"
171
177
  return 0
172
178
  end
173
179
 
174
180
  def store_seq(db_name, seq)
175
- File.write sequence_file_name(db_name), seq.to_i
181
+ # seq might be a number or an array
182
+ File.write sequence_file_name(db_name), MultiJson.dump(seq)
176
183
  end
177
184
 
178
185
  def sequence_file_name(db_name)
@@ -182,7 +189,8 @@ module CouchRest::Changes
182
189
  def retry_without_sequence?(result, last_hash)
183
190
  if malformated_sequence?(result) || malformated_sequence?(last_hash)
184
191
  @since = 0
185
- info "Trying to start from scratch."
192
+ info "Trying to start from scratch (db #{@db_name})."
193
+ debug { {:result => result, :last_hash => last_hash}.inspect }
186
194
  end
187
195
  end
188
196
 
@@ -211,24 +219,24 @@ module CouchRest::Changes
211
219
  Config.flags.include?('--run-once')
212
220
  end
213
221
 
214
- def info(message)
222
+ def info(*args, &block)
215
223
  return unless log_attempt?
216
- logger.info message
224
+ logger.info *args, &block
217
225
  end
218
226
 
219
- def debug(message)
227
+ def debug(*args, &block)
220
228
  return unless log_attempt?
221
- logger.debug message
229
+ logger.debug *args, &block
222
230
  end
223
231
 
224
- def warn(message)
232
+ def warn(*args, &block)
225
233
  return unless log_attempt?
226
- logger.warn message
234
+ logger.warn *args, &block
227
235
  end
228
236
 
229
- def error(message)
237
+ def error(*args, &block)
230
238
  return unless log_attempt?
231
- logger.error message
239
+ logger.error *args, &block
232
240
  end
233
241
 
234
242
  # let's not clutter the logs if couch is down for a longer time.
@@ -1,5 +1,5 @@
1
1
  module CouchRest
2
2
  module Changes
3
- VERSION = "0.2.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: couchrest_changes
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-03-17 00:00:00.000000000 Z
12
+ date: 2015-04-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: couchrest
@@ -155,18 +155,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
155
  - - ! '>='
156
156
  - !ruby/object:Gem::Version
157
157
  version: '0'
158
- segments:
159
- - 0
160
- hash: 3909050601515988109
161
158
  required_rubygems_version: !ruby/object:Gem::Requirement
162
159
  none: false
163
160
  requirements:
164
161
  - - ! '>='
165
162
  - !ruby/object:Gem::Version
166
163
  version: '0'
167
- segments:
168
- - 0
169
- hash: 3909050601515988109
170
164
  requirements: []
171
165
  rubyforge_project:
172
166
  rubygems_version: 1.8.23