marquise 0.1.0 → 0.1.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.
data/lib/marquise.rb CHANGED
@@ -47,7 +47,8 @@ class Marquise
47
47
  raise RuntimeError,
48
48
  "libmarquise failed; check syslog (no, seriously)"
49
49
  end
50
-
50
+
51
+ $stderr.puts "Consumer is #{@consumer.inspect}" if $DEBUG
51
52
  @connections = {}
52
53
 
53
54
  @janitor = Janitor.new(@consumer, @connections)
@@ -55,6 +56,11 @@ class Marquise
55
56
  end
56
57
 
57
58
  def tell(*args)
59
+ if @consumer.nil?
60
+ raise IOError,
61
+ "Connection has been closed"
62
+ end
63
+
58
64
  val, ts, opts = parse_tell_opts(args)
59
65
 
60
66
  k, v, len = if opts.length == 0
@@ -152,7 +158,9 @@ class Marquise
152
158
  if @connections[th].nil?
153
159
  raise RuntimeError.new("marquise_connect() failed... consult syslog (no, seriously)")
154
160
  end
155
-
161
+
162
+ $stderr.puts "Created new connection #{@connections[th].inspect} for #{th.inspect}" if $DEBUG
163
+
156
164
  nil
157
165
  end
158
166
 
@@ -175,8 +183,15 @@ class Marquise
175
183
  end
176
184
 
177
185
  def call(*args)
178
- @conns.values.each { |c| Marquise::FFI.marquise_close(c) }
186
+ $stderr.puts "Janitor is running for #{@ptr.inspect}/#{@conns.inspect}" if $DEBUG
187
+ @conns.values.each do |c|
188
+ $stderr.puts "Pre-clean #{c.inspect}" if $DEBUG
189
+ Marquise::FFI.marquise_close(c)
190
+ $stderr.puts "Post-clean #{c.inspect}" if $DEBUG
191
+ end
192
+ $stderr.puts "Pre-clean #{@ptr.inspect}" if $DEBUG
179
193
  Marquise::FFI.marquise_consumer_shutdown(@ptr)
194
+ $stderr.puts "Cleaned up #{@ptr.inspect} and #{@conns.inspect}" if $DEBUG
180
195
  end
181
196
  end
182
197
 
@@ -23,5 +23,19 @@ describe Marquise do
23
23
  /Invalid call to Marquise#tell/
24
24
  )
25
25
  end
26
+
27
+ it "assplodes if #close has previously been called" do
28
+ Marquise::FFI.
29
+ should_receive(:marquise_consumer_shutdown).
30
+ with('#tell')
31
+
32
+ marquise.close
33
+
34
+ expect { marquise.tell }.
35
+ to raise_error(
36
+ IOError,
37
+ /Connection has been closed/
38
+ )
39
+ end
26
40
  end
27
41
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marquise
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.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: 2014-03-21 00:00:00.000000000 Z
12
+ date: 2014-03-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi
@@ -240,7 +240,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
240
240
  version: '0'
241
241
  segments:
242
242
  - 0
243
- hash: 4428946624076758222
243
+ hash: 4388250139847967772
244
244
  required_rubygems_version: !ruby/object:Gem::Requirement
245
245
  none: false
246
246
  requirements:
@@ -249,7 +249,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
249
249
  version: '0'
250
250
  segments:
251
251
  - 0
252
- hash: 4428946624076758222
252
+ hash: 4388250139847967772
253
253
  requirements: []
254
254
  rubyforge_project:
255
255
  rubygems_version: 1.8.23