jquery-rails-multipart-xhr 0.0.2

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 (79) hide show
  1. data/.gitignore +6 -0
  2. data/Gemfile +4 -0
  3. data/README.md +63 -0
  4. data/Rakefile +1 -0
  5. data/jquery-rails-multipart-xhr.gemspec +26 -0
  6. data/lib/generators/jquery/multipart_xhr/install/install_generator.rb +20 -0
  7. data/lib/jquery-rails-multipart-xhr.rb +2 -0
  8. data/lib/jquery/rails/multipart_xhr.rb +13 -0
  9. data/lib/jquery/rails/multipart_xhr/engine.rb +10 -0
  10. data/lib/jquery/rails/multipart_xhr/railtie.rb +18 -0
  11. data/lib/jquery/rails/multipart_xhr/version.rb +8 -0
  12. data/test/.rbenv-gemsets +1 -0
  13. data/test/index.html +61 -0
  14. data/test/libs/jasmine-html.js +616 -0
  15. data/test/libs/jasmine-jquery.js +322 -0
  16. data/test/libs/jasmine.css +81 -0
  17. data/test/libs/jasmine.js +2530 -0
  18. data/test/libs/jquery-1.7.2.js +9404 -0
  19. data/test/libs/rails.js +384 -0
  20. data/test/rails_ext_spec.js +34 -0
  21. data/test/sendfile.html +0 -0
  22. data/test/spec_helper.js +28 -0
  23. data/test/test_app/Gemfile +9 -0
  24. data/test/test_app/README.rdoc +261 -0
  25. data/test/test_app/Rakefile +7 -0
  26. data/test/test_app/app/assets/images/rails.png +0 -0
  27. data/test/test_app/app/assets/javascripts/application.js +3 -0
  28. data/test/test_app/app/assets/stylesheets/application.css +13 -0
  29. data/test/test_app/app/controllers/application_controller.rb +3 -0
  30. data/test/test_app/app/controllers/index_controller.rb +10 -0
  31. data/test/test_app/app/helpers/application_helper.rb +2 -0
  32. data/test/test_app/app/helpers/index_helper.rb +2 -0
  33. data/test/test_app/app/views/index/index.html.erb +5 -0
  34. data/test/test_app/app/views/index/upload.js.erb +0 -0
  35. data/test/test_app/app/views/layouts/application.html.erb +14 -0
  36. data/test/test_app/config.ru +4 -0
  37. data/test/test_app/config/application.rb +68 -0
  38. data/test/test_app/config/boot.rb +6 -0
  39. data/test/test_app/config/environment.rb +5 -0
  40. data/test/test_app/config/environments/development.rb +31 -0
  41. data/test/test_app/config/environments/production.rb +64 -0
  42. data/test/test_app/config/environments/test.rb +35 -0
  43. data/test/test_app/config/initializers/backtrace_silencers.rb +7 -0
  44. data/test/test_app/config/initializers/inflections.rb +15 -0
  45. data/test/test_app/config/initializers/mime_types.rb +5 -0
  46. data/test/test_app/config/initializers/secret_token.rb +7 -0
  47. data/test/test_app/config/initializers/session_store.rb +8 -0
  48. data/test/test_app/config/initializers/wrap_parameters.rb +10 -0
  49. data/test/test_app/config/locales/en.yml +5 -0
  50. data/test/test_app/config/routes.rb +4 -0
  51. data/test/test_app/db/seeds.rb +7 -0
  52. data/test/test_app/doc/README_FOR_APP +2 -0
  53. data/test/test_app/log/development.log +393 -0
  54. data/test/test_app/public/404.html +26 -0
  55. data/test/test_app/public/422.html +26 -0
  56. data/test/test_app/public/500.html +25 -0
  57. data/test/test_app/public/favicon.ico +0 -0
  58. data/test/test_app/public/robots.txt +5 -0
  59. data/test/test_app/script/rails +6 -0
  60. data/test/test_app/tmp/cache/assets/C8F/390/sprockets%2F6b7d5e919177af65c02182147de40988 +0 -0
  61. data/test/test_app/tmp/cache/assets/CD8/0A0/sprockets%2F5141580125473c05f47bff0c8bb8dd80 +0 -0
  62. data/test/test_app/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  63. data/test/test_app/tmp/cache/assets/CF0/DA0/sprockets%2Fd7d5b37686831d37c4dd75e645f5e016 +0 -0
  64. data/test/test_app/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  65. data/test/test_app/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  66. data/test/test_app/tmp/cache/assets/D53/0E0/sprockets%2F88f3d17e4cef7464b29ab1d468495af6 +0 -0
  67. data/test/test_app/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  68. data/test/test_app/tmp/cache/assets/D6D/6E0/sprockets%2Ff0871e805cb1dd84c3a8a024f925e7af +0 -0
  69. data/test/test_app/tmp/cache/assets/D94/5C0/sprockets%2Fbfc22af1dbf2c597a27bfa0388020f76 +0 -0
  70. data/test/test_app/tmp/cache/assets/DAC/540/sprockets%2Fee54428bf456feb108fa5ac58fe768b3 +0 -0
  71. data/test/test_app/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  72. data/test/test_app/tmp/cache/assets/DF1/800/sprockets%2Fb3fb6dd6651d2f1ecacf3c52b1f7e223 +0 -0
  73. data/test/test_app/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  74. data/test/test_app/tmp/cache/assets/E0A/940/sprockets%2Fff36bca4fabd6d0690d947ef06ff8d26 +0 -0
  75. data/test/test_app/tmp/cache/assets/E25/4C0/sprockets%2Fde2fd9fd11c04a582cdbbe3d84a35ae6 +0 -0
  76. data/test/xhr_spec.js +14 -0
  77. data/vendor/assets/javascripts/jquery_ujs_multipart_xhr.js +172 -0
  78. data/vendor/assets/javascripts/jquery_ujs_xhr.js +1 -0
  79. metadata +254 -0
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The page you were looking for doesn't exist (404)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/404.html -->
21
+ <div class="dialog">
22
+ <h1>The page you were looking for doesn't exist.</h1>
23
+ <p>You may have mistyped the address or the page may have moved.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,26 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>The change you wanted was rejected (422)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/422.html -->
21
+ <div class="dialog">
22
+ <h1>The change you wanted was rejected.</h1>
23
+ <p>Maybe you tried to change something you didn't have access to.</p>
24
+ </div>
25
+ </body>
26
+ </html>
@@ -0,0 +1,25 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <style type="text/css">
6
+ body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
+ div.dialog {
8
+ width: 25em;
9
+ padding: 0 4em;
10
+ margin: 4em auto 0 auto;
11
+ border: 1px solid #ccc;
12
+ border-right-color: #999;
13
+ border-bottom-color: #999;
14
+ }
15
+ h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <!-- This file lives in public/500.html -->
21
+ <div class="dialog">
22
+ <h1>We're sorry, but something went wrong.</h1>
23
+ </div>
24
+ </body>
25
+ </html>
File without changes
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-Agent: *
5
+ # Disallow: /
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,14 @@
1
+ describe("XHR upload integration", function() {
2
+
3
+ var rails, form1, form2, submit1, submit2;
4
+
5
+ beforeEach(function(){
6
+ rails = $.rails;
7
+ form1 = $('#upload_form');
8
+ submit1 = $('input[type=submit]', form1);
9
+ submit2 = $('input[type=submit]', form2);
10
+ form2 = $('#upload_form2');
11
+ });
12
+
13
+
14
+ });
@@ -0,0 +1,172 @@
1
+ /**
2
+ * XHR uploading for the Rails jQuery Adapter
3
+ *
4
+ * Tested with jQuery 1.6.0 or later.
5
+ * https://github.com/kurbmedia/jquery-rails-multipart-xhr
6
+ *
7
+ * Uploading file using rails.js
8
+ * =============================
9
+ *
10
+ * Rails' default jQuery-ujs provides means for handling AJAX requests in which a remote form contains file inputs
11
+ * with values. Adding this adapter expands on that functionality to add support for native XHR uploads when supported
12
+ * by the browser.
13
+ *
14
+ * This add-on binds to the `ajax:aborted:file` event and overrides rails.ajax to bundle File objects into the request
15
+ * to be sent to the server. In addition, it adds a progress event to jQuery's AJAX handler to track upload progress.
16
+ *
17
+ * Ex:
18
+ * $('form').live('progress', function( event, xhr ){
19
+ * event.loaded // the total bytes uploaded
20
+ * event.total // the total bytes to be sent. This is somewhat estimated but is reasonably accurate
21
+ * event.percent // a numeric percent of the current progress
22
+ * });
23
+ *
24
+ * The `progress` event is fired in intervals as the request is sent to the server.
25
+ *
26
+ * To help with tracking progress, the `ajax:upload:start` event is triggered right before the .ajax call is made
27
+ * and receives a single parameter (in addition to the event itself) with a number representing the total number of
28
+ * file bytes to be sent with the request.
29
+ *
30
+ *
31
+ *
32
+ **/
33
+ (function( $, undefined ){
34
+
35
+ var jxhr = $.ajaxSettings.xhr,
36
+ rails = $.rails;
37
+
38
+
39
+ $.extend(rails, {
40
+
41
+ // Enable / disable ajax file uploading.
42
+ enableXHRUpload: true,
43
+
44
+ // Check to see if the browser supports XHR uploading
45
+ XHRUploadSupport: function(){
46
+ var xhr;
47
+ if( typeof XMLHttpRequest == 'undefined' ) return false;
48
+ xhr = new XMLHttpRequest();
49
+ return !! (xhr && ('upload' in xhr) && ('onprogress' in xhr.upload));
50
+ },
51
+
52
+ // Check to see if the browser supports the file API
53
+ fileApiSupport: function(){
54
+ var input = document.createElement('INPUT');
55
+ input.type = 'file';
56
+ return 'files' in input;
57
+ },
58
+
59
+ //
60
+ // Builds a multipart form post using FormData instead of
61
+ // simply serializing the array.
62
+ //
63
+ buildMultipartPost: function( form ) {
64
+ var data = new FormData(),
65
+ post = $(form).serializeArray(),
66
+ totalSize = 0;
67
+
68
+ $.each( post,
69
+ function( ind, obj ){
70
+ data.append( obj.name, obj.value );
71
+ });
72
+
73
+ $(":file", form).each(
74
+ function(){
75
+ var field = $(this),
76
+ node = field.get(0);
77
+
78
+ if( node.files[0] ){
79
+ data.append( field.attr("name"), node.files[0] );
80
+ totalSize = totalSize + node.files[0].fileSize;
81
+ }
82
+
83
+ });
84
+
85
+ return [data, totalSize];
86
+ },
87
+
88
+ //
89
+ // Actual upload handler
90
+ //
91
+ handleRemoteUpload: function( form, options ){
92
+ var data = rails.buildMultipartPost( form );
93
+ options.contentType = false;
94
+ options.processData = false;
95
+ options.data = data[0];
96
+ options.context = form;
97
+ rails.fire( form, 'ajax:upload:start', [ data[1] ] );
98
+ return $.ajax( options );
99
+ }
100
+
101
+ });
102
+
103
+ // Explicitly disable XHR uploading if the browser doesn't support it.
104
+ if( !rails.XHRUploadSupport() && !rails.fileApiSupport() ){
105
+ rails.enableXHRUpload = false;
106
+ }
107
+
108
+ // Recieves a progress event and returns an object representing the progress of the upload.
109
+ function calculateProgress( event ){
110
+ return { loaded: event.loaded, total: event.total,
111
+ percent: parseInt( (event.loaded / event.total * 100), 10) };
112
+ }
113
+
114
+ function progressHandler( event, req ){
115
+ var attrs;
116
+ if( event.lengthComputable ){
117
+ attrs = calculateProgress( event );
118
+ }else{
119
+ attrs = { loaded: null, total: null, percent: null };
120
+ }
121
+
122
+ $.event.trigger( $.Event('progress', attrs), [ req ] );
123
+ this.progress( $.Event('progress', attrs), req );
124
+ }
125
+
126
+
127
+ function handle_files( form ){
128
+ var oajax = rails.ajax;
129
+
130
+ if( rails.enableXHRUpload ){
131
+ rails.ajax = function( options ){
132
+ rails.handleRemoteUpload( $(form), options );
133
+ };
134
+ rails.handleRemote( form );
135
+ rails.ajax = oajax;
136
+ return false;
137
+ }
138
+ return true;
139
+ }
140
+
141
+
142
+ // Setup AJAX to support progress callbacks.
143
+
144
+ $.ajaxSetup({
145
+ progress: function(){},
146
+ xhr: function() {
147
+ var nReq = jxhr(), that = this;
148
+ if( nReq ){
149
+ if( typeof nReq.onprogress != 'undefined' ){
150
+ nReq.onprogress = function( event ){
151
+ progressHandler.apply(that, [event, nReq]);
152
+ };
153
+
154
+ if( typeof nReq.upload != 'undefined' ){
155
+ nReq.upload.onprogress = function( event ){
156
+ progressHandler.apply(that, [event, nReq]);
157
+ };
158
+ }
159
+ }
160
+ }
161
+ return nReq;
162
+ }
163
+ });
164
+
165
+
166
+ $(document).delegate(rails.formSubmitSelector, 'ajax:aborted:file', function(event) {
167
+ if (this == event.target)
168
+ return handle_files($(this));
169
+ });
170
+
171
+
172
+ })( jQuery );
@@ -0,0 +1 @@
1
+ //= require ./jquery_ujs_multipart_xhr
metadata ADDED
@@ -0,0 +1,254 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jquery-rails-multipart-xhr
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Brent Kirby
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-08 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: railties
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: '3.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '3.0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: thor
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: '0.14'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: '0.14'
46
+ - !ruby/object:Gem::Dependency
47
+ name: bundler
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 1.0.0
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 1.0.0
62
+ - !ruby/object:Gem::Dependency
63
+ name: rails
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ~>
68
+ - !ruby/object:Gem::Version
69
+ version: '3.0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '3.0'
78
+ description: Rails' default jQuery-ujs provides means for handling AJAX requests in
79
+ which a remote form contains file inputs with values. Adding this adapter expands
80
+ on that functionality to add support for native XHR uploads when supported by the
81
+ browser.
82
+ email:
83
+ - brent@kurbmedia.com
84
+ executables: []
85
+ extensions: []
86
+ extra_rdoc_files: []
87
+ files:
88
+ - .gitignore
89
+ - Gemfile
90
+ - README.md
91
+ - Rakefile
92
+ - jquery-rails-multipart-xhr.gemspec
93
+ - lib/generators/jquery/multipart_xhr/install/install_generator.rb
94
+ - lib/jquery-rails-multipart-xhr.rb
95
+ - lib/jquery/rails/multipart_xhr.rb
96
+ - lib/jquery/rails/multipart_xhr/engine.rb
97
+ - lib/jquery/rails/multipart_xhr/railtie.rb
98
+ - lib/jquery/rails/multipart_xhr/version.rb
99
+ - test/.rbenv-gemsets
100
+ - test/index.html
101
+ - test/libs/jasmine-html.js
102
+ - test/libs/jasmine-jquery.js
103
+ - test/libs/jasmine.css
104
+ - test/libs/jasmine.js
105
+ - test/libs/jquery-1.7.2.js
106
+ - test/libs/rails.js
107
+ - test/rails_ext_spec.js
108
+ - test/sendfile.html
109
+ - test/spec_helper.js
110
+ - test/test_app/Gemfile
111
+ - test/test_app/README.rdoc
112
+ - test/test_app/Rakefile
113
+ - test/test_app/app/assets/images/rails.png
114
+ - test/test_app/app/assets/javascripts/application.js
115
+ - test/test_app/app/assets/stylesheets/application.css
116
+ - test/test_app/app/controllers/application_controller.rb
117
+ - test/test_app/app/controllers/index_controller.rb
118
+ - test/test_app/app/helpers/application_helper.rb
119
+ - test/test_app/app/helpers/index_helper.rb
120
+ - test/test_app/app/views/index/index.html.erb
121
+ - test/test_app/app/views/index/upload.js.erb
122
+ - test/test_app/app/views/layouts/application.html.erb
123
+ - test/test_app/config.ru
124
+ - test/test_app/config/application.rb
125
+ - test/test_app/config/boot.rb
126
+ - test/test_app/config/environment.rb
127
+ - test/test_app/config/environments/development.rb
128
+ - test/test_app/config/environments/production.rb
129
+ - test/test_app/config/environments/test.rb
130
+ - test/test_app/config/initializers/backtrace_silencers.rb
131
+ - test/test_app/config/initializers/inflections.rb
132
+ - test/test_app/config/initializers/mime_types.rb
133
+ - test/test_app/config/initializers/secret_token.rb
134
+ - test/test_app/config/initializers/session_store.rb
135
+ - test/test_app/config/initializers/wrap_parameters.rb
136
+ - test/test_app/config/locales/en.yml
137
+ - test/test_app/config/routes.rb
138
+ - test/test_app/db/seeds.rb
139
+ - test/test_app/doc/README_FOR_APP
140
+ - test/test_app/log/development.log
141
+ - test/test_app/public/404.html
142
+ - test/test_app/public/422.html
143
+ - test/test_app/public/500.html
144
+ - test/test_app/public/favicon.ico
145
+ - test/test_app/public/robots.txt
146
+ - test/test_app/script/rails
147
+ - test/test_app/tmp/cache/assets/C8F/390/sprockets%2F6b7d5e919177af65c02182147de40988
148
+ - test/test_app/tmp/cache/assets/CD8/0A0/sprockets%2F5141580125473c05f47bff0c8bb8dd80
149
+ - test/test_app/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
150
+ - test/test_app/tmp/cache/assets/CF0/DA0/sprockets%2Fd7d5b37686831d37c4dd75e645f5e016
151
+ - test/test_app/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
152
+ - test/test_app/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
153
+ - test/test_app/tmp/cache/assets/D53/0E0/sprockets%2F88f3d17e4cef7464b29ab1d468495af6
154
+ - test/test_app/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
155
+ - test/test_app/tmp/cache/assets/D6D/6E0/sprockets%2Ff0871e805cb1dd84c3a8a024f925e7af
156
+ - test/test_app/tmp/cache/assets/D94/5C0/sprockets%2Fbfc22af1dbf2c597a27bfa0388020f76
157
+ - test/test_app/tmp/cache/assets/DAC/540/sprockets%2Fee54428bf456feb108fa5ac58fe768b3
158
+ - test/test_app/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
159
+ - test/test_app/tmp/cache/assets/DF1/800/sprockets%2Fb3fb6dd6651d2f1ecacf3c52b1f7e223
160
+ - test/test_app/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
161
+ - test/test_app/tmp/cache/assets/E0A/940/sprockets%2Fff36bca4fabd6d0690d947ef06ff8d26
162
+ - test/test_app/tmp/cache/assets/E25/4C0/sprockets%2Fde2fd9fd11c04a582cdbbe3d84a35ae6
163
+ - test/xhr_spec.js
164
+ - vendor/assets/javascripts/jquery_ujs_multipart_xhr.js
165
+ - vendor/assets/javascripts/jquery_ujs_xhr.js
166
+ homepage: https://github.com/kurbmedia/jquery-rails-multipart-xhr
167
+ licenses: []
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ none: false
174
+ requirements:
175
+ - - ! '>='
176
+ - !ruby/object:Gem::Version
177
+ version: '0'
178
+ required_rubygems_version: !ruby/object:Gem::Requirement
179
+ none: false
180
+ requirements:
181
+ - - ! '>='
182
+ - !ruby/object:Gem::Version
183
+ version: 1.3.6
184
+ requirements: []
185
+ rubyforge_project: jquery-rails-multipart-xhr
186
+ rubygems_version: 1.8.23
187
+ signing_key:
188
+ specification_version: 3
189
+ summary: Adds additional support for XHR file uploads to jquery_ujs
190
+ test_files:
191
+ - test/index.html
192
+ - test/libs/jasmine-html.js
193
+ - test/libs/jasmine-jquery.js
194
+ - test/libs/jasmine.css
195
+ - test/libs/jasmine.js
196
+ - test/libs/jquery-1.7.2.js
197
+ - test/libs/rails.js
198
+ - test/rails_ext_spec.js
199
+ - test/sendfile.html
200
+ - test/spec_helper.js
201
+ - test/test_app/Gemfile
202
+ - test/test_app/README.rdoc
203
+ - test/test_app/Rakefile
204
+ - test/test_app/app/assets/images/rails.png
205
+ - test/test_app/app/assets/javascripts/application.js
206
+ - test/test_app/app/assets/stylesheets/application.css
207
+ - test/test_app/app/controllers/application_controller.rb
208
+ - test/test_app/app/controllers/index_controller.rb
209
+ - test/test_app/app/helpers/application_helper.rb
210
+ - test/test_app/app/helpers/index_helper.rb
211
+ - test/test_app/app/views/index/index.html.erb
212
+ - test/test_app/app/views/index/upload.js.erb
213
+ - test/test_app/app/views/layouts/application.html.erb
214
+ - test/test_app/config.ru
215
+ - test/test_app/config/application.rb
216
+ - test/test_app/config/boot.rb
217
+ - test/test_app/config/environment.rb
218
+ - test/test_app/config/environments/development.rb
219
+ - test/test_app/config/environments/production.rb
220
+ - test/test_app/config/environments/test.rb
221
+ - test/test_app/config/initializers/backtrace_silencers.rb
222
+ - test/test_app/config/initializers/inflections.rb
223
+ - test/test_app/config/initializers/mime_types.rb
224
+ - test/test_app/config/initializers/secret_token.rb
225
+ - test/test_app/config/initializers/session_store.rb
226
+ - test/test_app/config/initializers/wrap_parameters.rb
227
+ - test/test_app/config/locales/en.yml
228
+ - test/test_app/config/routes.rb
229
+ - test/test_app/db/seeds.rb
230
+ - test/test_app/doc/README_FOR_APP
231
+ - test/test_app/log/development.log
232
+ - test/test_app/public/404.html
233
+ - test/test_app/public/422.html
234
+ - test/test_app/public/500.html
235
+ - test/test_app/public/favicon.ico
236
+ - test/test_app/public/robots.txt
237
+ - test/test_app/script/rails
238
+ - test/test_app/tmp/cache/assets/C8F/390/sprockets%2F6b7d5e919177af65c02182147de40988
239
+ - test/test_app/tmp/cache/assets/CD8/0A0/sprockets%2F5141580125473c05f47bff0c8bb8dd80
240
+ - test/test_app/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953
241
+ - test/test_app/tmp/cache/assets/CF0/DA0/sprockets%2Fd7d5b37686831d37c4dd75e645f5e016
242
+ - test/test_app/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
243
+ - test/test_app/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655
244
+ - test/test_app/tmp/cache/assets/D53/0E0/sprockets%2F88f3d17e4cef7464b29ab1d468495af6
245
+ - test/test_app/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6
246
+ - test/test_app/tmp/cache/assets/D6D/6E0/sprockets%2Ff0871e805cb1dd84c3a8a024f925e7af
247
+ - test/test_app/tmp/cache/assets/D94/5C0/sprockets%2Fbfc22af1dbf2c597a27bfa0388020f76
248
+ - test/test_app/tmp/cache/assets/DAC/540/sprockets%2Fee54428bf456feb108fa5ac58fe768b3
249
+ - test/test_app/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994
250
+ - test/test_app/tmp/cache/assets/DF1/800/sprockets%2Fb3fb6dd6651d2f1ecacf3c52b1f7e223
251
+ - test/test_app/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
252
+ - test/test_app/tmp/cache/assets/E0A/940/sprockets%2Fff36bca4fabd6d0690d947ef06ff8d26
253
+ - test/test_app/tmp/cache/assets/E25/4C0/sprockets%2Fde2fd9fd11c04a582cdbbe3d84a35ae6
254
+ - test/xhr_spec.js