view modules/jsonEncoder.tp @ 330:e70f9d3f19f8

Turn off hinting in freetype sample as hinting does not play nice with using font units for layout
author Michael Pavone <pavone@retrodev.com>
date Sat, 28 Mar 2015 13:26:44 -0700
parents eef8a5cea812
children
line wrap: on
line source

#{
	//this module exists to break a circular dependency between the json module
	//and container types like dictionaries
	encode <- :value {
		if: (object does: value understand?: "jsonEncode") {
			value jsonEncode
		} else: {
			toEncode <- #[]
			if: (object does: value understand?: "serializeFields") {
				toEncode <- value serializeFields
			} else: {
				toEncode <- object propertiesOf: value
			}
			parts <- #[]
			foreach: toEncode :idx field {
				fieldVal <- object sendMessage: field to: value
				parts append: (field jsonEncode) . ":" . (encode: fieldVal)
			}
			"{" . (parts join: ",") . "}"
		}
	}
}