schlep 0.3.1 → 0.4.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/Guardfile CHANGED
@@ -1,5 +1,5 @@
1
- guard :test do
2
- watch(%r{^lib/(.+)\.rb$}) { |m| "test/#{m[1]}_test.rb" }
3
- watch(%r{^test/.+_test\.rb$})
4
- watch('test/test_helper.rb') { "test" }
1
+ guard 'rspec', :version => 2, :cli => "--color" do
2
+ watch(%r{^spec/.+_spec\.rb$})
3
+ watch(%r{^lib/(.+)\.rb$}) { "spec" }
4
+ watch('spec/spec_helper.rb') { "spec" }
5
5
  end
data/LICENSE ADDED
@@ -0,0 +1,20 @@
1
+ Copyright (c) 2011 Justin Campbell
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile CHANGED
@@ -4,9 +4,9 @@ rescue LoadError
4
4
  puts "Ruby >= 1.9 required for build tasks"
5
5
  end
6
6
 
7
- require 'rake/testtask'
7
+ require 'rspec/core/rake_task'
8
8
 
9
- task :default => :test
9
+ task :default => :spec
10
10
 
11
- desc "Run basic tests"
12
- Rake::TestTask.new("test") { |t| t.pattern = 'test/*_test.rb' }
11
+ desc "Run the test suite"
12
+ RSpec::Core::RakeTask.new
data/lib/schlep.rb CHANGED
@@ -7,12 +7,14 @@ require "uri"
7
7
  module Schlep
8
8
  extend self
9
9
 
10
- attr_writer :app, :hostname, :redis_url
10
+ attr_writer :redis_url
11
11
 
12
12
  def app
13
13
  @app ||= ""
14
+ end
14
15
 
15
- sanitize @app
16
+ def app=(string)
17
+ @app = sanitize string
16
18
  end
17
19
 
18
20
  def configure
@@ -30,23 +32,31 @@ module Schlep
30
32
  end
31
33
 
32
34
  def event(type, message)
33
- redis.rpush 'schlep', envelope(type, message)
35
+ events type, [message]
34
36
  end
35
37
 
36
38
  def events(type, messages)
37
- messages.map! { | message| envelope(type, message) }
39
+ messages.map! { |message| envelope type, message }
38
40
 
39
- redis.pipelined do
40
- while messages.any?
41
- redis.rpush 'schlep', messages.pop
41
+ suppress_redis_errors do
42
+ redis.pipelined do
43
+ while messages.any?
44
+ redis.rpush key, messages.pop
45
+ end
42
46
  end
43
47
  end
44
48
  end
45
49
 
46
50
  def hostname
47
- @hostname ||= `hostname`
51
+ @hostname ||= sanitize `hostname`
52
+ end
53
+
54
+ def hostname=(string)
55
+ @hostname = sanitize string
56
+ end
48
57
 
49
- sanitize @hostname
58
+ def key
59
+ @key ||= :schlep
50
60
  end
51
61
 
52
62
  def redis
@@ -76,7 +86,9 @@ module Schlep
76
86
  end
77
87
 
78
88
  def serialize_message(message)
79
- return message unless message.is_a? String
89
+ return message unless
90
+ message.is_a? String and
91
+ message.match /\{.+\}/
80
92
 
81
93
  begin
82
94
  JSON.parse message
@@ -98,4 +110,12 @@ module Schlep
98
110
 
99
111
  string
100
112
  end
113
+
114
+ def suppress_redis_errors
115
+ begin
116
+ yield
117
+ rescue Errno::ECONNREFUSED => e
118
+ puts e.inspect unless ENV['RUBY_ENV'] == 'test'
119
+ end
120
+ end
101
121
  end
@@ -1,3 +1,3 @@
1
1
  module Schlep
2
- VERSION = "0.3.1"
2
+ VERSION = "0.4.0"
3
3
  end
data/schlep.gemspec CHANGED
@@ -5,6 +5,7 @@ require "schlep/version"
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "schlep"
7
7
  s.version = Schlep::VERSION
8
+ s.license = "MIT"
8
9
  s.authors = ["Justin Campbell"]
9
10
  s.email = ["justin@justincampbell.me"]
10
11
  s.homepage = "http://github.com/Movitas/schlep-ruby"
@@ -14,8 +15,7 @@ Gem::Specification.new do |s|
14
15
  s.rubyforge_project = "schlep"
15
16
 
16
17
  s.files = `git ls-files`.split("\n")
17
- s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.test_files = `git ls-files -- spec/*`.split("\n")
19
19
  s.require_paths = ["lib"]
20
20
 
21
21
  s.add_runtime_dependency "redis"
@@ -25,7 +25,7 @@ Gem::Specification.new do |s|
25
25
  s.add_runtime_dependency "system_timer"
26
26
  end
27
27
 
28
- s.add_development_dependency "guard-test"
28
+ s.add_development_dependency "guard-rspec"
29
29
  s.add_development_dependency "rake"
30
- s.add_development_dependency "shoulda"
30
+ s.add_development_dependency "rspec"
31
31
  end
@@ -0,0 +1,181 @@
1
+ require "spec_helper"
2
+
3
+ describe Schlep do
4
+ before :each do
5
+ Schlep.reset
6
+ end
7
+
8
+ after :each do
9
+ %w[REDIS_URL REDISTOGO_URL].each do |e|
10
+ ENV[e] = nil
11
+ end
12
+ end
13
+
14
+ it "should be defined as a module" do
15
+ Schlep.class.should be_a Module
16
+ end
17
+
18
+ context ".configure" do
19
+ it "should be configurable with setters" do
20
+ Schlep.app = "test_app_1"
21
+ Schlep.hostname = "test_hostname_1"
22
+ Schlep.redis_url = "redis://localhost:1234"
23
+
24
+ Schlep.app.should == "test_app_1"
25
+ Schlep.hostname.should == "test_hostname_1"
26
+ Schlep.redis_url.should == "redis://localhost:1234"
27
+ end
28
+
29
+ it "should be configurable with a block" do
30
+ Schlep.configure do |config|
31
+ config.app = "test_app_2"
32
+ config.hostname = "test_hostname_2"
33
+ config.redis_url = "redis://localhost:4321"
34
+ end
35
+
36
+ Schlep.app.should == "test_app_2"
37
+ Schlep.hostname.should == "test_hostname_2"
38
+ Schlep.redis_url.should == "redis://localhost:4321"
39
+ end
40
+ end
41
+
42
+ context ".envelope" do
43
+ it "should return valid json" do
44
+ JSON.parse(Schlep.envelope "test_type", { :one => { :two => 3 }})
45
+ end
46
+
47
+ it "should accept types as strings" do
48
+ Schlep.envelope "test", "test"
49
+ end
50
+
51
+ it "should accept types as symbols" do
52
+ Schlep.envelope :test, "test"
53
+ end
54
+ end
55
+
56
+ context ".hostname" do
57
+ it "should be a string" do
58
+ Schlep.hostname.should be_instance_of String
59
+ end
60
+
61
+ it "should not include a newline from the hostname command" do
62
+ Schlep.hostname.should_not match /\s/
63
+ end
64
+
65
+ it "should not remove dashes, underscores, or periods" do
66
+ Schlep.hostname = "this-is_a.hostname"
67
+
68
+ Schlep.hostname.should == "this-is_a.hostname"
69
+ end
70
+ end
71
+
72
+ context ".redis_url" do
73
+ it "should connect locally by default" do
74
+ Schlep.redis.client.host.should == "127.0.0.1"
75
+ Schlep.redis.client.port.should == 6379
76
+ end
77
+
78
+ it "should connect to a basic url" do
79
+ Schlep.redis_url = "redis://1.2.3.4:1234"
80
+
81
+ Schlep.redis.client.host.should == "1.2.3.4"
82
+ Schlep.redis.client.port.should == 1234
83
+ Schlep.redis.client.password.should be_nil
84
+ end
85
+
86
+ it "should connect to a url with a username and password" do
87
+ Schlep.redis_url = "redis://redis:password@1.2.3.4:1234"
88
+
89
+ Schlep.redis.client.host.should == "1.2.3.4"
90
+ Schlep.redis.client.port.should == 1234
91
+ Schlep.redis.client.password.should == "password"
92
+ end
93
+
94
+ it "should detect the url from ENV[\"REDIS_URL\"]" do
95
+ ENV["REDIS_URL"] = "redis://redis:secret@4.3.2.1:4321"
96
+
97
+ Schlep.redis.client.host.should == "4.3.2.1"
98
+ Schlep.redis.client.port.should == 4321
99
+ Schlep.redis.client.password.should == "secret"
100
+ end
101
+
102
+ it "should detect the url from ENV[\"REDISTOGO_URL\"]" do
103
+ ENV["REDISTOGO_URL"] = "redis://redis:secret@4.3.2.1:4321"
104
+
105
+ Schlep.redis.client.host.should == "4.3.2.1"
106
+ Schlep.redis.client.port.should == 4321
107
+ Schlep.redis.client.password.should == "secret"
108
+ end
109
+ end
110
+
111
+ context ".reset" do
112
+ it "should reset instance variables to nil" do
113
+ Schlep.configure do |config|
114
+ config.app = "test_app"
115
+ config.hostname = "test_hostname"
116
+ end
117
+
118
+ Schlep.reset
119
+
120
+ %w[app hostname redis].each do |ivar|
121
+ Schlep.instance_variable_get("@#{ivar}").should be_nil
122
+ end
123
+ end
124
+ end
125
+
126
+ context ".serialize message" do
127
+ it "should convert json to a hash" do
128
+ Schlep.serialize_message("{\"one\":{\"two\":3}}").should == ({ "one" => { "two" => 3 }})
129
+ end
130
+
131
+ it "should leave strings alone" do
132
+ Schlep.serialize_message("test string").should == "test string"
133
+ end
134
+
135
+ it "should leave arrays alone" do
136
+ Schlep.serialize_message([1,2,[3,4]]).should == [1,2,[3,4]]
137
+ end
138
+
139
+ it "should leave hashes alone" do
140
+ Schlep.serialize_message({ :one => { :two => 3 }}).should == ({ :one => { :two => 3 }})
141
+ end
142
+
143
+ it "should leave integers alone" do
144
+ Schlep.serialize_message(123).should == 123
145
+ end
146
+
147
+ it "should leave floats alone" do
148
+ Schlep.serialize_message(1.23).should == 1.23
149
+ end
150
+ end
151
+
152
+ context ".timestamp" do
153
+ it "should be a float" do
154
+ Schlep.timestamp.should be_a Float
155
+ end
156
+ end
157
+
158
+ # private
159
+
160
+ context ".sanitize" do
161
+ it "should strip whitespace" do
162
+ Schlep.send(:sanitize, "test string").should == "teststring"
163
+ end
164
+
165
+ it "should strip newlines" do
166
+ Schlep.send(:sanitize, "test\n").should == "test"
167
+ end
168
+
169
+ it "should replace special characters with a colon" do
170
+ Schlep.send(:sanitize, "a:b/c^d$$e").should == "a:b:c:d:e"
171
+ end
172
+
173
+ it "should remove special characters at the beginning or end or a string" do
174
+ Schlep.send(:sanitize, "$test$string$").should == "test:string"
175
+ end
176
+
177
+ it "should not replace periods" do
178
+ Schlep.send(:sanitize, "a.b.c.d.e").should == "a.b.c.d.e"
179
+ end
180
+ end
181
+ end
@@ -0,0 +1,49 @@
1
+ require "spec_helper"
2
+
3
+ REDIS_ENABLED = `which redis-server`.lines.any? && RUBY_PLATFORM != "java"
4
+
5
+ describe Schlep do
6
+ before :all do
7
+ print "("
8
+ end
9
+
10
+ after :all do
11
+ stop_redis
12
+ print ")"
13
+ end
14
+
15
+ before :each do
16
+ start_redis
17
+ Schlep.reset
18
+ Schlep.redis_url = "redis://localhost:#{REDIS_OPTIONS[:port]}"
19
+ Schlep.redis.flushall
20
+ end
21
+
22
+ context ".event" do
23
+ it "should push an event to the schlep key" do
24
+ Schlep.event :test, "test"
25
+
26
+ Schlep.redis.llen(Schlep.key).should == 1
27
+ end
28
+
29
+ it "should suppress connection errors" do
30
+ stop_redis
31
+
32
+ Schlep.event :test, "test"
33
+ end
34
+ end
35
+
36
+ context ".events" do
37
+ it "should push multiple events to the schlep key" do
38
+ Schlep.events :test, [1,2,3]
39
+
40
+ Schlep.redis.llen(Schlep.key).should == 3
41
+ end
42
+
43
+ it "should suppress connection errors" do
44
+ stop_redis
45
+
46
+ Schlep.events :test, [1,2,3]
47
+ end
48
+ end
49
+ end if REDIS_ENABLED
@@ -0,0 +1,28 @@
1
+ ENV['RUBY_ENV'] = 'test'
2
+
3
+ require "schlep"
4
+
5
+ REDIS_OPTIONS = {
6
+ :daemonize => :yes,
7
+ :dbfilename => "dump.rdb",
8
+ :dir => ".",
9
+ :pidfile => "redis.pid",
10
+ :port => 9736
11
+ }
12
+
13
+ def start_redis
14
+ until FileTest.exists? REDIS_OPTIONS[:pidfile]
15
+ `echo '#{REDIS_OPTIONS.map { |k, v| "#{k} #{v}" }.join('\n')}' | redis-server -`
16
+ sleep 0.01
17
+ end
18
+ end
19
+
20
+ def stop_redis
21
+ if FileTest.exists? REDIS_OPTIONS[:pidfile]
22
+ %x{
23
+ cat #{REDIS_OPTIONS[:pidfile]} | xargs kill -QUIT
24
+ rm -f #{REDIS_OPTIONS[:dir]}/#{REDIS_OPTIONS[:dbfilename]}
25
+ rm -f #{REDIS_OPTIONS[:dir]}/#{REDIS_OPTIONS[:pidfile]}
26
+ }
27
+ end
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schlep
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-09 00:00:00.000000000 Z
12
+ date: 2012-01-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: redis
16
- requirement: &70214599512660 !ruby/object:Gem::Requirement
16
+ requirement: &70158924470240 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70214599512660
24
+ version_requirements: *70158924470240
25
25
  - !ruby/object:Gem::Dependency
26
- name: guard-test
27
- requirement: &70214599511460 !ruby/object:Gem::Requirement
26
+ name: guard-rspec
27
+ requirement: &70158924469800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70214599511460
35
+ version_requirements: *70158924469800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: rake
38
- requirement: &70214599510660 !ruby/object:Gem::Requirement
38
+ requirement: &70158924469380 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70214599510660
46
+ version_requirements: *70158924469380
47
47
  - !ruby/object:Gem::Dependency
48
- name: shoulda
49
- requirement: &70214599509520 !ruby/object:Gem::Requirement
48
+ name: rspec
49
+ requirement: &70158924468960 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70214599509520
57
+ version_requirements: *70158924468960
58
58
  description: Ruby client for schlep. Schlep provides a simple interface for logging
59
59
  and broadcasting events.
60
60
  email:
@@ -68,15 +68,18 @@ files:
68
68
  - .travis.yml
69
69
  - Gemfile
70
70
  - Guardfile
71
+ - LICENSE
71
72
  - Rakefile
72
73
  - Readme.md
73
74
  - lib/schlep.rb
74
75
  - lib/schlep/version.rb
75
76
  - schlep.gemspec
76
- - test/schlep_test.rb
77
- - test/test_helper.rb
77
+ - spec/lib/schlep_spec.rb
78
+ - spec/redis_spec.rb
79
+ - spec/spec_helper.rb
78
80
  homepage: http://github.com/Movitas/schlep-ruby
79
- licenses: []
81
+ licenses:
82
+ - MIT
80
83
  post_install_message:
81
84
  rdoc_options: []
82
85
  require_paths:
@@ -100,5 +103,6 @@ signing_key:
100
103
  specification_version: 3
101
104
  summary: Ruby client for schlep http://github.com/Movitas/schlep
102
105
  test_files:
103
- - test/schlep_test.rb
104
- - test/test_helper.rb
106
+ - spec/lib/schlep_spec.rb
107
+ - spec/redis_spec.rb
108
+ - spec/spec_helper.rb
data/test/schlep_test.rb DELETED
@@ -1,191 +0,0 @@
1
- begin
2
- require "test_helper"
3
- rescue LoadError
4
- require File.join(File.dirname(__FILE__), ".", "test_helper")
5
- end
6
-
7
- class SchlepTest < Test::Unit::TestCase
8
- def setup
9
- Schlep.reset
10
- end
11
-
12
- def teardown
13
- %w[REDIS_URL REDISTOGO_URL].each do |e|
14
- ENV[e] = nil
15
- end
16
- end
17
-
18
- context "schlep" do
19
- should "be defined as a module" do
20
- assert_equal Module, Schlep.class
21
- end
22
- end
23
-
24
- context "configure" do
25
- should "be configurable with setters" do
26
- Schlep.app = "test_app_1"
27
- Schlep.hostname = "test_hostname_1"
28
- Schlep.redis_url = "redis://localhost:1234"
29
-
30
- assert_equal "test_app_1", Schlep.app, "app"
31
- assert_equal "test_hostname_1", Schlep.hostname, "hostname"
32
- assert_equal "redis://localhost:1234", Schlep.redis_url, "redis_url"
33
- end
34
-
35
- should "be configurable with a block" do
36
- Schlep.configure do |config|
37
- config.app = "test_app_2"
38
- config.hostname = "test_hostname_2"
39
- config.redis_url = "redis://localhost:4321"
40
- end
41
-
42
- assert_equal "test_app_2", Schlep.app, "app"
43
- assert_equal "test_hostname_2", Schlep.hostname, "hostname"
44
- assert_equal "redis://localhost:4321", Schlep.redis_url, "redis_url"
45
- end
46
- end
47
-
48
- context "envelope" do
49
- should "return valid json" do
50
- assert_nothing_raised(Exception) {
51
- JSON.parse(Schlep.envelope "test_type", { :one => { :two => 3 }})
52
- }
53
- end
54
- end
55
-
56
- context "hostname" do
57
- should "be a string" do
58
- assert Schlep.hostname.is_a? String
59
- end
60
-
61
- should "not include a newline from the hostname command" do
62
- assert_nil Schlep.hostname =~ /\s/
63
- end
64
-
65
- should "not remove dashes, underscores, or periods" do
66
- Schlep.hostname = "this-is_a.hostname"
67
- assert_equal "this-is_a.hostname", Schlep.hostname
68
- end
69
- end
70
-
71
- context "redis_url" do
72
- should "connect locally by default" do
73
- assert_equal "127.0.0.1", Schlep.redis.client.host
74
- assert_equal 6379, Schlep.redis.client.port
75
- end
76
-
77
- should "connect to a basic url" do
78
- Schlep.redis_url = "redis://1.2.3.4:1234"
79
-
80
- assert_equal "1.2.3.4", Schlep.redis.client.host
81
- assert_equal 1234, Schlep.redis.client.port
82
- assert_nil Schlep.redis.client.password
83
- end
84
-
85
- should "connect to a url with a username and password" do
86
- Schlep.redis_url = "redis://redis:password@1.2.3.4:1234"
87
-
88
- assert_equal "1.2.3.4", Schlep.redis.client.host
89
- assert_equal 1234, Schlep.redis.client.port
90
- assert_equal "password", Schlep.redis.client.password
91
- end
92
-
93
- should "detect the url from ENV[\"REDIS_URL\"]" do
94
- ENV["REDIS_URL"] = "redis://redis:secret@4.3.2.1:4321"
95
-
96
- assert_equal "4.3.2.1", Schlep.redis.client.host
97
- assert_equal 4321, Schlep.redis.client.port
98
- assert_equal "secret", Schlep.redis.client.password
99
- end
100
-
101
- should "detect the url from ENV[\"REDISTOGO_URL\"]" do
102
- ENV["REDISTOGO_URL"] = "redis://redis:secret@4.3.2.1:4321"
103
-
104
- assert_equal "4.3.2.1", Schlep.redis.client.host
105
- assert_equal 4321, Schlep.redis.client.port
106
- assert_equal "secret", Schlep.redis.client.password
107
- end
108
- end
109
-
110
- context "reset" do
111
- should "reset instance variables to nil" do
112
- Schlep.configure do |config|
113
- config.app = "test_app"
114
- config.hostname = "test_hostname"
115
- end
116
-
117
- Schlep.reset
118
-
119
- %w[app hostname redis].each do |ivar|
120
- assert_nil Schlep.instance_variable_get("@#{ivar}"), "@#{ivar}"
121
- end
122
- end
123
- end
124
-
125
- context "serialize message" do
126
- should "convert json to a hash" do
127
- assert_equal ({ "one" => { "two" => 3 }}),
128
- Schlep.serialize_message("{\"one\":{\"two\":3}}")
129
- end
130
-
131
- should "leave strings alone" do
132
- assert_equal "test string",
133
- Schlep.serialize_message("test string")
134
- end
135
-
136
- should "leave arrays alone" do
137
- assert_equal [1,2,[3,4]],
138
- Schlep.serialize_message([1,2,[3,4]])
139
- end
140
-
141
- should "leave hashes alone" do
142
- assert_equal ({ :one => { :two => 3 }}),
143
- Schlep.serialize_message({ :one => { :two => 3 }})
144
- end
145
-
146
- should "leave integers alone" do
147
- assert_equal 123,
148
- Schlep.serialize_message(123)
149
- end
150
-
151
- should "leave floats alone" do
152
- assert_equal 1.23,
153
- Schlep.serialize_message(1.23)
154
- end
155
- end
156
-
157
- context "timestamp" do
158
- should "be a float" do
159
- assert Schlep.timestamp.is_a? Float
160
- end
161
- end
162
-
163
- # private
164
-
165
- context "sanitize" do
166
- should "strip whitespace" do
167
- assert_equal "teststring",
168
- Schlep.send(:sanitize, "test string")
169
- end
170
-
171
- should "strip newlines" do
172
- assert_equal "test",
173
- Schlep.send(:sanitize, "test\n")
174
- end
175
-
176
- should "replace special characters with a colon" do
177
- assert_equal "a:b:c:d:e",
178
- Schlep.send(:sanitize, "a:b/c^d$$e")
179
- end
180
-
181
- should "remove special characters at the beginning or end or a string" do
182
- assert_equal "test:string",
183
- Schlep.send(:sanitize, "$test$string$")
184
- end
185
-
186
- should "not replace periods" do
187
- assert_equal "a.b.c.d.e",
188
- Schlep.send(:sanitize, "a.b.c.d.e")
189
- end
190
- end
191
- end
data/test/test_helper.rb DELETED
@@ -1,7 +0,0 @@
1
- require 'test/unit'
2
- require 'rubygems'
3
- require 'shoulda'
4
-
5
- $LOAD_PATH << File.expand_path(File.join(File.dirname(__FILE__), "..", "lib"))
6
-
7
- require 'schlep'