Details | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 1 | espaco | 1 | Morris = window.Morris = {} |
| 2 | |||
| 3 | $ = jQuery |
||
| 4 | |||
| 5 | # Very simple event-emitter class. |
||
| 6 | # |
||
| 7 | # @private |
||
| 8 | class Morris.EventEmitter |
||
| 9 | on: (name, handler) -> |
||
| 10 | unless @handlers? |
||
| 11 | @handlers = {} |
||
| 12 | unless @handlers[name]? |
||
| 13 | @handlers[name] = [] |
||
| 14 | @handlers[name].push(handler) |
||
| 15 | @ |
||
| 16 | |||
| 17 | fire: (name, args...) -> |
||
| 18 | if @handlers? and @handlers[name]? |
||
| 19 | for handler in @handlers[name] |
||
| 20 | handler(args...) |
||
| 21 | |||
| 22 | # Make long numbers prettier by inserting commas. |
||
| 23 | # |
||
| 24 | # @example |
||
| 25 | # Morris.commas(1234567) -> '1,234,567' |
||
| 26 | Morris.commas = (num) -> |
||
| 27 | if num? |
||
| 28 | ret = if num < 0 then "-" else "" |
||
| 29 | absnum = Math.abs(num) |
||
| 30 | intnum = Math.floor(absnum).toFixed(0) |
||
| 31 | ret += intnum.replace(/(?=(?:\d{3})+$)(?!^)/g, ',') |
||
| 32 | strabsnum = absnum.toString() |
||
| 33 | if strabsnum.length > intnum.length |
||
| 34 | ret += strabsnum.slice(intnum.length) |
||
| 35 | ret |
||
| 36 | else |
||
| 37 | '-' |
||
| 38 | |||
| 39 | # Zero-pad numbers to two characters wide. |
||
| 40 | # |
||
| 41 | # @example |
||
| 42 | # Morris.pad2(1) -> '01' |
||
| 43 | Morris.pad2 = (number) -> (if number < 10 then '0' else '') + number |