turboboost 0.0.12 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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