Code simplification for writing JSON::Any values.
parent
3d232e6005
commit
b8229f9dde
|
@ -11,34 +11,7 @@ class CBOR::Encoder
|
|||
end
|
||||
|
||||
def write(j : JSON::Any)
|
||||
# Test each possible value of JSON::Any
|
||||
case j
|
||||
when .as_bool?
|
||||
write j.as_bool
|
||||
when .as_i?
|
||||
write j.as_i
|
||||
when .as_i64?
|
||||
write j.as_i64
|
||||
when .as_f?
|
||||
write j.as_f
|
||||
when .as_f32?
|
||||
write j.as_f32
|
||||
when .as_s?
|
||||
write j.as_s
|
||||
when .as_a?
|
||||
write j.as_a
|
||||
when .as_h?
|
||||
write j.as_h
|
||||
else
|
||||
# JSON::Any ".as_bool?" function fails.
|
||||
case j.raw
|
||||
when Bool
|
||||
write j.as_bool
|
||||
when Nil
|
||||
else
|
||||
raise "Unknown kind of JSON: #{j.raw}"
|
||||
end
|
||||
end
|
||||
write j.raw
|
||||
end
|
||||
|
||||
def write(value : Nil | Nil.class, use_undefined : Bool = false)
|
||||
|
|
Loading…
Reference in New Issue