turboboost 0.0.12 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 342cf6bee532936cb72f690d7687fc636653d85f
4
- data.tar.gz: 65b2adc80aa8836788c46ed5726d07e3c201cca9
3
+ metadata.gz: a62f444668b545d3f748164b0a7ad8d0f6ddce5f
4
+ data.tar.gz: 380c2f65d317b85a0597b4fdd529c5bf5fe19511
5
5
  SHA512:
6
- metadata.gz: 1ee7efb5e37ca4d706fbaea72ec214e1f14b4fe2df6c924ba97802947f7268f72e0090920236833f0324c6d53acc5e68d51f1de7e4e4bb03c2e1761895b4ce8e
7
- data.tar.gz: 79e898afea4fc256f11815661f0635a6eb37d02adcd0f971c3d5601429eaa3b565aa2774e9b78983409d454e0c5fa8d6fdc16ddf38aa7099e79e6ec503394302
6
+ metadata.gz: 11cff951ad36b13036fd84adf7cd87dbd8664c78b3e6b0572add842b6caab25b4f0c855ad047aa219bb0de37fc5f964f3e3c54c79e54497c7d53ded5d6742971
7
+ data.tar.gz: e8f6dbac731bab61e458176ce116b389a0f5252c6a1081aeb549ecf023dfaacbbd56d3b4906e6cc90487533d66c37dcb80cf99b516afc69dd896d3aeb30b083a
data/.gitignore CHANGED
@@ -1,2 +1,3 @@
1
1
  /*.gem
2
2
  /TAGS
3
+ /gemfiles/*.gemfile.lock
@@ -0,0 +1 @@
1
+ ruby-2.2.2
data/Appraisals CHANGED
@@ -1,5 +1,6 @@
1
1
  appraise 'rails-3-2' do
2
2
  gem 'rails', '~> 3.2.21'
3
+ gem 'test-unit'
3
4
  gem 'strong_parameters'
4
5
  end
5
6
 
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- turboboost (0.0.11)
4
+ turboboost (0.0.12)
5
5
  coffee-rails
6
6
  jquery-rails
7
7
  railties
@@ -10,23 +10,28 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- actionpack (4.1.0)
14
- actionview (= 4.1.0)
15
- activesupport (= 4.1.0)
16
- rack (~> 1.5.2)
13
+ actionpack (4.2.1)
14
+ actionview (= 4.2.1)
15
+ activesupport (= 4.2.1)
16
+ rack (~> 1.6)
17
17
  rack-test (~> 0.6.2)
18
- actionview (4.1.0)
19
- activesupport (= 4.1.0)
18
+ rails-dom-testing (~> 1.0, >= 1.0.5)
19
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
20
+ actionview (4.2.1)
21
+ activesupport (= 4.2.1)
20
22
  builder (~> 3.1)
21
23
  erubis (~> 2.7.0)
22
- activesupport (4.1.0)
23
- i18n (~> 0.6, >= 0.6.9)
24
+ rails-dom-testing (~> 1.0, >= 1.0.5)
25
+ rails-html-sanitizer (~> 1.0, >= 1.0.1)
26
+ activesupport (4.2.1)
27
+ i18n (~> 0.7)
24
28
  json (~> 1.7, >= 1.7.7)
25
29
  minitest (~> 5.1)
26
- thread_safe (~> 0.1)
30
+ thread_safe (~> 0.3, >= 0.3.4)
27
31
  tzinfo (~> 1.1)
28
32
  ansi (1.4.3)
29
- appraisal (1.0.2)
33
+ appraisal (2.0.1)
34
+ activesupport (>= 3.2.21)
30
35
  bundler
31
36
  rake
32
37
  thor (>= 0.14.0)
@@ -35,38 +40,52 @@ GEM
35
40
  coffee-rails (4.1.0)
36
41
  coffee-script (>= 2.2.0)
37
42
  railties (>= 4.0.0, < 5.0)
38
- coffee-script (2.3.0)
43
+ coffee-script (2.4.1)
39
44
  coffee-script-source
40
45
  execjs
41
- coffee-script-source (1.8.0)
46
+ coffee-script-source (1.9.1.1)
42
47
  erubis (2.7.0)
43
- execjs (2.2.2)
44
- i18n (0.6.9)
45
- jquery-rails (3.1.2)
46
- railties (>= 3.0, < 5.0)
48
+ execjs (2.5.2)
49
+ i18n (0.7.0)
50
+ jquery-rails (4.0.3)
51
+ rails-dom-testing (~> 1.0)
52
+ railties (>= 4.2.0)
47
53
  thor (>= 0.14, < 2.0)
48
- json (1.8.1)
54
+ json (1.8.3)
55
+ loofah (2.0.2)
56
+ nokogiri (>= 1.5.9)
49
57
  metaclass (0.0.1)
50
- minitest (5.3.3)
58
+ mini_portile (0.6.2)
59
+ minitest (5.7.0)
51
60
  mocha (0.14.0)
52
61
  metaclass (~> 0.0.1)
53
- rack (1.5.2)
54
- rack-test (0.6.2)
62
+ nokogiri (1.6.6.2)
63
+ mini_portile (~> 0.6.0)
64
+ rack (1.6.1)
65
+ rack-test (0.6.3)
55
66
  rack (>= 1.0)
56
- railties (4.1.0)
57
- actionpack (= 4.1.0)
58
- activesupport (= 4.1.0)
67
+ rails-deprecated_sanitizer (1.0.3)
68
+ activesupport (>= 4.2.0.alpha)
69
+ rails-dom-testing (1.0.6)
70
+ activesupport (>= 4.2.0.beta, < 5.0)
71
+ nokogiri (~> 1.6.0)
72
+ rails-deprecated_sanitizer (>= 1.0.1)
73
+ rails-html-sanitizer (1.0.2)
74
+ loofah (~> 2.0)
75
+ railties (4.2.1)
76
+ actionpack (= 4.2.1)
77
+ activesupport (= 4.2.1)
59
78
  rake (>= 0.8.7)
60
79
  thor (>= 0.18.1, < 2.0)
61
80
  rake (0.9.6)
62
81
  sqlite3 (1.3.10)
63
82
  thor (0.19.1)
64
- thread_safe (0.3.3)
65
- turbolinks (2.5.2)
83
+ thread_safe (0.3.5)
84
+ turbolinks (2.5.3)
66
85
  coffee-rails
67
86
  turn (0.9.6)
68
87
  ansi
69
- tzinfo (1.1.0)
88
+ tzinfo (1.2.2)
70
89
  thread_safe (~> 0.1)
71
90
 
72
91
  PLATFORMS
data/README.md CHANGED
@@ -6,30 +6,57 @@ Turboboost extends the power of Turbolinks into the forms of your Rails app and
6
6
  * Customizable success and error handling through registered JavaScript, with support for Rails' Flash and optional error rendering built-in.
7
7
  * Responses can also be rendered within a scoped DOM target using jQuery selectors.
8
8
 
9
+ ##### Disclaimer #####
10
+
11
+ In recent history [Turbolinks](https://github.com/rails/turbolinks) has started to emulate some of these features with a slightly different approach. I will continue to support this library if people are still finding it useful.
12
+
9
13
  ### Installation ###
10
14
 
11
- In your `Gemfile`:
15
+ ##### In your `Gemfile` #####
12
16
 
13
17
  ``` ruby
14
18
  gem 'turboboost'
15
19
  ```
16
20
 
17
- In your `application.js`:
21
+ Or to live on the very edge:
22
+
23
+ ``` ruby
24
+ gem 'turboboost', github: 'waymondo/turboboost'
25
+ ```
26
+
27
+ Then `bundle install`.
28
+
29
+ ##### In your `application.js` #####
18
30
 
19
31
  ``` javascript
20
32
  //= require turboboost
21
33
  ```
22
34
 
23
- Then in your view files, add `turboboost: true` to your form helpers:
35
+ This will also require jQuery, [jquery-ujs](https://github.com/rails/jquery-ujs), Turbolinks, if not already required. If you wish to register your scripts manually, you can like so:
24
36
 
37
+ ``` javascript
38
+ //= require path/to/vendored/jquery
39
+ //= require jquery_ujs
40
+ //= require turbolinks
41
+ //= require turboboost/turboboost
25
42
  ```
26
- = form_for :resource, turboboost: true do |f| ...
43
+
44
+ ##### In your view files #####
45
+
46
+ Add `turboboost: true` to your form / link helpers:
47
+
48
+ ``` erb
49
+ <%= form_for :resource, turboboost: true do |f| ... %>
50
+
51
+ <%= link_to "Turboboosted Link", resource_path, turboboost: true %>
27
52
  ```
28
53
 
29
- or add the data attribute manually:
54
+ Or you can add the data attribute manually:
30
55
 
31
56
  ```
32
- <form data-remote data-turboboost> ...
57
+ <form data-remote data-turboboost action="/foo"></form>
58
+
59
+ <a data-remote data-turboboost href="/bar"></a>
33
60
  ```
34
61
 
35
62
  ### Redirection with Turbolinks ###
@@ -53,7 +80,7 @@ If a Turboboost form makes a GET request, it will serialize the form's data and
53
80
 
54
81
  To prevent double-clicks on submit buttons from firing the form's action twice, Turboboost comes with automatic form disabling/enabling by default. When you restore a page from Turbolinks' cache, it will re-enable any submit buttons that it had disabled. You can disable this behavior and control your form's submittable state manually with:
55
82
 
56
- ``` coffeescript
83
+ ``` coffee
57
84
  Turboboost.handleFormDisabling = false
58
85
  ```
59
86
 
@@ -61,7 +88,7 @@ Turboboost.handleFormDisabling = false
61
88
 
62
89
  If the post in our example above is invalid, no redirect will happen and a `rescue_from` handler will pass the errors to JavaScript through the `turboboost:error` event:
63
90
 
64
- ``` coffeescript
91
+ ``` coffee
65
92
  $(document).on "turboboost:error", (e, errors) ->
66
93
  console.log(errors) # <- JSON array of errors messages
67
94
  ```
@@ -83,6 +110,8 @@ def create
83
110
  end
84
111
  ```
85
112
 
113
+ To note: If you are rendering a response from a Turboboost-ed form or link, you will need to [specify its rendering scope](https://github.com/waymondo/turboboost#scoped-response-rendering).
114
+
86
115
  Check out the [test controllers](https://github.com/waymondo/turboboost/tree/master/test/controllers) for more examples of controller syntax.
87
116
 
88
117
  #### Automatic error message insertion ####
@@ -0,0 +1,4 @@
1
+ //= require jquery
2
+ //= require jquery_ujs
3
+ //= require turbolinks
4
+ //= require turboboost/turboboost
@@ -1,7 +1,3 @@
1
- #= require jquery
2
- #= require jquery_ujs
3
- #= require turbolinks
4
-
5
1
  @Turboboost =
6
2
  insertErrors: false
7
3
  handleFormDisabling: true
@@ -24,44 +20,52 @@ tryJSONParse = (str) ->
24
20
  catch e
25
21
  null
26
22
 
23
+ insertErrorContainer = ($form) ->
24
+ $el = $("<div id='#{errID.substr(1)}'></div>")
25
+ switch Turboboost.insertErrors
26
+ when "append" then $form.append($el)
27
+ when "beforeSubmit" then $form.find("[type='submit']").before($el)
28
+ when "afterSubmit" then $form.find("[type='submit']").after($el)
29
+ when true then $form.prepend($el)
30
+ else
31
+ if Turboboost.insertErrors.match(/^\W+/)
32
+ $form.find(Turboboost.insertErrors).html($el)
33
+ else
34
+ $form.prepend($el)
35
+ $el
36
+
27
37
  turboboostFormError = (e, errors) ->
28
38
  return if !Turboboost.insertErrors
29
39
  errors = tryJSONParse errors
30
40
  errors = [Turboboost.defaultError] if !errors.length
31
41
  $form = $(e.target)
32
42
  $el = $form.find(errID)
33
- if !$el.length
34
- $el = $("<div id='#{errID.substr(1)}'></div>")
35
- switch Turboboost.insertErrors
36
- when "append" then $form.append($el)
37
- when "beforeSubmit" then $form.find("[type='submit']").before($el)
38
- when "afterSubmit" then $form.find("[type='submit']").after($el)
39
- when true then $form.prepend($el)
40
- else
41
- if Turboboost.insertErrors.match(/^\W+/)
42
- $form.find(Turboboost.insertErrors).html($el)
43
- else
44
- $form.prepend($el)
43
+ $el = insertErrorContainer($form) if !$el.length
45
44
  $el.html errTemplate(errors)
46
45
 
47
46
  turboboostComplete = (e, resp) ->
48
47
  $el = $(@)
49
48
  isForm = @nodeName is "FORM"
50
49
 
51
- if resp.status in [200..299]
50
+ if 200 <= resp.status < 300
52
51
  $el.trigger "turboboost:success", tryJSONParse resp.getResponseHeader('X-Flash')
53
52
  $el.find(errID).remove() if Turboboost.insertErrors and isForm
54
53
  if (location = resp.getResponseHeader('Location')) and !$el.attr('data-no-turboboost-redirect')
54
+ e.preventDefault()
55
+ e.stopPropagation()
55
56
  Turbolinks.visit(location)
57
+ return
56
58
  else
57
59
  enableForm $el if isForm and Turboboost.handleFormDisabling
58
- maybeInsertSuccessResponseBody(resp)
59
-
60
- if resp.status in [400..599]
60
+ $inserted = maybeInsertSuccessResponseBody(resp)
61
+ else if 400 <= resp.status < 600
61
62
  enableForm $el if isForm and Turboboost.handleFormDisabling
62
63
  $el.trigger "turboboost:error", resp.responseText
63
64
 
64
- $el.trigger "turboboost:complete"
65
+ if $.contains(document.documentElement, $el[0])
66
+ $el.trigger "turboboost:complete"
67
+ else
68
+ $inserted.trigger "turboboost:complete"
65
69
 
66
70
  turboboostBeforeSend = (e, xhr, settings) ->
67
71
  xhr.setRequestHeader('X-Turboboost', '1')
@@ -73,19 +77,27 @@ turboboostBeforeSend = (e, xhr, settings) ->
73
77
  Turbolinks.visit [@action, $el.serialize()].join("?")
74
78
  return false
75
79
 
80
+ renderFunctionForOption = (option) ->
81
+ switch option
82
+ when 'within' then 'html'
83
+ when 'replace' then 'replaceWith'
84
+ else
85
+ option
86
+
87
+ restrictResponseToBody = (html) ->
88
+ if /<(html|body)/i.test(html)
89
+ doc = document.documentElement.cloneNode()
90
+ doc.innerHTML = html
91
+ doc.querySelector('body').innerHTML
92
+ else
93
+ html
94
+
76
95
  maybeInsertSuccessResponseBody = (resp) ->
77
- if (scope = resp.getResponseHeader('X-Within'))
78
- $(scope).html(resp.responseText)
79
- else if (scope = resp.getResponseHeader('X-Replace'))
80
- $(scope).replaceWith(resp.responseText)
81
- else if (scope = resp.getResponseHeader('X-Append'))
82
- $(scope).append(resp.responseText)
83
- else if (scope = resp.getResponseHeader('X-Prepend'))
84
- $(scope).prepend(resp.responseText)
85
- else if (scope = resp.getResponseHeader('X-Before'))
86
- $(scope).before(resp.responseText)
87
- else if (scope = resp.getResponseHeader('X-After'))
88
- $(scope).after(resp.responseText)
96
+ return unless (header = tryJSONParse(resp.getResponseHeader('X-Turboboost-Render')))
97
+ html = restrictResponseToBody(resp.responseText)
98
+ renderOption = Object.keys(header)[0]
99
+ renderFunction = renderFunctionForOption(renderOption)
100
+ $(header[renderOption])[renderFunction](html)
89
101
 
90
102
  maybeReenableForms = ->
91
103
  return unless Turboboost.handleFormDisabling
@@ -8,6 +8,7 @@ gem "awesome_print"
8
8
  gem "sqlite3"
9
9
  gem "appraisal"
10
10
  gem "rails", "~> 3.2.21"
11
+ gem "test-unit"
11
12
  gem "strong_parameters"
12
13
 
13
14
  gemspec :path => "../"
@@ -23,7 +23,7 @@ module Turboboost
23
23
  end
24
24
 
25
25
  def turboboost_error_handler(error)
26
- if request.xhr? && request.headers['HTTP_X_TURBOBOOST']
26
+ if turboboost_request?
27
27
  error_status = CATCHABLE_ERRORS[error.class.name]
28
28
  response.headers['X-Turboboosted'] = '1'
29
29
  if defined?(error.record)
@@ -48,17 +48,17 @@ module Turboboost
48
48
  end
49
49
 
50
50
  def render(*args, &block)
51
- if request.xhr? && request.headers['HTTP_X_TURBOBOOST']
52
- turboboost_render(*args, &block)
53
- else
54
- super
55
- end
51
+ turboboost_request? ? turboboost_render(*args, &block) : super
52
+ end
53
+
54
+ def turboboost_request?
55
+ request.xhr? && request.headers['HTTP_X_TURBOBOOST']
56
56
  end
57
57
 
58
58
  def turboboost_render(*args, &block)
59
59
  options = _normalize_render(*args, &block)
60
60
  [:replace, :within, :append, :prepend, :before, :after].each do |h|
61
- response.headers["X-#{h.capitalize}"] = options[h] if options[h]
61
+ response.headers['X-Turboboost-Render'] = { h => options[h] }.to_json if options[h]
62
62
  end
63
63
  response.headers['X-Flash'] = _turboboost_get_flash_messages(options).to_json
64
64
  response.headers['X-Turboboosted'] = '1'
@@ -66,11 +66,7 @@ module Turboboost
66
66
  end
67
67
 
68
68
  def redirect_to(options = {}, response_status_and_flash = {})
69
- if request.xhr? && request.headers['HTTP_X_TURBOBOOST']
70
- turboboost_redirect_to(options, response_status_and_flash)
71
- else
72
- super
73
- end
69
+ turboboost_request? ? turboboost_redirect_to(options, response_status_and_flash) : super
74
70
  end
75
71
 
76
72
  def turboboost_redirect_to(options = {}, response_status_and_flash = {})
@@ -1,3 +1,3 @@
1
1
  module Turboboost
2
- VERSION = '0.0.12'
2
+ VERSION = '0.1.0'
3
3
  end
@@ -11,7 +11,11 @@ class PostsControllerTest < ActionController::TestCase
11
11
  test 'On a successful turboboost request, return an empty response with headers containing the redirect location and flash message' do
12
12
  xhr :post, :create, post: { title: 'Foobar', user_id: '1' }
13
13
 
14
- assert @response.body.strip.blank?
14
+ if Rails.version =~ /^4/
15
+ assert_equal @response.body.strip.blank?, true
16
+ else
17
+ assert_redirected_to 'http://test.host/posts'
18
+ end
15
19
  assert_equal flash[:notice], 'Post was successfully created.'
16
20
  assert_equal @response.headers['Location'], posts_url
17
21
  assert_equal JSON.parse(@response.headers['X-Flash'])['notice'], 'Post was successfully created.'
@@ -40,9 +44,14 @@ class UsersControllerTest < ActionController::TestCase
40
44
  test 'On a successful turboboost request, return an empty response with headers containing the redirect location and flash message' do
41
45
  xhr :post, :create, user: { name: 'Mike', email: 'mike@mike.com' }
42
46
 
43
- assert_equal @response.body.strip.blank?, true
47
+ if Rails.version =~ /^4/
48
+ assert_equal @response.body.strip.blank?, true
49
+ else
50
+ assert_redirected_to 'http://test.host/users/1'
51
+ end
44
52
  assert_equal flash[:notice], 'User was successfully created.'
45
53
  assert_equal @response.headers['Location'], user_url(1)
54
+
46
55
  assert_equal JSON.parse(@response.headers['X-Flash'])['notice'], 'User was successfully created.'
47
56
  end
48
57
 
@@ -63,7 +72,7 @@ class ItemsControllerTest < ActionController::TestCase
63
72
 
64
73
  test 'On a failed turboboost get request, return custom internationalization messaging' do
65
74
  xhr :get, :show, id: 123
66
- i18n_message = I18n.t("turboboost.errors.ActiveRecord::RecordNotFound")
75
+ i18n_message = I18n.t('turboboost.errors.ActiveRecord::RecordNotFound')
67
76
  assert_equal @response.body.strip, [i18n_message].to_json
68
77
  end
69
78
 
@@ -72,7 +81,7 @@ class ItemsControllerTest < ActionController::TestCase
72
81
 
73
82
  assert_equal @response.headers['Location'], nil
74
83
  assert_equal JSON.parse(@response.headers['X-Flash'])['notice'], 'Item was successfully created.'
75
- assert_equal @response.headers['X-Within'], '#sidebar'
84
+ assert_equal @response.headers['X-Turboboost-Render'], { within: '#sidebar' }.to_json
76
85
  assert_equal @response.body.strip, "<div id=\"item\">Bottle</div>"
77
86
  end
78
87
 
@@ -0,0 +1,28 @@
1
+ posts_table = %{CREATE TABLE posts (id INTEGER PRIMARY KEY, title VARCHAR(5), user_id INTEGER);}
2
+ ActiveRecord::Base.connection.execute(posts_table)
3
+
4
+ class Post < ActiveRecord::Base
5
+ attr_accessor :title, :user_id
6
+
7
+ validates :title, length: { minimum: 5, message: 'is too short.' }
8
+ validates :user_id, presence: true
9
+ end
10
+
11
+ users_table = %{CREATE TABLE users (id INTEGER PRIMARY KEY, name VARCHAR(5), email VARCHAR(255));}
12
+ ActiveRecord::Base.connection.execute(users_table)
13
+
14
+ class User < ActiveRecord::Base
15
+ attr_accessor :name, :email
16
+
17
+ validates :name, presence: true
18
+ validates :email, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, allow_blank: false }
19
+ end
20
+
21
+ items_table = %{CREATE TABLE items (id INTEGER PRIMARY KEY, name VARCHAR(5));}
22
+ ActiveRecord::Base.connection.execute(items_table)
23
+
24
+ class Item < ActiveRecord::Base
25
+ attr_accessor :name
26
+
27
+ validates :name, presence: true
28
+ end
@@ -25,6 +25,8 @@ class TestApp < Rails::Application; end
25
25
  Rails.application = TestApp
26
26
  Rails.configuration.secret_key_base = 'abc123'
27
27
 
28
+ require 'support/models'
29
+
28
30
  Turboboost::Routes = ActionDispatch::Routing::RouteSet.new
29
31
  Turboboost::Routes.draw do
30
32
  resources 'posts'
@@ -54,32 +56,3 @@ class ActionView::TestCase
54
56
  @controller = ApplicationController
55
57
  end
56
58
  end
57
-
58
- posts_table = %{CREATE TABLE posts (id INTEGER PRIMARY KEY, title VARCHAR(5), user_id INTEGER);}
59
- ActiveRecord::Base.connection.execute(posts_table)
60
-
61
- class Post < ActiveRecord::Base
62
- attr_accessor :title, :user_id
63
-
64
- validates :title, length: { minimum: 5, message: 'is too short.' }
65
- validates :user_id, presence: true
66
- end
67
-
68
- users_table = %{CREATE TABLE users (id INTEGER PRIMARY KEY, name VARCHAR(5), email VARCHAR(255));}
69
- ActiveRecord::Base.connection.execute(users_table)
70
-
71
- class User < ActiveRecord::Base
72
- attr_accessor :name, :email
73
-
74
- validates :name, presence: true
75
- validates :email, format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, allow_blank: false }
76
- end
77
-
78
- items_table = %{CREATE TABLE items (id INTEGER PRIMARY KEY, name VARCHAR(5));}
79
- ActiveRecord::Base.connection.execute(items_table)
80
-
81
- class Item < ActiveRecord::Base
82
- attr_accessor :name
83
-
84
- validates :name, presence: true
85
- end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turboboost
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.12
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Talbott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-15 00:00:00.000000000 Z
11
+ date: 2015-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: railties
@@ -102,20 +102,18 @@ extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
104
  - ".gitignore"
105
+ - ".ruby-version"
105
106
  - Appraisals
106
107
  - Gemfile
107
108
  - Gemfile.lock
108
109
  - README.md
109
110
  - Rakefile
110
- - app/assets/javascripts/turboboost.js.coffee
111
+ - app/assets/javascripts/turboboost.js
112
+ - app/assets/javascripts/turboboost/turboboost.js.coffee
111
113
  - gemfiles/rails_3_2.gemfile
112
- - gemfiles/rails_3_2.gemfile.lock
113
114
  - gemfiles/rails_4_0.gemfile
114
- - gemfiles/rails_4_0.gemfile.lock
115
115
  - gemfiles/rails_4_1.gemfile
116
- - gemfiles/rails_4_1.gemfile.lock
117
116
  - gemfiles/rails_4_2.gemfile
118
- - gemfiles/rails_4_2.gemfile.lock
119
117
  - lib/turboboost.rb
120
118
  - lib/turboboost/controller.rb
121
119
  - lib/turboboost/form_helper.rb
@@ -125,6 +123,7 @@ files:
125
123
  - test/controllers/posts_controller.rb
126
124
  - test/controllers/users_controller.rb
127
125
  - test/locales/en.yml
126
+ - test/support/models.rb
128
127
  - test/test_helper.rb
129
128
  - test/view_test.rb
130
129
  - test/views/items/show.html.erb
@@ -149,7 +148,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
149
148
  version: '0'
150
149
  requirements: []
151
150
  rubyforge_project:
152
- rubygems_version: 2.0.14
151
+ rubygems_version: 2.4.5
153
152
  signing_key:
154
153
  specification_version: 4
155
154
  summary: Turboboost extends the power of Turbolinks into the forms of your Rails app
@@ -160,6 +159,7 @@ test_files:
160
159
  - test/controllers/posts_controller.rb
161
160
  - test/controllers/users_controller.rb
162
161
  - test/locales/en.yml
162
+ - test/support/models.rb
163
163
  - test/test_helper.rb
164
164
  - test/view_test.rb
165
165
  - test/views/items/show.html.erb
@@ -1,135 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- turboboost (0.0.11)
5
- coffee-rails
6
- jquery-rails
7
- railties
8
- turbolinks
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- actionmailer (3.2.21)
14
- actionpack (= 3.2.21)
15
- mail (~> 2.5.4)
16
- actionpack (3.2.21)
17
- activemodel (= 3.2.21)
18
- activesupport (= 3.2.21)
19
- builder (~> 3.0.0)
20
- erubis (~> 2.7.0)
21
- journey (~> 1.0.4)
22
- rack (~> 1.4.5)
23
- rack-cache (~> 1.2)
24
- rack-test (~> 0.6.1)
25
- sprockets (~> 2.2.1)
26
- activemodel (3.2.21)
27
- activesupport (= 3.2.21)
28
- builder (~> 3.0.0)
29
- activerecord (3.2.21)
30
- activemodel (= 3.2.21)
31
- activesupport (= 3.2.21)
32
- arel (~> 3.0.2)
33
- tzinfo (~> 0.3.29)
34
- activeresource (3.2.21)
35
- activemodel (= 3.2.21)
36
- activesupport (= 3.2.21)
37
- activesupport (3.2.21)
38
- i18n (~> 0.6, >= 0.6.4)
39
- multi_json (~> 1.0)
40
- ansi (1.5.0)
41
- appraisal (1.0.2)
42
- bundler
43
- rake
44
- thor (>= 0.14.0)
45
- arel (3.0.3)
46
- awesome_print (1.6.1)
47
- builder (3.0.4)
48
- coffee-rails (3.2.2)
49
- coffee-script (>= 2.2.0)
50
- railties (~> 3.2.0)
51
- coffee-script (2.3.0)
52
- coffee-script-source
53
- execjs
54
- coffee-script-source (1.8.0)
55
- erubis (2.7.0)
56
- execjs (2.2.2)
57
- hike (1.2.3)
58
- i18n (0.7.0)
59
- journey (1.0.4)
60
- jquery-rails (3.1.2)
61
- railties (>= 3.0, < 5.0)
62
- thor (>= 0.14, < 2.0)
63
- json (1.8.2)
64
- mail (2.5.4)
65
- mime-types (~> 1.16)
66
- treetop (~> 1.4.8)
67
- metaclass (0.0.4)
68
- mime-types (1.25.1)
69
- minitest (4.7.5)
70
- mocha (1.1.0)
71
- metaclass (~> 0.0.1)
72
- multi_json (1.10.1)
73
- polyglot (0.3.5)
74
- rack (1.4.5)
75
- rack-cache (1.2)
76
- rack (>= 0.4)
77
- rack-ssl (1.3.4)
78
- rack
79
- rack-test (0.6.3)
80
- rack (>= 1.0)
81
- rails (3.2.21)
82
- actionmailer (= 3.2.21)
83
- actionpack (= 3.2.21)
84
- activerecord (= 3.2.21)
85
- activeresource (= 3.2.21)
86
- activesupport (= 3.2.21)
87
- bundler (~> 1.0)
88
- railties (= 3.2.21)
89
- railties (3.2.21)
90
- actionpack (= 3.2.21)
91
- activesupport (= 3.2.21)
92
- rack-ssl (~> 1.3.2)
93
- rake (>= 0.8.7)
94
- rdoc (~> 3.4)
95
- thor (>= 0.14.6, < 2.0)
96
- rake (0.9.6)
97
- rdoc (3.12.2)
98
- json (~> 1.4)
99
- sprockets (2.2.3)
100
- hike (~> 1.2)
101
- multi_json (~> 1.0)
102
- rack (~> 1.0)
103
- tilt (~> 1.1, != 1.3.0)
104
- sqlite3 (1.3.10)
105
- strong_parameters (0.2.3)
106
- actionpack (~> 3.0)
107
- activemodel (~> 3.0)
108
- activesupport (~> 3.0)
109
- railties (~> 3.0)
110
- thor (0.19.1)
111
- tilt (1.4.1)
112
- treetop (1.4.15)
113
- polyglot
114
- polyglot (>= 0.3.1)
115
- turbolinks (2.5.3)
116
- coffee-rails
117
- turn (0.9.7)
118
- ansi
119
- minitest (~> 4)
120
- tzinfo (0.3.42)
121
-
122
- PLATFORMS
123
- ruby
124
-
125
- DEPENDENCIES
126
- appraisal
127
- awesome_print
128
- bundler (~> 1.3)
129
- mocha
130
- rails (~> 3.2.21)
131
- rake (~> 0)
132
- sqlite3
133
- strong_parameters
134
- turboboost!
135
- turn
@@ -1,116 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- turboboost (0.0.11)
5
- coffee-rails
6
- jquery-rails
7
- railties
8
- turbolinks
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- actionmailer (4.0.13)
14
- actionpack (= 4.0.13)
15
- mail (~> 2.5, >= 2.5.4)
16
- actionpack (4.0.13)
17
- activesupport (= 4.0.13)
18
- builder (~> 3.1.0)
19
- erubis (~> 2.7.0)
20
- rack (~> 1.5.2)
21
- rack-test (~> 0.6.2)
22
- activemodel (4.0.13)
23
- activesupport (= 4.0.13)
24
- builder (~> 3.1.0)
25
- activerecord (4.0.13)
26
- activemodel (= 4.0.13)
27
- activerecord-deprecated_finders (~> 1.0.2)
28
- activesupport (= 4.0.13)
29
- arel (~> 4.0.0)
30
- activerecord-deprecated_finders (1.0.3)
31
- activesupport (4.0.13)
32
- i18n (~> 0.6, >= 0.6.9)
33
- minitest (~> 4.2)
34
- multi_json (~> 1.3)
35
- thread_safe (~> 0.1)
36
- tzinfo (~> 0.3.37)
37
- ansi (1.5.0)
38
- appraisal (1.0.2)
39
- bundler
40
- rake
41
- thor (>= 0.14.0)
42
- arel (4.0.2)
43
- awesome_print (1.6.1)
44
- builder (3.1.4)
45
- coffee-rails (4.1.0)
46
- coffee-script (>= 2.2.0)
47
- railties (>= 4.0.0, < 5.0)
48
- coffee-script (2.3.0)
49
- coffee-script-source
50
- execjs
51
- coffee-script-source (1.8.0)
52
- erubis (2.7.0)
53
- execjs (2.2.2)
54
- hike (1.2.3)
55
- i18n (0.7.0)
56
- jquery-rails (3.1.2)
57
- railties (>= 3.0, < 5.0)
58
- thor (>= 0.14, < 2.0)
59
- mail (2.6.3)
60
- mime-types (>= 1.16, < 3)
61
- metaclass (0.0.4)
62
- mime-types (2.4.3)
63
- minitest (4.7.5)
64
- mocha (1.1.0)
65
- metaclass (~> 0.0.1)
66
- multi_json (1.10.1)
67
- rack (1.5.2)
68
- rack-test (0.6.3)
69
- rack (>= 1.0)
70
- rails (4.0.13)
71
- actionmailer (= 4.0.13)
72
- actionpack (= 4.0.13)
73
- activerecord (= 4.0.13)
74
- activesupport (= 4.0.13)
75
- bundler (>= 1.3.0, < 2.0)
76
- railties (= 4.0.13)
77
- sprockets-rails (~> 2.0)
78
- railties (4.0.13)
79
- actionpack (= 4.0.13)
80
- activesupport (= 4.0.13)
81
- rake (>= 0.8.7)
82
- thor (>= 0.18.1, < 2.0)
83
- rake (0.9.6)
84
- sprockets (2.12.3)
85
- hike (~> 1.2)
86
- multi_json (~> 1.0)
87
- rack (~> 1.0)
88
- tilt (~> 1.1, != 1.3.0)
89
- sprockets-rails (2.2.2)
90
- actionpack (>= 3.0)
91
- activesupport (>= 3.0)
92
- sprockets (>= 2.8, < 4.0)
93
- sqlite3 (1.3.10)
94
- thor (0.19.1)
95
- thread_safe (0.3.4)
96
- tilt (1.4.1)
97
- turbolinks (2.5.3)
98
- coffee-rails
99
- turn (0.9.7)
100
- ansi
101
- minitest (~> 4)
102
- tzinfo (0.3.42)
103
-
104
- PLATFORMS
105
- ruby
106
-
107
- DEPENDENCIES
108
- appraisal
109
- awesome_print
110
- bundler (~> 1.3)
111
- mocha
112
- rails (~> 4.0.13)
113
- rake (~> 0)
114
- sqlite3
115
- turboboost!
116
- turn
@@ -1,121 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- turboboost (0.0.11)
5
- coffee-rails
6
- jquery-rails
7
- railties
8
- turbolinks
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- actionmailer (4.1.9)
14
- actionpack (= 4.1.9)
15
- actionview (= 4.1.9)
16
- mail (~> 2.5, >= 2.5.4)
17
- actionpack (4.1.9)
18
- actionview (= 4.1.9)
19
- activesupport (= 4.1.9)
20
- rack (~> 1.5.2)
21
- rack-test (~> 0.6.2)
22
- actionview (4.1.9)
23
- activesupport (= 4.1.9)
24
- builder (~> 3.1)
25
- erubis (~> 2.7.0)
26
- activemodel (4.1.9)
27
- activesupport (= 4.1.9)
28
- builder (~> 3.1)
29
- activerecord (4.1.9)
30
- activemodel (= 4.1.9)
31
- activesupport (= 4.1.9)
32
- arel (~> 5.0.0)
33
- activesupport (4.1.9)
34
- i18n (~> 0.6, >= 0.6.9)
35
- json (~> 1.7, >= 1.7.7)
36
- minitest (~> 5.1)
37
- thread_safe (~> 0.1)
38
- tzinfo (~> 1.1)
39
- ansi (1.5.0)
40
- appraisal (1.0.2)
41
- bundler
42
- rake
43
- thor (>= 0.14.0)
44
- arel (5.0.1.20140414130214)
45
- awesome_print (1.6.1)
46
- builder (3.2.2)
47
- coffee-rails (4.1.0)
48
- coffee-script (>= 2.2.0)
49
- railties (>= 4.0.0, < 5.0)
50
- coffee-script (2.3.0)
51
- coffee-script-source
52
- execjs
53
- coffee-script-source (1.8.0)
54
- erubis (2.7.0)
55
- execjs (2.2.2)
56
- hike (1.2.3)
57
- i18n (0.7.0)
58
- jquery-rails (3.1.2)
59
- railties (>= 3.0, < 5.0)
60
- thor (>= 0.14, < 2.0)
61
- json (1.8.2)
62
- mail (2.6.3)
63
- mime-types (>= 1.16, < 3)
64
- metaclass (0.0.4)
65
- mime-types (2.4.3)
66
- minitest (5.5.1)
67
- mocha (1.1.0)
68
- metaclass (~> 0.0.1)
69
- multi_json (1.10.1)
70
- rack (1.5.2)
71
- rack-test (0.6.3)
72
- rack (>= 1.0)
73
- rails (4.1.9)
74
- actionmailer (= 4.1.9)
75
- actionpack (= 4.1.9)
76
- actionview (= 4.1.9)
77
- activemodel (= 4.1.9)
78
- activerecord (= 4.1.9)
79
- activesupport (= 4.1.9)
80
- bundler (>= 1.3.0, < 2.0)
81
- railties (= 4.1.9)
82
- sprockets-rails (~> 2.0)
83
- railties (4.1.9)
84
- actionpack (= 4.1.9)
85
- activesupport (= 4.1.9)
86
- rake (>= 0.8.7)
87
- thor (>= 0.18.1, < 2.0)
88
- rake (0.9.6)
89
- sprockets (2.12.3)
90
- hike (~> 1.2)
91
- multi_json (~> 1.0)
92
- rack (~> 1.0)
93
- tilt (~> 1.1, != 1.3.0)
94
- sprockets-rails (2.2.2)
95
- actionpack (>= 3.0)
96
- activesupport (>= 3.0)
97
- sprockets (>= 2.8, < 4.0)
98
- sqlite3 (1.3.10)
99
- thor (0.19.1)
100
- thread_safe (0.3.4)
101
- tilt (1.4.1)
102
- turbolinks (2.5.3)
103
- coffee-rails
104
- turn (0.9.6)
105
- ansi
106
- tzinfo (1.2.2)
107
- thread_safe (~> 0.1)
108
-
109
- PLATFORMS
110
- ruby
111
-
112
- DEPENDENCIES
113
- appraisal
114
- awesome_print
115
- bundler (~> 1.3)
116
- mocha
117
- rails (~> 4.1.9)
118
- rake (~> 0)
119
- sqlite3
120
- turboboost!
121
- turn
@@ -1,150 +0,0 @@
1
- PATH
2
- remote: ../
3
- specs:
4
- turboboost (0.0.11)
5
- coffee-rails
6
- jquery-rails
7
- railties
8
- turbolinks
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- actionmailer (4.2.0)
14
- actionpack (= 4.2.0)
15
- actionview (= 4.2.0)
16
- activejob (= 4.2.0)
17
- mail (~> 2.5, >= 2.5.4)
18
- rails-dom-testing (~> 1.0, >= 1.0.5)
19
- actionpack (4.2.0)
20
- actionview (= 4.2.0)
21
- activesupport (= 4.2.0)
22
- rack (~> 1.6.0)
23
- rack-test (~> 0.6.2)
24
- rails-dom-testing (~> 1.0, >= 1.0.5)
25
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
26
- actionview (4.2.0)
27
- activesupport (= 4.2.0)
28
- builder (~> 3.1)
29
- erubis (~> 2.7.0)
30
- rails-dom-testing (~> 1.0, >= 1.0.5)
31
- rails-html-sanitizer (~> 1.0, >= 1.0.1)
32
- activejob (4.2.0)
33
- activesupport (= 4.2.0)
34
- globalid (>= 0.3.0)
35
- activemodel (4.2.0)
36
- activesupport (= 4.2.0)
37
- builder (~> 3.1)
38
- activerecord (4.2.0)
39
- activemodel (= 4.2.0)
40
- activesupport (= 4.2.0)
41
- arel (~> 6.0)
42
- activesupport (4.2.0)
43
- i18n (~> 0.7)
44
- json (~> 1.7, >= 1.7.7)
45
- minitest (~> 5.1)
46
- thread_safe (~> 0.3, >= 0.3.4)
47
- tzinfo (~> 1.1)
48
- ansi (1.5.0)
49
- appraisal (1.0.2)
50
- bundler
51
- rake
52
- thor (>= 0.14.0)
53
- arel (6.0.0)
54
- awesome_print (1.6.1)
55
- builder (3.2.2)
56
- coffee-rails (4.1.0)
57
- coffee-script (>= 2.2.0)
58
- railties (>= 4.0.0, < 5.0)
59
- coffee-script (2.3.0)
60
- coffee-script-source
61
- execjs
62
- coffee-script-source (1.8.0)
63
- erubis (2.7.0)
64
- execjs (2.2.2)
65
- globalid (0.3.0)
66
- activesupport (>= 4.1.0)
67
- hike (1.2.3)
68
- i18n (0.7.0)
69
- jquery-rails (4.0.3)
70
- rails-dom-testing (~> 1.0)
71
- railties (>= 4.2.0)
72
- thor (>= 0.14, < 2.0)
73
- json (1.8.2)
74
- loofah (2.0.1)
75
- nokogiri (>= 1.5.9)
76
- mail (2.6.3)
77
- mime-types (>= 1.16, < 3)
78
- metaclass (0.0.4)
79
- mime-types (2.4.3)
80
- mini_portile (0.6.2)
81
- minitest (5.5.1)
82
- mocha (1.1.0)
83
- metaclass (~> 0.0.1)
84
- multi_json (1.10.1)
85
- nokogiri (1.6.5)
86
- mini_portile (~> 0.6.0)
87
- rack (1.6.0)
88
- rack-test (0.6.3)
89
- rack (>= 1.0)
90
- rails (4.2.0)
91
- actionmailer (= 4.2.0)
92
- actionpack (= 4.2.0)
93
- actionview (= 4.2.0)
94
- activejob (= 4.2.0)
95
- activemodel (= 4.2.0)
96
- activerecord (= 4.2.0)
97
- activesupport (= 4.2.0)
98
- bundler (>= 1.3.0, < 2.0)
99
- railties (= 4.2.0)
100
- sprockets-rails
101
- rails-deprecated_sanitizer (1.0.3)
102
- activesupport (>= 4.2.0.alpha)
103
- rails-dom-testing (1.0.5)
104
- activesupport (>= 4.2.0.beta, < 5.0)
105
- nokogiri (~> 1.6.0)
106
- rails-deprecated_sanitizer (>= 1.0.1)
107
- rails-html-sanitizer (1.0.1)
108
- loofah (~> 2.0)
109
- railties (4.2.0)
110
- actionpack (= 4.2.0)
111
- activesupport (= 4.2.0)
112
- rake (>= 0.8.7)
113
- thor (>= 0.18.1, < 2.0)
114
- rake (0.9.6)
115
- responders (2.0.2)
116
- railties (>= 4.2.0.alpha, < 5)
117
- sprockets (2.12.3)
118
- hike (~> 1.2)
119
- multi_json (~> 1.0)
120
- rack (~> 1.0)
121
- tilt (~> 1.1, != 1.3.0)
122
- sprockets-rails (2.2.2)
123
- actionpack (>= 3.0)
124
- activesupport (>= 3.0)
125
- sprockets (>= 2.8, < 4.0)
126
- sqlite3 (1.3.10)
127
- thor (0.19.1)
128
- thread_safe (0.3.4)
129
- tilt (1.4.1)
130
- turbolinks (2.5.3)
131
- coffee-rails
132
- turn (0.9.6)
133
- ansi
134
- tzinfo (1.2.2)
135
- thread_safe (~> 0.1)
136
-
137
- PLATFORMS
138
- ruby
139
-
140
- DEPENDENCIES
141
- appraisal
142
- awesome_print
143
- bundler (~> 1.3)
144
- mocha
145
- rails (~> 4.2.0)
146
- rake (~> 0)
147
- responders (~> 2.0)
148
- sqlite3
149
- turboboost!
150
- turn