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.
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- elster (0.0.3)
4
+ elster (0.0.5)
5
5
  multi_json
6
6
 
7
7
  GEM
@@ -17,7 +17,7 @@ end
17
17
  desc "Run a simple benchmark"
18
18
  task :benchmark do
19
19
  require "stringio"
20
- ITERATIONS = 100000
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/ =~ value
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
@@ -1,3 +1,3 @@
1
1
  module Elster
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -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.3
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: 2730646358943498707
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: 2730646358943498707
136
+ hash: 4222457560117527615
136
137
  requirements: []
137
138
  rubyforge_project:
138
139
  rubygems_version: 1.8.24