Object Literals - caffeine-suite/caffeine-script GitHub Wiki
Object literals can be implicit, explicit-to-end-of-line(EOL), explicit-blocks, or traditional JavaScript-style:
# implicit comma after simple literals
a = foo: 1 bar: 2
# basic implicit form
a = foo: 1, bar: 2
# basic implicit block form
a =
foo: 1
bar: 2
# basic explicit block form
a = {}
foo: 1
bar: 2
# basic explicit to-eol form
a = {} foo: 1, bar: 2
# JavaScript form
a = {foo: 1, bar: 2}
Arrays of Objects
Sometimes you want an array of objects, not just one object.
a =
{} foo: 1
{} bar: 2
{} baz: 3
a = [{foo: 1}, {bar: 2}, {baz: 3}]
Implicit object-literals with two or more object-literal-properties on one line are 'one-liners':
# implicit comma after simple literal
a =
foo: 1 fod: 4
bar: 2 bad: 4
baz: 3 bud: 4
a =
foo: 1, fod: 4
bar: 2, bad: 4
baz: 3, bud: 4
a = []
foo: 1, fod: 4
bar: 2, bad: 4
baz: 3, bud: 4
a = []
{} foo: 1, fod: 4
{} bar: 2, bad: 4
{} baz: 3, bud: 4
a = [
{foo: 1, fod: 4}
{bar: 2, bad: 4}
{baz: 3, bud: 4}
]
Duplicate property names in object-literals start a new object in the list: (COMING SOON)
a =
foo: 1
bar: 100
foo: 2
foo: 3
a =
{} foo: 1, bar: 100
{} foo: 2
{} foo: 3