super-poller 0.3.1 → 1.0.0

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/Rakefile CHANGED
@@ -1,5 +1,5 @@
1
1
  require "rubygems"
2
- require "rake/gempackagetask"
2
+ require "rubygems/package_task"
3
3
 
4
4
  task :default => :test
5
5
 
@@ -10,4 +10,4 @@ Rake::TestTask.new do |t|
10
10
  t.verbose = true
11
11
  end
12
12
 
13
- Rake::GemPackageTask.new(eval(File.read('super-poller.gemspec'))){ }
13
+ Gem::PackageTask.new(eval(File.read('super-poller.gemspec'))){ }
@@ -42,12 +42,21 @@ class SuperPoller::StarlingQueue
42
42
  end
43
43
  end
44
44
 
45
- protected
45
+ if "".respond_to? :force_encoding
46
+ def fix_encoding(v)
47
+ v.force_encoding('UTF-8')
48
+ end
49
+ else
50
+ def fix_encoding(v)
51
+ v
52
+ end
53
+ end
54
+
46
55
  def coerce(message)
47
- if message.start_with?('{')
48
- MultiJson.decode(message)
49
- else
50
- Marshal.load(message)
56
+ unless message.start_with?('{')
57
+ message = MultiJson.dump(Marshal.load(message))
51
58
  end
59
+ message = fix_encoding(message)
60
+ MultiJson.decode(message)
52
61
  end
53
62
  end
@@ -1,3 +1,4 @@
1
+ # encoding: UTF-8
1
2
  require File.join(File.dirname(__FILE__), "test_helper")
2
3
 
3
4
  class StarlingQueueTest < Test::Unit::TestCase
@@ -41,6 +42,16 @@ class StarlingQueueTest < Test::Unit::TestCase
41
42
  assert queue.empty?
42
43
  end
43
44
 
45
+ if ''.respond_to? :encoding
46
+ should 'force encoding to UTF8' do
47
+ instance = StarlingQueue.allocate
48
+ ascii_string = Marshal.dump({"a" => "\xC3\xA3".force_encoding('ascii')})
49
+ object = instance.coerce(ascii_string)
50
+
51
+ assert_equal "ã", object["a"]
52
+ assert_equal Encoding.find('utf-8'), object["a"].encoding
53
+ end
54
+ end
44
55
  end
45
56
 
46
57
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: super-poller
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 1.0.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -14,7 +14,7 @@ date: 2012-05-23 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: multi_json
17
- requirement: &70231121376020 !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,7 +22,12 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *70231121376020
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
26
31
  description: Small modular library for dealing with queues and pollers.
27
32
  email: contrib@tomlea.co.uk
28
33
  executables:
@@ -82,7 +87,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
82
87
  version: '0'
83
88
  requirements: []
84
89
  rubyforge_project:
85
- rubygems_version: 1.8.15
90
+ rubygems_version: 1.8.23
86
91
  signing_key:
87
92
  specification_version: 3
88
93
  summary: Tools for dealing with queues.