/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