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 +4 -4
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/Appraisals +1 -0
- data/Gemfile.lock +46 -27
- data/README.md +37 -8
- data/app/assets/javascripts/turboboost.js +4 -0
- data/app/assets/javascripts/{turboboost.js.coffee → turboboost/turboboost.js.coffee} +45 -33
- data/gemfiles/rails_3_2.gemfile +1 -0
- data/lib/turboboost/controller.rb +8 -12
- data/lib/turboboost/version.rb +1 -1
- data/test/controller_test.rb +13 -4
- data/test/support/models.rb +28 -0
- data/test/test_helper.rb +2 -29
- metadata +8 -8
- data/gemfiles/rails_3_2.gemfile.lock +0 -135
- data/gemfiles/rails_4_0.gemfile.lock +0 -116
- data/gemfiles/rails_4_1.gemfile.lock +0 -121
- data/gemfiles/rails_4_2.gemfile.lock +0 -150
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a62f444668b545d3f748164b0a7ad8d0f6ddce5f
|
|
4
|
+
data.tar.gz: 380c2f65d317b85a0597b4fdd529c5bf5fe19511
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 11cff951ad36b13036fd84adf7cd87dbd8664c78b3e6b0572add842b6caab25b4f0c855ad047aa219bb0de37fc5f964f3e3c54c79e54497c7d53ded5d6742971
|
|
7
|
+
data.tar.gz: e8f6dbac731bab61e458176ce116b389a0f5252c6a1081aeb549ecf023dfaacbbd56d3b4906e6cc90487533d66c37dcb80cf99b516afc69dd896d3aeb30b083a
|
data/.gitignore
CHANGED
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruby-2.2.2
|
data/Appraisals
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
turboboost (0.0.
|
|
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
|
|
14
|
-
actionview (= 4.1
|
|
15
|
-
activesupport (= 4.1
|
|
16
|
-
rack (~> 1.
|
|
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
|
-
|
|
19
|
-
|
|
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
|
-
|
|
23
|
-
|
|
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.
|
|
30
|
+
thread_safe (~> 0.3, >= 0.3.4)
|
|
27
31
|
tzinfo (~> 1.1)
|
|
28
32
|
ansi (1.4.3)
|
|
29
|
-
appraisal (
|
|
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.
|
|
43
|
+
coffee-script (2.4.1)
|
|
39
44
|
coffee-script-source
|
|
40
45
|
execjs
|
|
41
|
-
coffee-script-source (1.
|
|
46
|
+
coffee-script-source (1.9.1.1)
|
|
42
47
|
erubis (2.7.0)
|
|
43
|
-
execjs (2.
|
|
44
|
-
i18n (0.
|
|
45
|
-
jquery-rails (
|
|
46
|
-
|
|
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.
|
|
54
|
+
json (1.8.3)
|
|
55
|
+
loofah (2.0.2)
|
|
56
|
+
nokogiri (>= 1.5.9)
|
|
49
57
|
metaclass (0.0.1)
|
|
50
|
-
|
|
58
|
+
mini_portile (0.6.2)
|
|
59
|
+
minitest (5.7.0)
|
|
51
60
|
mocha (0.14.0)
|
|
52
61
|
metaclass (~> 0.0.1)
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
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.
|
|
65
|
-
turbolinks (2.5.
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
```
|
|
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
|
-
```
|
|
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 ####
|
|
@@ -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
|
|
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
|
|
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
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
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
|
data/gemfiles/rails_3_2.gemfile
CHANGED
|
@@ -23,7 +23,7 @@ module Turboboost
|
|
|
23
23
|
end
|
|
24
24
|
|
|
25
25
|
def turboboost_error_handler(error)
|
|
26
|
-
if
|
|
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
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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[
|
|
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
|
-
|
|
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 = {})
|
data/lib/turboboost/version.rb
CHANGED
data/test/controller_test.rb
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
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(
|
|
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-
|
|
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
|
data/test/test_helper.rb
CHANGED
|
@@ -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
|
|
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-
|
|
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
|
|
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.
|
|
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
|