Top Banner
JavaScript Tooling In Rails 3.1 And how you should be doing it... Saturday, November 12, 2011
40
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: JS Tooling in Rails 3.1

JavaScript ToolingIn Rails 3.1

And how you should be doing it...

Saturday, November 12, 2011

Page 2: JS Tooling in Rails 3.1

@dudadornelles

Saturday, November 12, 2011

Page 3: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 4: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 5: JS Tooling in Rails 3.1

9f09aeb8273177fc2d09ebdafcc76ee8eb56fe33

Saturday, November 12, 2011

Page 6: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 7: JS Tooling in Rails 3.1

http://jashkenas.github.com/coffee-script/

http://gastronomous.files.wordpress.com/2010/03/img_6226.jpg

Saturday, November 12, 2011

Page 8: JS Tooling in Rails 3.1

math = root: Math.sqrt square: square cube: (x) -> x * square x

math = { root: Math.sqrt, square: square, cube: function(x) { return x * square(x); }};

Saturday, November 12, 2011

Page 9: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 10: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 11: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 12: JS Tooling in Rails 3.1

+ .JS =

Saturday, November 12, 2011

Page 13: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 14: JS Tooling in Rails 3.1

Insert broken build picture here

Saturday, November 12, 2011

Page 15: JS Tooling in Rails 3.1

class Ninja constructor: (@numOfShurikens) ->

throwShuriken: -> @numOfShurikens--

class Ronin extends Ninja

constructor: (numOfShurikens) -> super numOfShurikens+1 #ronins know to carry a spare

Saturday, November 12, 2011

Page 16: JS Tooling in Rails 3.1

Debugging... :(

Saturday, November 12, 2011

Page 17: JS Tooling in Rails 3.1

http://getsprockets.org

Saturday, November 12, 2011

Page 18: JS Tooling in Rails 3.1

.JS

.JS .JS

.JS .JS

.JS

.JSYour entire application

Saturday, November 12, 2011

Page 19: JS Tooling in Rails 3.1

.task_controller.js.coffee

#= require taskwindow.MyApp = window.MyApp || {}Task = window.MyApp.Task

class TaskController create: (description) -> Task.save(new Task(description))

.task.js.coffee

window.MyApp = window.MyApp || {}

class Task constructor: (@description) -> @save: (task) -> ...

window.MyApp.Task = Task

Saturday, November 12, 2011

Page 20: JS Tooling in Rails 3.1

+

Saturday, November 12, 2011

Page 21: JS Tooling in Rails 3.1

.coffee

.coffee .coffee

.coffee .coffee

.coffee

.coffee

Saturday, November 12, 2011

Page 22: JS Tooling in Rails 3.1

.coffee

.coffee .coffee

.coffee .coffee

.coffee

.coffee

Single Class

Saturday, November 12, 2011

Page 23: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 24: JS Tooling in Rails 3.1

.coffee

.coffee .coffee

.coffee .coffee

.coffee

.coffeeDOM Interactions

Domain/Business Logic

Saturday, November 12, 2011

Page 25: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 26: JS Tooling in Rails 3.1

COWBOY?

Saturday, November 12, 2011

Page 27: JS Tooling in Rails 3.1

http://pivotal.github.com/jasmine/Saturday, November 12, 2011

Page 28: JS Tooling in Rails 3.1

describe 'Math', ->  describe 'fib', ->    it 'should calculate the numbers correctly up to fib(16)', ->      fib = [0, 1, 1, 2, 3, 5, 8, 13]      expect(Math.fib(i)).toEqual fib[i] for i in [0..7]

describe 'Math' do  describe 'fib' do    it 'should calculate the numbers correctly up to fib(16)'      fib = [0, 1, 1, 2, 3, 5, 8, 13]      (0..7).map { |n| Math.fib(n) }.should == fib end endend

Saturday, November 12, 2011

Page 29: JS Tooling in Rails 3.1

.coffee

.coffee .coffee

.coffee .coffee

.coffee

.coffeeDOM Interactions

Domain/Business Logic

Saturday, November 12, 2011

Page 30: JS Tooling in Rails 3.1

.coffee

.coffee .coffee

.coffee .coffee

.coffee

.coffeeDOM Interactions

Domain/Business Logic

spec spec

specspec

spec

spec

Saturday, November 12, 2011

Page 31: JS Tooling in Rails 3.1

.coffee

.coffee .coffee

.coffee .coffee

.coffee

.coffeeDOM Interactions

Domain/Business Logic

spec spec

specspec

spec

spec

?

Saturday, November 12, 2011

Page 32: JS Tooling in Rails 3.1

TDD

Saturday, November 12, 2011

Page 33: JS Tooling in Rails 3.1

Standard?

Saturday, November 12, 2011

Page 34: JS Tooling in Rails 3.1

+

=

?

+

Saturday, November 12, 2011

Page 36: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 37: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 38: JS Tooling in Rails 3.1

+

Saturday, November 12, 2011

Page 39: JS Tooling in Rails 3.1

Saturday, November 12, 2011

Page 40: JS Tooling in Rails 3.1

Thanks! :)

Saturday, November 12, 2011