upjs-rails 0.17.0 → 0.18.0

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