Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Newsletter Hub
Free Learning
Arrow right icon
timer SALE ENDS IN
0 Days
:
00 Hours
:
00 Minutes
:
00 Seconds
Arrow up icon
GO TO TOP
CoffeeScript Application Development

You're reading from   CoffeeScript Application Development What JavaScript user wouldn't want to be able to dramatically reduce application development time? This book will teach you the clean, elegant CoffeeScript language and show you how to build stunning applications.

Arrow left icon
Product type Paperback
Published in Aug 2013
Publisher Packt
ISBN-13 9781782162667
Length 258 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Ian Greenleaf Young Ian Greenleaf Young
Author Profile Icon Ian Greenleaf Young
Ian Greenleaf Young
Arrow right icon
View More author details
Toc

Table of Contents (19) Chapters Close

CoffeeScript Application Development
Credits
About the Author
Acknowledgements
About the Reviewers
www.PacktPub.com
Preface
1. Running a CoffeeScript Program FREE CHAPTER 2. Writing Your First Lines of CoffeeScript 3. Building a Simple Application 4. Improving Our Application 5. Classes in CoffeeScript 6. Refactoring with Classes 7. Advanced CoffeeScript Usage 8. Going Asynchronous 9. Debugging 10. Using CoffeeScript in More Places 11. CoffeeScript on the Server Index

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
    / Creating a Brunch project
  • 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
lock icon The rest of the chapter is locked
arrow left Previous Section
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime