This repository contains all of the source code for the book, Programming in CoffeeScript. As I write the book this repository will be updated with any changes, additions, subtractions, etc... that come along.
The book can be purchaseed pretty much anywhere you can buy books, both in print and eBook formats (ePUB, MOBI, PDF).
Here's where you can find a comprehensive list of those places:
Dedication
Preface
Acknowledgements
About The Author
Part 1: Core CoffeeScript
Chapter 1: Getting Started
The CoffeeScript REPL
In-Browser Compilation
Command Line Compilation
The CoffeeScript CLI
Chapter 2: The Basics
Syntax
Scope and Variables
String Interpolation, Heredocs, and Comments
Extended Regular Expressions
Chapter 3: Control Structures
Operators and Aliases
If/Unless
Switch/Case Statements
Chapter 4: Functions and Arguments
Function Basics
Arguments
Default Arguments
Splats...
Chapter 5: Collections and Iterations
Arrays
Ranges
Objects/Hashes
Loops and Iteration
Comprehensions
The `do` Keyword
Chapter 6: Classes
Defining Classes
Defining Functions
The `constructor` function
Scope in Classes
Extending Classes
Class-level Functions
Prototype Functions
Binding (-> vs. =>)
Part 2: CoffeeScript in Practice
Chapter 7: Cake and Cakefiles
Getting Started
Creating Cake Tasks
Running Cake Tasks
Using Options
Invoking Other Tasks
Chapter 8: Testing with Jasmine
Installing Jasmine
Setting up Jasmine
Introduction to Jasmine
Unit Testing
Before and After
Custom Matchers
Chapter 9: Intro to Node.js
What is Node.js?
Installing Node
Getting Started
Streaming Responses
Building a CoffeeScript Server
Trying Out the Server
Chapter 10: Example: Todo List Part 1 (Server-side)
Installing and Setting up Express
Setting up MongoDB using Mongoose
Writing the Todo API
Querying with Mongoose
Chapter 11: Example: Todo List Part 2 (Client-side w/ jQuery)
Priming the HTML with Twitter Bootstrap
Interacting with jQuery
Hooking up the New Todo Form
Cleaning up the Todo List with Underscore.js Templates
Listing Existing Todos
Updating Todos
Deleting Todos
Chapter 12: Example: Todo List Part 3 (Client-side w/ Backbone.js)
What is Backbone.js?
Setting up Backbone.js
Writing our Todo Model and Collection
Listing Todos using a View
Creating New Todos
A View Per Todo
Updating and Validating Models from Views
Deleting Models from Views