]> code.delx.au - gnu-emacs-elpa/blob - packages/coffee-mode/examples/basic.coffee
Merge commit '0cda39255827f283e7578cd469ae42daad9556a2' from js2-mode
[gnu-emacs-elpa] / packages / coffee-mode / examples / basic.coffee
1 # These examples are taken from
2 # http://jashkenas.github.com/coffee-script/
3
4 song = ["do", "re", "mi", "fa", "so"]
5
6 ages = {
7 max: 10
8 ida: 9
9 tim: 11
10 }
11
12 matrix = [
13 1, 0, 1
14 0, 0, 1
15 1, 1, 0
16 ]
17
18 eldest = if 24 > 21 then "Liz" else "Ike"
19
20 six = (one = 1) + (two = 2) + (three = 3)
21
22 My.mood = greatly_improved if true
23
24 # Unfancy JavaScript
25 if happy and knows_it
26 cha_cha_cha()
27 false
28
29 Account = (customer, cart) ->
30 @customer: customer
31 @cart: cart
32
33 $('.shopping_cart').bind 'click', (event) =>
34 @customer.purchase @cart
35
36 class Animal
37 move: (meters) ->
38 alert @name + " moved " + meters + "m."
39
40 randomify: ->
41 @name.replace(/^[\w_-]*$/g, "-")
42
43 class Snake extends Animal
44 constructor: (name) ->
45 @name: name
46
47 move: ->
48 alert "Slithering..."
49 super 5
50
51 class Horse extends Animal
52 constructor: (name) ->
53 @name: name
54
55 move: ->
56 alert "Galloping..."
57 super 45
58
59 sam = new Snake "Sammy the Python"
60 tom = new Horse "Tommy the Palomino"
61
62 sam.move()
63 tom.move()
64 if car.speed < speed_limit then accelerate()
65
66 print "My name is " + @name
67
68 gold = silver = the_field = "unknown"
69
70 award_medals = (first, second, rest...) ->
71 gold: first
72 silver: second
73 the_field: rest
74
75 contenders = [
76 "Michael Phelps"
77 "Liu Xiang"
78 ]
79
80 award_medals contenders...
81
82 alert "Gold: " + gold
83 alert "Silver: " + silver
84 alert "The Field: " + the_field
85
86 # Eat lunch.
87 # what up
88 # love it.
89 lunch = eat food for food in ['toast', 'cheese', 'wine']
90
91 $('#demo').click ->
92 asd
93 # sup
94 # asd
95 # asdasd
96 blah = true
97
98 okay
99
100
101 # Naive collision detection.
102 for roid in asteroids
103 for roid2 in asteroids when roid isnt roid2
104 roid.explode() if roid.overlaps roid2
105
106 years_old = max: 10, ida: 9, tim: 11
107
108 ages = for child, age of years_old
109 child + " is " + age
110
111 grade = (student) ->
112 if student.excellent_work
113 "A+"
114 else if student.okay_stuff
115 if student.tried_hard then "B" else "B-"
116 else
117 "C"
118