elster 0.0.3 → 0.0.5
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/Users/jwebb/src/bigjason/elster/Gemfile.lock +1 -1
- data/Users/jwebb/src/bigjason/elster/Rakefile +3 -1
- data/Users/jwebb/src/bigjason/elster/lib/elster/streamer.rb +16 -3
- data/Users/jwebb/src/bigjason/elster/lib/elster/version.rb +1 -1
- data/Users/jwebb/src/bigjason/elster/pkg/elster-0.0.3.gem +0 -0
- data/Users/jwebb/src/bigjason/elster/test/streamer_test.rb +14 -0
- metadata +4 -3
@@ -17,7 +17,7 @@ end
|
|
17
17
|
desc "Run a simple benchmark"
|
18
18
|
task :benchmark do
|
19
19
|
require "stringio"
|
20
|
-
ITERATIONS =
|
20
|
+
ITERATIONS = 50000
|
21
21
|
|
22
22
|
Benchmark.bm do |x|
|
23
23
|
x.report("Elster ") do
|
@@ -26,6 +26,7 @@ task :benchmark do
|
|
26
26
|
result.key("name_#{i}", "Jason #{i}")
|
27
27
|
result.key("age_#{i}", i)
|
28
28
|
result.key("nil_#{i}", nil)
|
29
|
+
result.key("boolean_#{i}", (i % 2) == 1)
|
29
30
|
end
|
30
31
|
result.close
|
31
32
|
end
|
@@ -36,6 +37,7 @@ task :benchmark do
|
|
36
37
|
result["name_#{i}"] = "Jason #{i}"
|
37
38
|
result["age_#{i}"] = i
|
38
39
|
result["nil_#{i}"] = nil
|
40
|
+
result["boolean_#{i}"] = (i % 2) == 1
|
39
41
|
end
|
40
42
|
MultiJson.dump(result)
|
41
43
|
end
|
@@ -3,6 +3,7 @@ require "multi_json"
|
|
3
3
|
module Elster
|
4
4
|
class Streamer
|
5
5
|
attr_reader :output
|
6
|
+
|
6
7
|
# Create a new instance of Streamer with the specified output stream. The
|
7
8
|
# `output` must respond to `write`.
|
8
9
|
def initialize(output)
|
@@ -107,10 +108,14 @@ module Elster
|
|
107
108
|
|
108
109
|
def encode_value(value)
|
109
110
|
case value
|
110
|
-
when Numeric
|
111
|
-
encode_number(value)
|
112
111
|
when String
|
113
112
|
encode_string(value)
|
113
|
+
when Numeric
|
114
|
+
encode_number(value)
|
115
|
+
when TrueClass
|
116
|
+
encode_boolean(value)
|
117
|
+
when FalseClass
|
118
|
+
encode_boolean(value)
|
114
119
|
when nil
|
115
120
|
encode_nil(value)
|
116
121
|
else
|
@@ -123,7 +128,7 @@ module Elster
|
|
123
128
|
end
|
124
129
|
|
125
130
|
def encode_string(value)
|
126
|
-
if /\A[\w\d \t]+\Z/
|
131
|
+
if value =~ /\A[\w\d \t]+\Z/
|
127
132
|
"\"#{value}\""
|
128
133
|
else
|
129
134
|
encode_generic(value.to_s)
|
@@ -134,6 +139,14 @@ module Elster
|
|
134
139
|
value.to_s
|
135
140
|
end
|
136
141
|
|
142
|
+
def encode_boolean(value)
|
143
|
+
if value
|
144
|
+
"true"
|
145
|
+
else
|
146
|
+
"false"
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
137
150
|
def encode_nil(value)
|
138
151
|
"null"
|
139
152
|
end
|
Binary file
|
@@ -130,4 +130,18 @@ class StreamerTest < MiniTest::Unit::TestCase
|
|
130
130
|
|
131
131
|
assert_equal "I am \nmulti\nlined", parsed["description"]
|
132
132
|
end
|
133
|
+
|
134
|
+
def test_boolean_true
|
135
|
+
json.key("works", true)
|
136
|
+
json.close
|
137
|
+
|
138
|
+
assert_equal true, parsed["works"]
|
139
|
+
end
|
140
|
+
|
141
|
+
def test_boolean_false
|
142
|
+
json.key("no_works", false)
|
143
|
+
json.close
|
144
|
+
|
145
|
+
assert_equal false, parsed["no_works"]
|
146
|
+
end
|
133
147
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: elster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -106,6 +106,7 @@ files:
|
|
106
106
|
- /Users/jwebb/src/bigjason/elster/lib/elster.rb
|
107
107
|
- /Users/jwebb/src/bigjason/elster/LICENSE
|
108
108
|
- /Users/jwebb/src/bigjason/elster/pkg/elster-0.0.2.gem
|
109
|
+
- /Users/jwebb/src/bigjason/elster/pkg/elster-0.0.3.gem
|
109
110
|
- /Users/jwebb/src/bigjason/elster/Rakefile
|
110
111
|
- /Users/jwebb/src/bigjason/elster/README.md
|
111
112
|
- /Users/jwebb/src/bigjason/elster/test/streamer_test.rb
|
@@ -123,7 +124,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
124
|
version: '0'
|
124
125
|
segments:
|
125
126
|
- 0
|
126
|
-
hash:
|
127
|
+
hash: 4222457560117527615
|
127
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
128
129
|
none: false
|
129
130
|
requirements:
|
@@ -132,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
133
|
version: '0'
|
133
134
|
segments:
|
134
135
|
- 0
|
135
|
-
hash:
|
136
|
+
hash: 4222457560117527615
|
136
137
|
requirements: []
|
137
138
|
rubyforge_project:
|
138
139
|
rubygems_version: 1.8.24
|