turboboost 0.0.5.1 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- M2Q2OTNjMmJmNmVmZWJkMGI0YmYxOTRiMzE3OTk1Y2Y2OTUzM2Q4ZA==
4
+ N2VlY2M0OWI0ZjQ1MDJlYmUwYjViMDI0NmIwNTNjMzhlMGRiNjI3Nw==
5
5
  data.tar.gz: !binary |-
6
- ZDc0YTA2OGM4NDcyMjdlMDQ4NzY5YmMwZjMyYTgwMTJjY2IzYTc0NA==
6
+ NTRmNWNkOTJjN2EwYTFmZDI0ZWI1YWUyMTg0MWJiOGQ4N2E3NjhlMw==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MTE3Yjc2MWIzZGI5YjVlYWRlY2FjZjg2ZDRkZDZiMTAzOTRjN2U0OTVkMzEw
10
- NjM4MmUzMWUyYzhiY2RlNTM1YjJhOTg0OWM1ZDcwMTU4MmJhNGRmYjBhM2Fk
11
- MzZhOWU3YjlhYThkY2E4NDliNThhMjQyMGY5MjMxMWFhODY3Njg=
9
+ ZDkwMGU2YmNiMmY0MmI1ZTlhMzkxN2M0N2ExNzY5M2JjY2Y0ZDA0ZTY3ZTEx
10
+ MDY5YzQwNWJlZjM5YTE1MTdhOGJlNTljMGNlMTQ3ZjkyMDllZjE3YWQzNTgz
11
+ ZWRlZmQzMGFiOWNiYTVhMWZhYTg5YjVkM2Q4OGZiODNmYTVlZGQ=
12
12
  data.tar.gz: !binary |-
13
- MjBiNWRkMGQxMWM3YTVkZGI0NGNkNjc1MThlNWI3MjdmYWQ3ZjdlMmExNDBi
14
- OWRmMTExNzE2ZWZmNWViMGMyYTcwMDlkMmU1NTYxNTAwNjQwMzRkNjc3NTcw
15
- YWFmODQ4ODRhYmE0YTM0YmEzYmFjMTBmMmVlNzMwYjU2OTlmM2I=
13
+ M2U1MWUzZDQ5NDRjMTI0YTRjMmRhYWEwM2RhM2UzMmY0MDE0MDhhMTNhNmJj
14
+ ODhkMzhlMGY3NTAyNGE0ZWU0YzE1ZTYwNmQzNGNkNTJhMTk2YTJjMDUwNzU4
15
+ NDNiNzViMzBiOWI3OGQ1ZDQ2ZDRiNGM2OGIxYTkwZTM5OWY0MjQ=
data/README.md CHANGED
@@ -34,7 +34,7 @@ Turboboost extends the power of Turbolinks into the forms of your Rails app and
34
34
  ### Installation
35
35
 
36
36
  ``` ruby
37
- gem "turboboost", github: "waymondo/turboboost"
37
+ gem "turboboost"
38
38
  ```
39
39
 
40
40
  Put that in your `Gemfile` and `bundle install`. In your `application.js` require it after `jquery_ujs` and `turbolinks`:
@@ -2,7 +2,7 @@
2
2
  insertErrors: false
3
3
  defaultError: "Sorry, there was an error."
4
4
 
5
- turboboost = "form[data-turboboost]"
5
+ turboboostable = "[data-turboboost]"
6
6
  errID = "#error_explanation"
7
7
  errTemplate = (errors) ->
8
8
  "<ul><li>#{$.makeArray(errors).join('</li><li>')}</li></ul>"
@@ -13,7 +13,7 @@ enableForm = ($form) ->
13
13
  disableForm = ($form) ->
14
14
  $form.find("[type='submit']").attr('disabled', 'disabled')
15
15
 
16
- insertErrors = (e, errors) ->
16
+ turboboostFormError = (e, errors) ->
17
17
  return if !Turboboost.insertErrors
18
18
  errors = [Turboboost.defaultError] if !errors.length
19
19
  $form = $(e.target)
@@ -22,6 +22,28 @@ insertErrors = (e, errors) ->
22
22
  $form.prepend $el = $("<div id='#{errID.substr(1)}'></div>")
23
23
  $el.html errTemplate(errors)
24
24
 
25
+ turboboostComplete = (e, resp) ->
26
+ $el = $(@)
27
+ isForm = @nodeName is "FORM"
28
+
29
+ if resp.status in [200..299]
30
+ $el.trigger "turboboost:success", tryJSONParse resp.getResponseHeader('X-Flash')
31
+ if (location = resp.getResponseHeader('Location')) and !$el.attr('data-no-turboboost-redirect')
32
+ Turbolinks.visit(location)
33
+ else
34
+ enableForm $el if isForm
35
+ maybeInsertSuccessResponseBody(resp)
36
+
37
+ if resp.status in [400..599]
38
+ enableForm $el if isForm
39
+ $el.trigger "turboboost:error", tryJSONParse resp.responseText
40
+
41
+ turboboostFormBeforeSend = (e, xhr, settings) ->
42
+ disableForm $(@)
43
+ if settings.type == "GET"
44
+ Turbolinks.visit [@action, $(@).serialize()].join("?")
45
+ return false
46
+
25
47
  tryJSONParse = (str) ->
26
48
  try
27
49
  JSON.parse str
@@ -39,26 +61,8 @@ maybeInsertSuccessResponseBody = (resp) ->
39
61
  $(scope).prepend(resp.responseText)
40
62
 
41
63
  $(document)
42
- .on "ajax:beforeSend", turboboost, (e, xhr, settings) ->
43
- xhr.setRequestHeader('X-Turboboost', '1')
44
- disableForm $(e.target)
45
- if settings.type == "GET"
46
- Turbolinks.visit [@action, $(@).serialize()].join("?")
47
- return false
48
-
49
- .on "ajax:complete", turboboost, (e, resp) ->
50
- $form = $(e.target)
51
-
52
- if resp.status in [200..299]
53
- $form.trigger "turboboost:success", tryJSONParse resp.getResponseHeader('X-Flash')
54
- if (location = resp.getResponseHeader('Location')) and !$form.attr('data-no-turboboost-redirect')
55
- Turbolinks.visit(location)
56
- else
57
- enableForm $form
58
- maybeInsertSuccessResponseBody(resp)
59
-
60
- if resp.status in [400..599]
61
- enableForm $form
62
- $form.trigger "turboboost:error", tryJSONParse resp.responseText
63
-
64
- .on "turboboost:error", insertErrors
64
+ .on("ajax:beforeSend", turboboostable, (e, xhr, settings) ->
65
+ xhr.setRequestHeader('X-Turboboost', '1'))
66
+ .on("ajax:beforeSend", "form#{turboboostable}", turboboostFormBeforeSend)
67
+ .on("ajax:complete", turboboostable, turboboostComplete)
68
+ .on("turboboost:error", "form#{turboboostable}", turboboostFormError)
data/lib/turboboost.rb CHANGED
@@ -132,6 +132,18 @@ module Turboboost
132
132
 
133
133
  form_tag_without_data_turboboost(record_or_name_or_array, *(args << options), &proc)
134
134
  end
135
+
136
+ def convert_options_to_data_attributes(options, html_options)
137
+ if html_options
138
+ html_options = html_options.stringify_keys
139
+ if turboboost = html_options.delete("turboboost")
140
+ html_options["data-remote"] = "true"
141
+ html_options["data-turboboost"] = "true"
142
+ end
143
+ end
144
+ super options, html_options
145
+ end
146
+
135
147
  end
136
148
 
137
149
  class Engine < Rails::Engine
@@ -1,3 +1,3 @@
1
1
  module Turboboost
2
- VERSION = '0.0.5.1'
2
+ VERSION = '0.0.6'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turboboost
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5.1
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Justin Talbott