Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Provides handy set of extensions to Spine & Rails Frameworks
Ruby CoffeeScript
Branch: master
Failed to load latest commit information.
app/assets/javascripts added more helpers
lib
.gitignore
Gemfile initial commit, extracted spine-rails PR 5
README.md
Rakefile
spine-extensions.gemspec

README.md

Spine-Extensions

Provides opinionated but a handy set of extensions to the awesome Spine framework.

What does it do?

It gives you a number of useful helpers and utilities to make you a happier programmer and save you some typing. It is supposed to grow with time. So feel free to request what you do very often.

Currently it includes:

Spine.Controller and JST templating bridge

  • @view 'show' = JST['app/views/posts/show']
  • @generate 'show', post = JST['app/views/posts/show'](post)
  • @htmlify 'show', post = @html JST['app/views/posts/show'](post)

Examples:

class App.Users extends Spine.Controller
  elements:
    'form': 'form',
    # You would need elements for the inputs without the helpers:
    'input[name='email']: 'email_input',
    'input[name='name']: 'name_input'

  render: -> @htmlify 'edit', @model

  renderWithNoHelpers: ->
    @html JST['app/views/posts/show'](@model)

  updateModelFromForm: ->
    @model.updateAttributes @form.serializeForm()

  updateModeFromFormWithNoHelpers: ->
    @model.updateAttributes { email: email_input.val(), name: name_input.val() }

jQuery Extensions:

  • jQuery.serializeForm - converts form inputs into JSON object (<input name='email' value='me@example.com'> becomes {email: 'me@example.com'}).

TODO List:

  • Testing helpers: Model.FakeAjax, Simpler JST access, Factories

Setup

This gem requires spine-rails.

If you want to use it standalone, you will have to compile the files inside app/assets/javascripts for now.

Installation

In your Gemfile, add this line:

gem "spine-extensions"

Then run the following commands:

bundle install

bundle exec rails generate spine_extensions:install

If you have a non-default application.js, then instead of running the generator require the extensions via Sprockets:

# from .coffee file
#= require spine-extensions

or

// from .js file
//= require spine-extensions

License

MIT

Something went wrong with that request. Please try again.