onrails.org home

railsconf - Day 3

Speaker Slides

Official Photos

Keynote Video and Other Interviews

News and Coverage:

Sproutcore with Yehuda Katz

This are some notes I took at the Sproutcore BOF tonight…

He started working around 9 month ago. Started working on it full time at the beginning of the year. First thing he did was to evaluate how to make the getting started experience better. They switched over to a template model doing views. The biggest thing he will say in regards with template, they automatically update the html when the underlying objects update. Sprout core today do two things, one is to handle event and two, to update the dom. So they will split this in two objects. They are changing the render and update. They will have a plugable UI with a widget layer. A separate layer for Desktop and Mobile. Currently Checkbox, Textbox, and Button are widgets that use templates.

Today they announce Sproutcore 2.0 alpha. It’s a 20k single file with contains the core abstraction. They have a separate library to access the database store that is also 20k, that will provide ActiveRecord like functionality.

Will release a dropin plugin for Rails and Sproutcore to connect automatically to a Rails application to do basic crud.

To install Sproutcore in a rails app you can use a generator which will do the following changes:

In your Gemfile

    gem ‘bulk_api’

In the routes file

    mount Bulk::Spourcore.new => “/_sproutcore”
    builk_routes “/api/build/”

It then created the app/sproutcore folder.

These are a few javascript classes that allow to deal with the Rails integration:

The generator can be used as follows for example to add a ‘projects’ resource:

   rails g bulk:resource projects

Which adds the app/builk/projects_resource.rb. This class manages automatically all the crud operations from javascript. So the client side can auto commit some of the changes and can send multiple statements as one html requests.

Every Tuesday, starting in 2 weeks,  at 10am PST they will have a one hour training session. 


Fork me on GitHub