/Users/jwebb/src/bigjason/elster/lib/elster/streamer.rb in elster-0.0.3 vs /Users/jwebb/src/bigjason/elster/lib/elster/streamer.rb in elster-0.0.5
- old
+ new
@@ -1,10 +1,11 @@
require "multi_json"
module Elster
class Streamer
attr_reader :output
+
# Create a new instance of Streamer with the specified output stream. The
# `output` must respond to `write`.
def initialize(output)
@output = output
# Some mutable state to make Rich Hickey weep.
@@ -105,14 +106,18 @@
@output.write(output)
end
def encode_value(value)
case value
- when Numeric
- encode_number(value)
when String
encode_string(value)
+ when Numeric
+ encode_number(value)
+ when TrueClass
+ encode_boolean(value)
+ when FalseClass
+ encode_boolean(value)
when nil
encode_nil(value)
else
MultiJson.dump(value)
end
@@ -121,18 +126,26 @@
def encode_generic(value)
MultiJson.dump(value)
end
def encode_string(value)
- if /\A[\w\d \t]+\Z/ =~ value
+ if value =~ /\A[\w\d \t]+\Z/
"\"#{value}\""
else
encode_generic(value.to_s)
end
end
def encode_number(value)
value.to_s
+ end
+
+ def encode_boolean(value)
+ if value
+ "true"
+ else
+ "false"
+ end
end
def encode_nil(value)
"null"
end