examples/poignant.coffee in coffee-script-0.2.6 vs examples/poignant.coffee in coffee-script-0.3.0
- old
+ new
@@ -1,10 +1,10 @@
# Examples from the Poignant Guide.
# ['toast', 'cheese', 'wine'].each { |food| print food.capitalize }
-['toast', 'wine', 'cheese'].each(food => print(food.capitalize()))
+['toast', 'wine', 'cheese'].each (food) -> print(food.capitalize())
# class LotteryTicket
# def picks; @picks; end
@@ -12,30 +12,63 @@
# def purchased; @purchased; end
# def purchased=(var); @purchased = var; end
# end
LotteryTicket: {
- get_picks: => this.picks
- set_picks: nums => this.picks: nums
- get_purchase: => this.purchase
- set_purchase: amount => this.purchase: amount
+ get_picks: -> this.picks
+ set_picks: (nums) -> this.picks: nums
+ get_purchase: -> this.purchase
+ set_purchase: (amount) -> this.purchase: amount
}
+# class << LotteryDraw
+# def play
+# result = LotteryTicket.new_random
+# winners = {}
+# @@tickets.each do |buyer, ticket_list|
+# ticket_list.each do |ticket|
+# score = ticket.score( result )
+# next if score.zero?
+# winners[buyer] ||= []
+# winners[buyer] << [ ticket, score ]
+# end
+# end
+# @@tickets.clear
+# winners
+# end
+# end
+
+LotteryDraw: {
+ play: ->
+ result: LotteryTicket.new_random()
+ winners: {}
+ this.tickets.each (buyer, ticket_list) ->
+ ticket_list.each (ticket) ->
+ score: ticket.score(result)
+ return if score is 0
+ winners[buyer] ||= []
+ winners[buyer].push([ticket, score])
+ this.tickets: {}
+ winners
+}
+
+
+
# module WishScanner
# def scan_for_a_wish
# wish = self.read.detect do |thought|
# thought.index( 'wish: ' ) == 0
# end
# wish.gsub( 'wish: ', '' )
# end
# end
WishScanner: {
- scan_for_a_wish: =>
- wish: this.read().detect(thought => thought.index('wish: ') is 0)
+ scan_for_a_wish: ->
+ wish: this.read().detect((thought) -> thought.index('wish: ') is 0)
wish.replace('wish: ', '')
}
@@ -76,20 +109,20 @@
# end
Creature : {
# This method applies a hit taken during a fight.
- hit: damage =>
+ hit: (damage) ->
p_up: Math.rand(this.charisma)
if p_up % 9 is 7
this.life += p_up / 4
puts("[" + this.name + " magick powers up " + p_up + "!]")
this.life -= damage
if this.life <= 0 then puts("[" + this.name + " has died.]")
# This method takes one turn in a fight.
- fight: enemy, weapon =>
+ fight: (enemy, weapon) ->
if this.life <= 0 then return puts("[" + this.name + "is too dead to fight!]")
# Attack the opponent.
your_hit: Math.rand(this.strength + weapon)
puts("[You hit with " + your_hit + "points of damage!]")
@@ -121,16 +154,16 @@
# end
# Get evil idea and swap in code words
print("Enter your new idea: ")
idea: gets()
-code_words.each(real, code => idea.replace(real, code))
+code_words.each((real, code) -> idea.replace(real, code))
# Save the jibberish to a new file
print("File encoded. Please enter a name for this idea: ")
idea_name: gets().strip()
-File.open("idea-" + idea_name + '.txt', 'w', file => file.write(idea))
+File.open("idea-" + idea_name + '.txt', 'w', (file) -> file.write(idea))
# def wipe_mutterings_from( sentence )
# unless sentence.respond_to? :include?
@@ -142,10 +175,10 @@
# close = sentence.index( ')', open )
# sentence[open..close] = '' if close
# end
# end
-wipe_mutterings_from: sentence =>
+wipe_mutterings_from: (sentence) ->
throw new Error("cannot wipe mutterings") unless sentence.indexOf
while sentence.indexOf('(') >= 0
open: sentence.indexOf('(') - 1
close: sentence.indexOf(')') + 1
sentence: sentence[0..open] + sentence[close..sentence.length]
\ No newline at end of file