Skip to content

dnagir/spine-extensions

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

Provides handy set of extensions to Spine & Rails Frameworks

Resources

Stars

Watchers

Forks

Packages

No packages published