upjs-rails 0.17.0 → 0.18.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +46 -1
  3. data/dist/up.js +929 -374
  4. data/dist/up.min.js +2 -2
  5. data/lib/assets/javascripts/up/browser.js.coffee +31 -14
  6. data/lib/assets/javascripts/up/bus.js.coffee +87 -22
  7. data/lib/assets/javascripts/up/flow.js.coffee +119 -43
  8. data/lib/assets/javascripts/up/form.js.coffee +188 -57
  9. data/lib/assets/javascripts/up/link.js.coffee +57 -21
  10. data/lib/assets/javascripts/up/modal.js.coffee +77 -63
  11. data/lib/assets/javascripts/up/motion.js.coffee +10 -9
  12. data/lib/assets/javascripts/up/popup.js.coffee +54 -40
  13. data/lib/assets/javascripts/up/proxy.js.coffee +46 -17
  14. data/lib/assets/javascripts/up/rails.js.coffee +22 -4
  15. data/lib/assets/javascripts/up/syntax.js.coffee +2 -2
  16. data/lib/assets/javascripts/up/util.js.coffee +100 -16
  17. data/lib/upjs/rails/inspector.rb +3 -3
  18. data/lib/upjs/rails/version.rb +1 -1
  19. data/spec_app/Gemfile.lock +1 -4
  20. data/spec_app/app/controllers/test_controller.rb +2 -2
  21. data/spec_app/spec/controllers/test_controller_spec.rb +5 -5
  22. data/spec_app/spec/javascripts/helpers/browser_switches.js.coffee +9 -0
  23. data/spec_app/spec/javascripts/helpers/knife.js.coffee +0 -1
  24. data/spec_app/spec/javascripts/helpers/reset_path.js.coffee +4 -5
  25. data/spec_app/spec/javascripts/helpers/to_be_present.js.coffee +5 -0
  26. data/spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee +8 -0
  27. data/spec_app/spec/javascripts/up/bus_spec.js.coffee +26 -0
  28. data/spec_app/spec/javascripts/up/flow_spec.js.coffee +203 -91
  29. data/spec_app/spec/javascripts/up/form_spec.js.coffee +244 -49
  30. data/spec_app/spec/javascripts/up/history_spec.js.coffee +8 -2
  31. data/spec_app/spec/javascripts/up/link_spec.js.coffee +83 -30
  32. data/spec_app/spec/javascripts/up/modal_spec.js.coffee +23 -17
  33. data/spec_app/spec/javascripts/up/motion_spec.js.coffee +4 -4
  34. data/spec_app/spec/javascripts/up/navigation_spec.js.coffee +1 -1
  35. data/spec_app/spec/javascripts/up/popup_spec.js.coffee +26 -16
  36. data/spec_app/spec/javascripts/up/proxy_spec.js.coffee +45 -13
  37. data/spec_app/spec/javascripts/up/rails_spec.js.coffee +48 -0
  38. data/spec_app/spec/javascripts/up/util_spec.js.coffee +48 -0
  39. metadata +5 -2
@@ -51,3 +51,51 @@ describe 'up.rails', ->
51
51
  $element = affix("span[#{upAttribute}][data-method=\"put\"]")
52
52
  up.hello($element)
53
53
  expect($element.attr('data-method')).toEqual('put')
54
+
55
+ describe '[data-confirm]', ->
56
+
57
+ beforeEach ->
58
+ @oldRails = $.rails
59
+
60
+ afterEach ->
61
+ $.rails = @oldRails
62
+
63
+ describe 'when Rails UJS is loaded', ->
64
+
65
+ beforeEach ->
66
+ $.rails = {}
67
+
68
+ u.each upAttributes, (upAttribute) ->
69
+ describe "on an [#{upAttribute}] element", ->
70
+
71
+ it "is transformed to an up-confirm attribute so the element isn't handled a second time by Rails UJS", ->
72
+ $element = affix("span[#{upAttribute}][data-confirm=\"Really?\"]")
73
+ up.hello($element)
74
+ expect($element.attr('data-confirm')).toBeUndefined()
75
+ expect($element.attr('up-confirm')).toEqual('Really?')
76
+
77
+ it "does not overwrite an existing up-confirm attribute, but gets deleted", ->
78
+ $element = affix("span[#{upAttribute}][up-confirm=\"Seriously?\"][data-confirm=\"Really?\"]")
79
+ up.hello($element)
80
+ expect($element.attr('data-confirm')).toBeUndefined()
81
+ expect($element.attr('up-confirm')).toEqual('Seriously?')
82
+
83
+ describe 'on an element without Up.js attributes', ->
84
+
85
+ it "is not changed", ->
86
+ $element = affix("span[data-confirm=\"Really?\"]")
87
+ up.hello($element)
88
+ expect($element.attr('data-confirm')).toEqual('Really?')
89
+
90
+ describe 'when Rails UJS is not loaded', ->
91
+
92
+ beforeEach ->
93
+ $.rails = undefined
94
+
95
+ u.each upAttributes, (upAttribute) ->
96
+ describe "on an [#{upAttribute}] element", ->
97
+
98
+ it "is not changed", ->
99
+ $element = affix("span[#{upAttribute}][data-confirm=\"Really?\"]")
100
+ up.hello($element)
101
+ expect($element.attr('data-confirm')).toEqual('Really?')
@@ -8,6 +8,44 @@ describe 'up.util', ->
8
8
  # fun = ($element, data) ->
9
9
  # expect(up.util.argNames(fun)).toEqual(['$element', 'data'])
10
10
 
11
+ describe 'up.util.only', ->
12
+
13
+ it 'returns a copy of the given object with only the given whitelisted properties', ->
14
+ original =
15
+ foo: 'foo-value'
16
+ bar: 'bar-value'
17
+ baz: 'baz-value'
18
+ bam: 'bam-value'
19
+ whitelisted = up.util.only(original, 'bar', 'bam')
20
+ expect(whitelisted).toEqual
21
+ bar: 'bar-value'
22
+ bam: 'bam-value'
23
+ # Show that original did not change
24
+ expect(original).toEqual
25
+ foo: 'foo-value'
26
+ bar: 'bar-value'
27
+ baz: 'baz-value'
28
+ bam: 'bam-value'
29
+
30
+ describe 'up.util.except', ->
31
+
32
+ it 'returns a copy of the given object but omits the given blacklisted properties', ->
33
+ original =
34
+ foo: 'foo-value'
35
+ bar: 'bar-value'
36
+ baz: 'baz-value'
37
+ bam: 'bam-value'
38
+ whitelisted = up.util.except(original, 'foo', 'baz')
39
+ expect(whitelisted).toEqual
40
+ bar: 'bar-value'
41
+ bam: 'bam-value'
42
+ # Show that original did not change
43
+ expect(original).toEqual
44
+ foo: 'foo-value'
45
+ bar: 'bar-value'
46
+ baz: 'baz-value'
47
+ bam: 'bam-value'
48
+
11
49
  describe 'up.util.selectorForElement', ->
12
50
 
13
51
  it "prefers using the element's 'up-id' attribute to using the element's ID", ->
@@ -131,3 +169,13 @@ describe 'up.util', ->
131
169
  object.b = 2
132
170
  object.reset()
133
171
  expect(object.reset).toBeDefined()
172
+
173
+ describe 'up.util.requestDataAsQueryString', ->
174
+
175
+ it 'returns the query section for the given object, including the question mark', ->
176
+ string = up.util.requestDataAsQueryString('foo-key': 'foo value', 'bar-key': 'bar value')
177
+ expect(string).toEqual('?foo-key=foo%20value&bar-key=bar%20value')
178
+
179
+ it 'returns an empty string', ->
180
+ string = up.util.requestDataAsQueryString({})
181
+ expect(string).toEqual('')
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: upjs-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.17.0
4
+ version: 0.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henning Koch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-20 00:00:00.000000000 Z
11
+ date: 2016-02-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -190,6 +190,7 @@ files:
190
190
  - spec_app/script/cucumber
191
191
  - spec_app/spec/controllers/test_controller_spec.rb
192
192
  - spec_app/spec/javascripts/helpers/append_fixture.js.coffee
193
+ - spec_app/spec/javascripts/helpers/browser_switches.js.coffee
193
194
  - spec_app/spec/javascripts/helpers/index.js.coffee
194
195
  - spec_app/spec/javascripts/helpers/knife.js.coffee
195
196
  - spec_app/spec/javascripts/helpers/last_request.js.coffee
@@ -202,8 +203,10 @@ files:
202
203
  - spec_app/spec/javascripts/helpers/restore_body_scroll.js.coffee
203
204
  - spec_app/spec/javascripts/helpers/set_timer.js.coffee
204
205
  - spec_app/spec/javascripts/helpers/to_be_around.js.coffee
206
+ - spec_app/spec/javascripts/helpers/to_be_present.js.coffee
205
207
  - spec_app/spec/javascripts/helpers/to_end_with.js.coffee
206
208
  - spec_app/spec/javascripts/helpers/to_equal_jquery.js.coffee
209
+ - spec_app/spec/javascripts/helpers/to_have_request_method.js.coffee
207
210
  - spec_app/spec/javascripts/helpers/trigger.js.coffee
208
211
  - spec_app/spec/javascripts/support/jasmine.yml
209
212
  - spec_app/spec/javascripts/up/bus_spec.js.coffee