Index
A
- advanced function arguments
- about / Advanced function arguments
- default argument values / Default argument values
- application
- building / Building our application
- string interpolation, using / Using string interpolation in our application
- dynamic behavior, adding / Adding dynamic behavior to our application
- switch statements, using / Using a switch statement in our application
- destructuring assignment, using / Using destructuring assignment in our application
- memoization, using / Using memoization in our application
- options objects, using / Using options objects in our application
- running / Running our application
- interactive, making / Making our application interactive
- results, viewing / Seeing the results
- Arch Linux
- about / Arch Linux
- arguments
- accepting, with splats / Accepting a variable number of arguments with splats
- array membership
- verifying / Checking array membership
- arrays
- about / Arrays
- ranges / Ranges
- loops / Loops
- tricks / A few more array tricks
- asset pipeline
- about / Using CoffeeScript with Rails, Using CoffeeScript with Node.js
- setting up / Setting up the asset pipeline
- assets
- precompiling / Precompiling assets
- Async.js
- about / An async helper library
- URL / An async helper library
- using, in application / Using Async.js in our application
- async helper library
- about / An async helper library
- asynchronous calls management
- alternatives / Alternatives for managing asynchronous calls
- asynchronous calls management, alternatives
- promises / Promises
- async helper library / An async helper library
- IcedCoffeeScript / IcedCoffeeScript
- asynchronous operations
- about / Understanding asynchronous operations
- asynchronous request
- creating / Making an asynchronous request
- Atomic Era (AE) / Attaching a method outside of the class definition
B
- Backbone.js
- about / Backbone classes in CoffeeScript
- Backbone classes
- in CoffeeScript / Backbone classes in CoffeeScript
- basics, CoffeeScript
- about / CoffeeScript basics
- statements / Statements
- variables / Variables
- comments / Comments
- break command / Switch statements
- browser
- CoffeeScript code, running in / CoffeeScript directly in the browser
- browser console
- CoffeeScript, using in / CoffeeScript in the browser console
- Brunch
- CoffeeScript, using with / Using CoffeeScript with Brunch
- about / Using CoffeeScript with Brunch
- URL, for documentation / Creating a Brunch project
- brunch command / Creating a Brunch project
- brunch package / Creating a Brunch project
- Brunch project
- creating / Creating a Brunch project, Filling out our application
- assets, precompiling / Precompiling assets
- business logic
- adding / Adding business logic
- about / More business logic
C
- .coffee extension
- about / Following along with the examples
- .coffee files / Building our application
- caching solution / Saving our work with memoization
- Cakefile
- using / Using a Cakefile
- Cake task
- writing / Writing a Cake task
- about / More Cake tasks
- calling functions
- about / Calling functions
- precedence / Precedence
- Capistrano / Precompiling assets
- chained calls, null values / Null values in chained calls
- Chaplin.js / Creating a Brunch project
- URL / Creating a Brunch project
- Chocolatey
- used, for installing Node.js on Windows / Using Chocolatey
- URL / Using Chocolatey
- Chrome, CoffeeScript console / A CoffeeScript console in Chrome
- Chrome developer tools
- source maps / Source maps in the Chrome developer tools
- class
- about / Defining a class in CoffeeScript
- defining, in CoffeeScript / Defining a class in CoffeeScript
- methods, attaching to / Attaching methods to a class
- classes
- building, in JavaScript / How CoffeeScript builds classes in JavaScript
- methods, calling on / Calling methods statically on classes
- used, for structuring data / Structuring our data with classes
- used, for managing display logics / Managing display logic with classes
- classical inheritance / How CoffeeScript builds classes in JavaScript
- class libraries
- CoffeeScript, using with / Using CoffeeScript with other class libraries
- class methods / Calling methods statically on classes
- closure
- about / Getting our context right
- code smell
- about / Using fat arrows in our project
- CoffeeConsole
- about / A CoffeeScript console in Chrome
- CoffeeScript
- installing / Installing CoffeeScript
- basics / CoffeeScript basics
- class, defining / Defining a class in CoffeeScript
- classes, building in JavaScript / How CoffeeScript builds classes in JavaScript
- using, with class libraries / Using CoffeeScript with other class libraries
- Backbone classes / Backbone classes in CoffeeScript
- Ember classes / Ember classes in CoffeeScript
- using, in browser console / CoffeeScript in the browser console
- using, with Rails / Using CoffeeScript with Rails
- using, with Brunch / Using CoffeeScript with Brunch
- using, with Node.js / Using CoffeeScript with Node.js
- server, running with / Running a server with CoffeeScript
- CoffeeScript's inheritance
- in JavaScript / CoffeeScript's inheritance in JavaScript
- CoffeeScript Application Development
- about / Building our application
- CoffeeScript code / Our very first CoffeeScript code
- running, in browser / CoffeeScript directly in the browser
- CoffeeScript console
- in Firefox / A CoffeeScript console in Firefox
- in Chrome / A CoffeeScript console in Chrome
- CoffeeScript constructors
- in JavaScript / CoffeeScript constructors in JavaScript
- CoffeeScript FAQ
- URL / Function naming
- CoffeeScript file
- compiling from / Compiling from a CoffeeScript file
- CoffeeScript source
- URL / Installing Node.js
- CoffeeScript support, in editor
- about / CoffeeScript support in the editor
- TextMate / Support in TextMate
- Sublime Text 2 / Support in Sublime Text 2
- Vim / Support in Vim
- Emacs / Support in Emacs
- collection
- displaying / Displaying a collection
- command line
- used, for installing Node.js on Linux / Using the command line
- comments / Comments
- comparison operators
- about / Comparison operators
- compiled JavaScript
- about / Seeing the compiled JavaScript
- Connect middleware
- about / Using CoffeeScript with Node.js
- constructors
- about / Constructors
- context
- about / Getting our context right
- overview / Getting our context right
- control structures
- about / Control structures
- if statements / Using if statements
- else and else if statements / The else and else if statements
- unless statement / The unless statement
- single-line form / Single-line form
- CouchDB / Using a database
D
- data
- structuring, with classes / Structuring our data with classes
- endpoint, adding / Adding an endpoint for data
- database
- using / Using a database
- errors, handling / Handling errors
- data modeling
- about / More data modeling
- Debian Sid/Ubuntu 12.10 (Quantal Quetzal) / Debian Sid/Ubuntu 12.10 (Quantal Quetzal)
- default arguments
- using, in application / Using default arguments in our application
- default argument values / Default argument values
- destructuring assignment
- about / Assigning multiple values at once
- using, in application / Using destructuring assignment in our application
- display logic
- managing, with classes / Managing display logic with classes
- document.querySelectorAll / Adding dynamic behavior to our application
- do keyword / Requests in a loop
- DuckDuckGo
- about / Getting to know our remote API
- duple
- about / Using memoization in our application
- dynamic behavior
- adding, to application / Adding dynamic behavior to our application
E
- else and else if statements / The else and else if statements
- Emacs / Support in Emacs
- Ember.js
- about / Ember classes in CoffeeScript
- Ember classes
- in CoffeeScript / Ember classes in CoffeeScript
- endpoint
- adding, for data / Adding an endpoint for data
- existential operator
- about / Using the existential operator
- using / Using the existential operator
F
- fat arrows
- using, in project / Using fat arrows in our project
- Firefox, CoffeeScript console / A CoffeeScript console in Firefox
- Firefox developer tools
- source maps / Source maps in the Firefox developer tools
- first-class citizens
- about / Calling functions
- for loop / Loops
- function return behavior / Function return behavior
- functions
- defining / Defining functions
- naming / Function naming
- assigning, to variables / Function naming
- return behavior / Function return behavior
- involing, with splats / Invoking functions with splats
- function signatures
- about / Advanced function arguments
G
- graphical package manager
- used, for installing Node.js on Linux / Using a graphical package manager
- guards / Loop comprehensions
H
- Haml into HTML / Using CoffeeScript with Brunch
- hashes
- about / A new idiom: options objects
- Homebrew
- about / Installing Node.js on OS X, Using Homebrew
- used, for installing Node.js on OS X / Using Homebrew
I
- IcedCoffeeScript
- about / IcedCoffeeScript
- URL / IcedCoffeeScript
- using, in application / Using IcedCoffeeScript in our application
- idempotent
- about / Using memoization in our application
- if statements
- using / Using if statements
- inheritance
- about / Inheritance
- using, while refactoring / Using inheritance while refactoring
- used, for reducing code duplication / Using inheritance while refactoring
- in keyword / Checking array membership
- installation, CoffeeScript / Installing CoffeeScript
- installation, Node.js
- about / Installing Node.js
- on OS X / Installing Node.js on OS X
- on Windows / Installing Node.js on Windows
- on Linux / Installing Node.js on Linux
- installation, Node.js on Linux
- graphical package manager used / Using a graphical package manager
- command line used / Using the command line
- installation, Node.js on OS X
- installer used / Using the installer
- Homebrew used / Using Homebrew
- Macports used / Using Macports
- installation, Node.js on Windows
- installer used / Using the installer
- standalone executable used / Using the standalone executable
- Chocolatey used / Using Chocolatey
- installer
- used, for installing Node.js on OS X / Using the installer
- used, for installing Node.js on Windows / Using the installer
- IRC channel / Installing Node.js
J
- JavaScript
- classes, building / How CoffeeScript builds classes in JavaScript
- CoffeeScript constructors / CoffeeScript constructors in JavaScript
- JavaScript Object Notation (JSON) / Getting to know our remote API
- jQuery
- about / Loops
- js2coffee utility
- about / Running a server with CoffeeScript
- URL / Running a server with CoffeeScript
- JSTerm
- about / A CoffeeScript console in Firefox
L
- layout
- about / The top-level display logic
- Linux Mint/Ubuntu 12.04 (Precise Pangolin) / Linux Mint/Ubuntu 12.04 (Precise Pangolin)
- loadSeedData function
- about / Adding an endpoint for data
- loop comprehensions
- about / Loop comprehensions
- loops
- about / Loops
M
- --map flag / Working with source maps
- MacPorts
- about / Installing Node.js on OS X, Using Macports
- Macports
- used, for installing Node.js on OS X / Using Macports
- make build tool / Compiling Node.js manually
- memoization
- work, saving with / Saving our work with memoization
- about / Saving our work with memoization
- using, in application / Using memoization in our application
- methods
- attaching, to class / Attaching methods to a class
- about / Attaching methods to a class
- calling, on objects / Calling other methods on this object
- attaching, outside of class definition / Attaching a method outside of the class definition
- calling, on classes / Calling methods statically on classes
- middleware packages / Adding CoffeeScript compilation
- Model-View-Controller (MVC)
- about / The top-level display logic
- MongoDB / Using a database
- multiline mode / Using if statements
- multiple asynchronous calls
- rounding up / Wrangling multiple asynchronous calls
- requests, in loop / Requests in a loop, Determining when we're finished
- multiple values
- assigning, at once / Assigning multiple values at once
- MySQL / Using a database
N
- named arguments
- about / A new idiom: options objects
- new keyword
- about / Defining a class in CoffeeScript
- nightly builds
- about / Source maps in the Firefox developer tools
- Node.js
- installing / Installing Node.js
- installing, on OS X / Installing Node.js on OS X
- installing, on Windows / Installing Node.js on Windows
- installing, on Linux / Installing Node.js on Linux
- compiling, manually / Compiling Node.js manually
- about / Using CoffeeScript with Node.js
- CoffeeScript, using with / Using CoffeeScript with Node.js
- Node.js project
- creating / Creating our project
- server up-to-date, keeping / Keeping the server up-to-date
- CoffeeScript compilation, adding / Adding CoffeeScript compilation
- finishing / Finishing our application
- script dependencies, cleaning / Cleaning up our script dependencies
- Node installation
- testing / Testing our Node installation
- Node installation step
- skipping / Skipping the Node installation step
- npm
- about / Testing npm
- testing / Testing npm
- npm module / Running a server with CoffeeScript
- nStore
- about / Using a database
- URL, for documentation / Using a database
- NuGet
- about / Using Chocolatey
- nulls
- dealing with / Dealing with nulls in our application
- null values
- in chained calls / Null values in chained calls
O
- == operator / Comparison operators
- object properties
- used, for maintaining state / Maintaining state with object properties
- objects
- about / Simple objects
- iterating over / Iterating over objects
- methods, calling on / Calling other methods on this object
- of keyword / Iterating over objects
- options objects
- about / A new idiom: options objects
- using, in application / Using options objects in our application
P
- pet application
- issues, discovering / Discovering a problem
- issues, fixing / Fixing the problem
- pet shop application
- setting up, in Rails / Setting up our application
- CoffeeScript, adding / Adding some CoffeeScript
- Postgres / Using a database
- Powershell
- about / Using Chocolatey
- precedence, calling functions / Precedence
- preprocessor directive
- about / Setting up our application
- project
- fat arrows, using / Using fat arrows in our project
- promises
- about / Promises
- URL / Promises
- using, in application / Using Promises in our application
- prototypal inheritance / How CoffeeScript builds classes in JavaScript
- Python / Compiling Node.js manually
R
- Rails
- CoffeeScript, using with / Using CoffeeScript with Rails
- Rails 3.0
- about / Rails 3.0
- Rails 3.1
- about / Rails 3.1 and 3.2
- Rails 3.2
- about / Rails 3.1 and 3.2
- Rails 4
- about / Rails 4
- Rails application
- creating / Creating a new Rails application
- ranges, arrays / Ranges
- rbenv
- about / Creating a new Rails application
- Redis / Using a database
- refactoring / Refactoring
- refactoring cycle
- about / The refactoring cycle
- refactoring pass / A final refactoring pass
- remote API
- about / Getting to know our remote API
- RequireJS
- about / More data modeling
- Reqwest
- URL / Using a third-party library
- Reqwest library / Using a third-party library
- Riak / Using a database
- RSVP
- about / Using Promises in our application
- URL / Using Promises in our application
- Ruby on Rails
- about / Using CoffeeScript with Rails
- rvm
- about / Creating a new Rails application
S
- Sass into CSS / Using CoffeeScript with Brunch
- Semantic Whitespace
- about / Defining functions
- server
- running, with CoffeeScript / Running a server with CoffeeScript
- single-line form / Single-line form
- SleepSort
- about / Requests in a loop
- URL / Requests in a loop
- source maps
- about / Working with source maps
- working with / Working with source maps
- source maps, Chrome developer tools
- about / Source maps in the Chrome developer tools
- application state, inspecting / Inspecting our application state
- debugger, using / Using the debugger
- source maps, Firefox developer tools
- about / Source maps in the Firefox developer tools
- application state, inspecting / Inspecting our application state
- debugger, using / Using the debugger
- splats
- arguments, accepting with / Accepting a variable number of arguments with splats
- about / Accepting a variable number of arguments with splats
- functions, invoking with / Invoking functions with splats
- using, in application / Using splats in our application
- standalone executable
- used, for installing Node.js on Windows / Using the standalone executable
- state
- maintaining, with object properties / Maintaining state with object properties
- statements
- about / Statements
- static methods / Calling methods statically on classes
- string interpolation
- about / String Interpolation
- using, in application / Using string interpolation in our application
- Sublime Text 2 / Support in Sublime Text 2
- switch statements
- about / Switch statements
- using, in application / Using a switch statement in our application
T
- TextMate / Support in TextMate
- then method / Promises
- third-party library
- using / Using a third-party library
- refactoring / Refactoring
- top-level display logic
- about / The top-level display logic
- Try CoffeeScript tool
- URL / Seeing the compiled JavaScript
U
- Underscore.js
- about / Loops
- unless statement / The unless statement
V
- value
- existence, verifying / Checking if a value exists
- values
- assigning, conditionally / Assigning new values conditionally when null
- variables
- about / Variables
- functions, assigning to / Function naming
- Vim / Support in Vim
W
- watch expression
- about / Using the debugger
- web application
- starting / Starting our web application
- when keyword / Loop comprehensions
- work
- saving, with memoization / Saving our work with memoization