Skip to content

Instantly share code, notes, and snippets.

@searls
Created May 3, 2012 02:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 2 You must be signed in to fork a gist
  • Save searls/2582658 to your computer and use it in GitHub Desktop.
Save searls/2582658 to your computer and use it in GitHub Desktop.
window.app = format: {}
app.format.DollarizesCents = ->
dollarize: (pennies) ->
amount = (pennies / 100.0).toFixed(2)
[dollars, cents] = amount.toString().split(".")
"$#{@commasFor(dollars)}.#{cents}"
#private
commasFor: (dollars) ->
s = ""
while dollars.length > 3
s = ",#{dollars.slice(-3)}#{s}"
dollars = dollars.substring(0, dollars.length - 3)
"#{dollars}#{s}"
describe "app.format.DollarizesCents", ->
Given -> @subject = app.format.DollarizesCents()
describe "#dollarize", ->
context "0 cents", ->
Then -> @subject.dollarize(0) == "$0.00"
context "50 cents", ->
Then -> @subject.dollarize(50) == "$0.50"
context "1,841,482 cents", ->
Then -> @subject.dollarize(1841482) == "$18,414.82"
context "213,981,400 cents", ->
Then -> @subject.dollarize(213981400) == "$2,139,814.00"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment