Semicolons are optional
var
is optional
Argument parens are optional
Local variables can be defined using @, such as @local_variable
Implicit 'return'
'function' can also be written as ->
javascript is valid teascript
Example: intake_spec.js
if (typeof jQuery != 'undefined') {
spyOn(jQuery.ajaxSettings, 'xhr').andCallFake(
function() {
var newXhr = new FakeXMLHttpRequest();
ajaxRequests.push(newXhr);
return newXhr;
});
}
Becomes: intake_spec.ts if defined? jQuery spyOn(jQuery.ajaxSettings, 'xhr').andCallFake -> { newXhr = new FakeXMLHttpRequest() ajaxRequests.push newXhr } end
Jasmine tests
it('should unset the "submitting" class on the form', function () {
var request = mostRecentAjaxRequest();
expect($form).toHaveClass('submitting');
request.response(response);
expect($form).not.toHaveClass('submitting');
});
Become it 'should unset the "submitting" class on the form', -> { request = mostRecentAjaxRequest() expect($form).toHaveClass 'submitting' request.response response expect($form).not.toHaveClass 'submitting' }