Module: CompactData::Model
- Defined in:
- lib/compactdata/model/model.rb
Overview
A Model module for CompactData
Defined Under Namespace
Classes: CompactData, CompactDataArray, CompactDataBoolNull, CompactDataFloat, CompactDataInteger, CompactDataMap, CompactDataPair, CompactDataPrimitive, CompactDataQuoted, CompactDataString
Class Method Summary collapse
-
.to_compactdata(obj) ⇒ Object
Convert a Ruby Hash/Array/Primitive to a CompactData object.
Class Method Details
.to_compactdata(obj) ⇒ Object
Convert a Ruby Hash/Array/Primitive to a CompactData object.
236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 |
# File 'lib/compactdata/model/model.rb', line 236 def self.to_compactdata(obj) if obj.instance_of? Float CompactDataFloat.new obj elsif obj.instance_of? Integer CompactDataInteger.new obj elsif obj.instance_of? String CompactDataString.new obj elsif obj.instance_of? Hash if obj.keys.length == 1 key = obj.keys[0] CompactDataPair.new key, to_compactdata(obj[key]) else CompactDataMap.new(obj.keys.map { |k| CompactDataPair.new k, to_compactdata(obj[k]) }) end elsif obj.instance_of? Array CompactDataArray.new(obj.map { |i| to_compactdata i }) elsif obj.instance_of? TrueClass CompactDataBoolNull::CompactData_TRUE elsif obj.instance_of? FalseClass CompactDataBoolNull::CompactData_FALSE elsif obj.instance_of? NilClass CompactDataBoolNull::CompactData_NULL else puts "Cannot handle #{obj}" exit end end |