elster 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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