pulse-meter 0.0.1 → 0.1.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.
@@ -1,3 +1,5 @@
1
+ require 'yaml'
2
+
1
3
  module PulseMeter
2
4
  module Mixins
3
5
  # Mixin with dumping utilities
@@ -10,7 +12,7 @@ module PulseMeter
10
12
  # @raise [DumpError] if dumping fails for any reason
11
13
  def dump!
12
14
  ensure_storability!
13
- serialized_obj = Marshal.dump(self)
15
+ serialized_obj = self.to_yaml
14
16
  redis.hset(DUMP_REDIS_KEY, self.name, serialized_obj)
15
17
  rescue
16
18
  raise DumpError, "object cannot be dumped"
@@ -36,7 +38,7 @@ module PulseMeter
36
38
  # @raise [RestoreError] if object cannot be restored for any reason
37
39
  def restore(name)
38
40
  serialized_obj = PulseMeter.redis.hget(DUMP_REDIS_KEY, name)
39
- Marshal.load(serialized_obj)
41
+ YAML::load(serialized_obj)
40
42
  rescue
41
43
  raise RestoreError, "cannot restore #{name}"
42
44
  end
@@ -1,3 +1,3 @@
1
1
  module PulseMeter
2
- VERSION = "0.0.1"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -7,16 +7,6 @@ describe PulseMeter::Mixins::Dumper do
7
7
 
8
8
  class Bad < Base; end
9
9
 
10
- class Undumpable < Base
11
- def name; :name; end
12
-
13
- def redis; PulseMeter.redis; end
14
-
15
- def initialize
16
- @socket = Socket.new(:INET, :STREAM)
17
- end
18
- end
19
-
20
10
  class Good < Base
21
11
  attr_accessor :foo
22
12
  def name; foo.to_s; end
@@ -29,7 +19,6 @@ describe PulseMeter::Mixins::Dumper do
29
19
  end
30
20
 
31
21
  let(:bad_obj){ Bad.new }
32
- let(:undumpable_obj){ Undumpable.new }
33
22
  let(:good_obj){ Good.new(:foo) }
34
23
  let(:another_good_obj){ Good.new(:bar) }
35
24
  let(:redis){ PulseMeter.redis }
@@ -57,12 +46,6 @@ describe PulseMeter::Mixins::Dumper do
57
46
  expect{ bad_obj.dump! }.to raise_exception(PulseMeter::DumpError)
58
47
  end
59
48
  end
60
-
61
- context "when object cannot be dumped" do
62
- it "should raise exception" do
63
- expect {undumpable_obj.dump!}.to raise_exception(PulseMeter::DumpError)
64
- end
65
- end
66
49
  end
67
50
 
68
51
  context "when class follows dump contract" do
data/spec/spec_helper.rb CHANGED
@@ -12,7 +12,6 @@ SimpleCov.start
12
12
 
13
13
  require 'pulse-meter'
14
14
  require 'pulse-meter/visualizer'
15
- require 'test_helpers/matchers'
16
15
  require 'rack/test'
17
16
 
18
17
 
@@ -24,6 +23,6 @@ RSpec.configure do |config|
24
23
  config.before(:each) { PulseMeter.redis = MockRedis.new }
25
24
  config.filter_run :focus => true
26
25
  config.run_all_when_everything_filtered = true
27
- config.include(TestHelpers::Matchers)
26
+ config.include(Matchers)
28
27
  end
29
28
 
@@ -0,0 +1,34 @@
1
+ module Matchers
2
+
3
+ class GenerallyEqual
4
+
5
+ EPSILON = 0.0001
6
+
7
+ def initialize(expected)
8
+ @expected = expected
9
+ end
10
+
11
+ def matches?(actual)
12
+ @actual = actual
13
+
14
+ if @actual.kind_of?(Float) || @expected.kind_of?(Float)
15
+ (@expected - EPSILON .. @expected + EPSILON).include? @actual
16
+ else
17
+ @expected == @actual
18
+ end
19
+ end
20
+
21
+ def failure_message_for_should
22
+ "expected #{@actual.inspect} to be generally equal to #{@expected.inspect}"
23
+ end
24
+
25
+ def failure_message_for_should_not
26
+ "expected #{@actual.inspect} not to be generally equal to #{@expected.inspect}"
27
+ end
28
+ end
29
+
30
+ def be_generally_equal(expected)
31
+ GenerallyEqual.new(expected)
32
+ end
33
+
34
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pulse-meter
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.1.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-05-26 00:00:00.000000000 Z
13
+ date: 2012-05-27 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: gon-sinatra
@@ -342,7 +342,6 @@ files:
342
342
  - lib/pulse-meter/visualize/views/main.haml
343
343
  - lib/pulse-meter/visualize/widget.rb
344
344
  - lib/pulse-meter/visualizer.rb
345
- - lib/test_helpers/matchers.rb
346
345
  - pulse-meter.gemspec
347
346
  - spec/pulse_meter/mixins/dumper_spec.rb
348
347
  - spec/pulse_meter/mixins/utils_spec.rb
@@ -372,6 +371,7 @@ files:
372
371
  - spec/shared_examples/timeline_sensor.rb
373
372
  - spec/shared_examples/timelined_subclass.rb
374
373
  - spec/spec_helper.rb
374
+ - spec/support/matchers.rb
375
375
  homepage: ''
376
376
  licenses: []
377
377
  post_install_message:
@@ -386,7 +386,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
386
386
  version: '0'
387
387
  segments:
388
388
  - 0
389
- hash: -881252302653340374
389
+ hash: 4071351683887129800
390
390
  required_rubygems_version: !ruby/object:Gem::Requirement
391
391
  none: false
392
392
  requirements:
@@ -395,7 +395,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
395
395
  version: '0'
396
396
  segments:
397
397
  - 0
398
- hash: -881252302653340374
398
+ hash: 4071351683887129800
399
399
  requirements: []
400
400
  rubyforge_project:
401
401
  rubygems_version: 1.8.24
@@ -432,4 +432,5 @@ test_files:
432
432
  - spec/shared_examples/timeline_sensor.rb
433
433
  - spec/shared_examples/timelined_subclass.rb
434
434
  - spec/spec_helper.rb
435
+ - spec/support/matchers.rb
435
436
  has_rdoc:
@@ -1,36 +0,0 @@
1
- module TestHelpers
2
- module Matchers
3
-
4
- class GenerallyEqual
5
-
6
- EPSILON = 0.0001
7
-
8
- def initialize(expected)
9
- @expected = expected
10
- end
11
-
12
- def matches?(actual)
13
- @actual = actual
14
-
15
- if @actual.kind_of?(Float) || @expected.kind_of?(Float)
16
- (@expected - EPSILON .. @expected + EPSILON).include? @actual
17
- else
18
- @expected == @actual
19
- end
20
- end
21
-
22
- def failure_message_for_should
23
- "expected #{@actual.inspect} to be generally equal to #{@expected.inspect}"
24
- end
25
-
26
- def failure_message_for_should_not
27
- "expected #{@actual.inspect} not to be generally equal to #{@expected.inspect}"
28
- end
29
- end
30
-
31
- def be_generally_equal(expected)
32
- GenerallyEqual.new(expected)
33
- end
34
-
35
- end
36
- end