logster 0.0.1

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 (245) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/Guardfile +8 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +38 -0
  7. data/Rakefile +18 -0
  8. data/assets/javascript/app.js +377 -0
  9. data/assets/javascript/external/ember.js +44267 -0
  10. data/assets/javascript/external/ember.min.js +19 -0
  11. data/assets/javascript/external/handlebars.min.js +28 -0
  12. data/assets/javascript/external/jquery.min.js +5 -0
  13. data/assets/javascript/external/lodash.min.js +56 -0
  14. data/assets/javascript/external/moment.min.js +6 -0
  15. data/assets/javascript/templates/application.handlebars +1 -0
  16. data/assets/javascript/templates/index.handlebars +48 -0
  17. data/assets/javascript/templates/message.handlebars +7 -0
  18. data/assets/stylesheets/app.css +188 -0
  19. data/bower_components/ember/.bower.json +22 -0
  20. data/bower_components/ember/.gitignore +5 -0
  21. data/bower_components/ember/Makefile +9 -0
  22. data/bower_components/ember/README.md +12 -0
  23. data/bower_components/ember/bower.json +11 -0
  24. data/bower_components/ember/component.json +13 -0
  25. data/bower_components/ember/composer.json +27 -0
  26. data/bower_components/ember/ember-template-compiler.js +320 -0
  27. data/bower_components/ember/ember.js +44267 -0
  28. data/bower_components/ember/ember.min.js +19 -0
  29. data/bower_components/ember/ember.prod.js +42649 -0
  30. data/bower_components/ember/package.json +11 -0
  31. data/bower_components/handlebars/.bower.json +16 -0
  32. data/bower_components/handlebars/.gitignore +2 -0
  33. data/bower_components/handlebars/README.md +11 -0
  34. data/bower_components/handlebars/bower.json +6 -0
  35. data/bower_components/handlebars/component.json +9 -0
  36. data/bower_components/handlebars/composer.json +35 -0
  37. data/bower_components/handlebars/handlebars-source.gemspec +21 -0
  38. data/bower_components/handlebars/handlebars.amd.js +2719 -0
  39. data/bower_components/handlebars/handlebars.amd.min.js +28 -0
  40. data/bower_components/handlebars/handlebars.js +2746 -0
  41. data/bower_components/handlebars/handlebars.js.nuspec +17 -0
  42. data/bower_components/handlebars/handlebars.min.js +28 -0
  43. data/bower_components/handlebars/handlebars.runtime.amd.js +515 -0
  44. data/bower_components/handlebars/handlebars.runtime.amd.min.js +27 -0
  45. data/bower_components/handlebars/handlebars.runtime.js +530 -0
  46. data/bower_components/handlebars/handlebars.runtime.min.js +27 -0
  47. data/bower_components/handlebars/lib/handlebars/source.rb +11 -0
  48. data/bower_components/jquery/.bower.json +37 -0
  49. data/bower_components/jquery/MIT-LICENSE.txt +21 -0
  50. data/bower_components/jquery/bower.json +27 -0
  51. data/bower_components/jquery/dist/jquery.js +9111 -0
  52. data/bower_components/jquery/dist/jquery.min.js +5 -0
  53. data/bower_components/jquery/dist/jquery.min.map +1 -0
  54. data/bower_components/jquery/src/ajax.js +806 -0
  55. data/bower_components/jquery/src/ajax/jsonp.js +89 -0
  56. data/bower_components/jquery/src/ajax/load.js +75 -0
  57. data/bower_components/jquery/src/ajax/parseJSON.js +13 -0
  58. data/bower_components/jquery/src/ajax/parseXML.js +28 -0
  59. data/bower_components/jquery/src/ajax/script.js +64 -0
  60. data/bower_components/jquery/src/ajax/var/nonce.js +5 -0
  61. data/bower_components/jquery/src/ajax/var/rquery.js +3 -0
  62. data/bower_components/jquery/src/ajax/xhr.js +130 -0
  63. data/bower_components/jquery/src/attributes.js +11 -0
  64. data/bower_components/jquery/src/attributes/attr.js +143 -0
  65. data/bower_components/jquery/src/attributes/classes.js +158 -0
  66. data/bower_components/jquery/src/attributes/prop.js +96 -0
  67. data/bower_components/jquery/src/attributes/support.js +35 -0
  68. data/bower_components/jquery/src/attributes/val.js +153 -0
  69. data/bower_components/jquery/src/callbacks.js +205 -0
  70. data/bower_components/jquery/src/core.js +500 -0
  71. data/bower_components/jquery/src/core/access.js +60 -0
  72. data/bower_components/jquery/src/core/init.js +123 -0
  73. data/bower_components/jquery/src/core/parseHTML.js +39 -0
  74. data/bower_components/jquery/src/core/ready.js +96 -0
  75. data/bower_components/jquery/src/core/var/rsingleTag.js +4 -0
  76. data/bower_components/jquery/src/css.js +455 -0
  77. data/bower_components/jquery/src/css/addGetHookIf.js +24 -0
  78. data/bower_components/jquery/src/css/curCSS.js +57 -0
  79. data/bower_components/jquery/src/css/defaultDisplay.js +69 -0
  80. data/bower_components/jquery/src/css/hiddenVisibleSelectors.js +15 -0
  81. data/bower_components/jquery/src/css/support.js +83 -0
  82. data/bower_components/jquery/src/css/swap.js +28 -0
  83. data/bower_components/jquery/src/css/var/cssExpand.js +3 -0
  84. data/bower_components/jquery/src/css/var/getStyles.js +5 -0
  85. data/bower_components/jquery/src/css/var/isHidden.js +13 -0
  86. data/bower_components/jquery/src/css/var/rmargin.js +3 -0
  87. data/bower_components/jquery/src/css/var/rnumnonpx.js +5 -0
  88. data/bower_components/jquery/src/data.js +175 -0
  89. data/bower_components/jquery/src/data/Data.js +181 -0
  90. data/bower_components/jquery/src/data/accepts.js +20 -0
  91. data/bower_components/jquery/src/data/var/data_priv.js +5 -0
  92. data/bower_components/jquery/src/data/var/data_user.js +5 -0
  93. data/bower_components/jquery/src/deferred.js +149 -0
  94. data/bower_components/jquery/src/deprecated.js +13 -0
  95. data/bower_components/jquery/src/dimensions.js +50 -0
  96. data/bower_components/jquery/src/effects.js +642 -0
  97. data/bower_components/jquery/src/effects/Tween.js +114 -0
  98. data/bower_components/jquery/src/effects/animatedSelector.js +13 -0
  99. data/bower_components/jquery/src/event.js +859 -0
  100. data/bower_components/jquery/src/event/alias.js +39 -0
  101. data/bower_components/jquery/src/event/support.js +9 -0
  102. data/bower_components/jquery/src/exports/amd.js +18 -0
  103. data/bower_components/jquery/src/exports/global.js +32 -0
  104. data/bower_components/jquery/src/intro.js +44 -0
  105. data/bower_components/jquery/src/jquery.js +36 -0
  106. data/bower_components/jquery/src/manipulation.js +583 -0
  107. data/bower_components/jquery/src/manipulation/_evalUrl.js +18 -0
  108. data/bower_components/jquery/src/manipulation/support.js +24 -0
  109. data/bower_components/jquery/src/manipulation/var/rcheckableType.js +3 -0
  110. data/bower_components/jquery/src/offset.js +204 -0
  111. data/bower_components/jquery/src/outro.js +1 -0
  112. data/bower_components/jquery/src/queue.js +142 -0
  113. data/bower_components/jquery/src/queue/delay.js +22 -0
  114. data/bower_components/jquery/src/selector-native.js +171 -0
  115. data/bower_components/jquery/src/selector-sizzle.js +14 -0
  116. data/bower_components/jquery/src/selector.js +1 -0
  117. data/bower_components/jquery/src/serialize.js +111 -0
  118. data/bower_components/jquery/src/sizzle/dist/sizzle.js +2015 -0
  119. data/bower_components/jquery/src/sizzle/dist/sizzle.min.js +3 -0
  120. data/bower_components/jquery/src/sizzle/dist/sizzle.min.map +1 -0
  121. data/bower_components/jquery/src/traversing.js +200 -0
  122. data/bower_components/jquery/src/traversing/findFilter.js +100 -0
  123. data/bower_components/jquery/src/traversing/var/rneedsContext.js +6 -0
  124. data/bower_components/jquery/src/var/arr.js +3 -0
  125. data/bower_components/jquery/src/var/class2type.js +4 -0
  126. data/bower_components/jquery/src/var/concat.js +5 -0
  127. data/bower_components/jquery/src/var/hasOwn.js +5 -0
  128. data/bower_components/jquery/src/var/indexOf.js +5 -0
  129. data/bower_components/jquery/src/var/pnum.js +3 -0
  130. data/bower_components/jquery/src/var/push.js +5 -0
  131. data/bower_components/jquery/src/var/rnotwhite.js +3 -0
  132. data/bower_components/jquery/src/var/slice.js +5 -0
  133. data/bower_components/jquery/src/var/strundefined.js +3 -0
  134. data/bower_components/jquery/src/var/support.js +4 -0
  135. data/bower_components/jquery/src/var/toString.js +5 -0
  136. data/bower_components/jquery/src/var/trim.js +3 -0
  137. data/bower_components/jquery/src/wrap.js +78 -0
  138. data/bower_components/lodash/.bower.json +34 -0
  139. data/bower_components/lodash/LICENSE.txt +22 -0
  140. data/bower_components/lodash/bower.json +23 -0
  141. data/bower_components/lodash/dist/lodash.compat.js +7157 -0
  142. data/bower_components/lodash/dist/lodash.compat.min.js +61 -0
  143. data/bower_components/lodash/dist/lodash.js +6785 -0
  144. data/bower_components/lodash/dist/lodash.min.js +56 -0
  145. data/bower_components/lodash/dist/lodash.underscore.js +4979 -0
  146. data/bower_components/lodash/dist/lodash.underscore.min.js +39 -0
  147. data/bower_components/moment/.bower.json +31 -0
  148. data/bower_components/moment/LICENSE +22 -0
  149. data/bower_components/moment/bower.json +20 -0
  150. data/bower_components/moment/lang/ar-ma.js +56 -0
  151. data/bower_components/moment/lang/ar.js +56 -0
  152. data/bower_components/moment/lang/bg.js +86 -0
  153. data/bower_components/moment/lang/br.js +107 -0
  154. data/bower_components/moment/lang/bs.js +139 -0
  155. data/bower_components/moment/lang/ca.js +66 -0
  156. data/bower_components/moment/lang/cs.js +155 -0
  157. data/bower_components/moment/lang/cv.js +59 -0
  158. data/bower_components/moment/lang/cy.js +77 -0
  159. data/bower_components/moment/lang/da.js +56 -0
  160. data/bower_components/moment/lang/de.js +71 -0
  161. data/bower_components/moment/lang/el.js +79 -0
  162. data/bower_components/moment/lang/en-au.js +62 -0
  163. data/bower_components/moment/lang/en-ca.js +59 -0
  164. data/bower_components/moment/lang/en-gb.js +63 -0
  165. data/bower_components/moment/lang/eo.js +65 -0
  166. data/bower_components/moment/lang/es.js +75 -0
  167. data/bower_components/moment/lang/et.js +76 -0
  168. data/bower_components/moment/lang/eu.js +60 -0
  169. data/bower_components/moment/lang/fa.js +97 -0
  170. data/bower_components/moment/lang/fi.js +103 -0
  171. data/bower_components/moment/lang/fo.js +56 -0
  172. data/bower_components/moment/lang/fr-ca.js +54 -0
  173. data/bower_components/moment/lang/fr.js +58 -0
  174. data/bower_components/moment/lang/gl.js +71 -0
  175. data/bower_components/moment/lang/he.js +77 -0
  176. data/bower_components/moment/lang/hi.js +105 -0
  177. data/bower_components/moment/lang/hr.js +140 -0
  178. data/bower_components/moment/lang/hu.js +105 -0
  179. data/bower_components/moment/lang/hy-am.js +113 -0
  180. data/bower_components/moment/lang/id.js +67 -0
  181. data/bower_components/moment/lang/is.js +124 -0
  182. data/bower_components/moment/lang/it.js +59 -0
  183. data/bower_components/moment/lang/ja.js +58 -0
  184. data/bower_components/moment/lang/ka.js +108 -0
  185. data/bower_components/moment/lang/km.js +55 -0
  186. data/bower_components/moment/lang/ko.js +63 -0
  187. data/bower_components/moment/lang/lb.js +160 -0
  188. data/bower_components/moment/lang/lt.js +118 -0
  189. data/bower_components/moment/lang/lv.js +77 -0
  190. data/bower_components/moment/lang/mk.js +86 -0
  191. data/bower_components/moment/lang/ml.js +64 -0
  192. data/bower_components/moment/lang/mr.js +104 -0
  193. data/bower_components/moment/lang/ms-my.js +66 -0
  194. data/bower_components/moment/lang/nb.js +57 -0
  195. data/bower_components/moment/lang/ne.js +105 -0
  196. data/bower_components/moment/lang/nl.js +67 -0
  197. data/bower_components/moment/lang/nn.js +56 -0
  198. data/bower_components/moment/lang/pl.js +98 -0
  199. data/bower_components/moment/lang/pt-br.js +56 -0
  200. data/bower_components/moment/lang/pt.js +60 -0
  201. data/bower_components/moment/lang/ro.js +72 -0
  202. data/bower_components/moment/lang/ru.js +163 -0
  203. data/bower_components/moment/lang/sk.js +156 -0
  204. data/bower_components/moment/lang/sl.js +144 -0
  205. data/bower_components/moment/lang/sq.js +61 -0
  206. data/bower_components/moment/lang/sr-cyr.js +106 -0
  207. data/bower_components/moment/lang/sr.js +106 -0
  208. data/bower_components/moment/lang/sv.js +63 -0
  209. data/bower_components/moment/lang/ta.js +112 -0
  210. data/bower_components/moment/lang/th.js +58 -0
  211. data/bower_components/moment/lang/tl-ph.js +58 -0
  212. data/bower_components/moment/lang/tr.js +93 -0
  213. data/bower_components/moment/lang/tzm-la.js +55 -0
  214. data/bower_components/moment/lang/tzm.js +55 -0
  215. data/bower_components/moment/lang/uk.js +157 -0
  216. data/bower_components/moment/lang/uz.js +55 -0
  217. data/bower_components/moment/lang/vi.js +62 -0
  218. data/bower_components/moment/lang/zh-cn.js +108 -0
  219. data/bower_components/moment/lang/zh-tw.js +84 -0
  220. data/bower_components/moment/min/langs.js +5991 -0
  221. data/bower_components/moment/min/langs.min.js +3 -0
  222. data/bower_components/moment/min/moment-with-langs.js +7993 -0
  223. data/bower_components/moment/min/moment-with-langs.min.js +9 -0
  224. data/bower_components/moment/min/moment.min.js +6 -0
  225. data/bower_components/moment/moment.js +2489 -0
  226. data/bower_components/moment/readme.md +368 -0
  227. data/lib/logster.rb +9 -0
  228. data/lib/logster/logger.rb +31 -0
  229. data/lib/logster/message.rb +42 -0
  230. data/lib/logster/middleware/reporter.rb +13 -0
  231. data/lib/logster/middleware/viewer.rb +122 -0
  232. data/lib/logster/rails/railtie.rb +39 -0
  233. data/lib/logster/redis_store.rb +124 -0
  234. data/lib/logster/version.rb +3 -0
  235. data/logster.gemspec +30 -0
  236. data/test/logster/middleware/test_viewer.rb +34 -0
  237. data/test/logster/test_redis_store.rb +112 -0
  238. data/test/test_helper.rb +6 -0
  239. data/website/Gemfile +6 -0
  240. data/website/config.ru +2 -0
  241. data/website/data/data.json +1 -0
  242. data/website/docker_container/logster.yml +95 -0
  243. data/website/sample.rb +85 -0
  244. data/website/scripts/persist_logs.rb +13 -0
  245. metadata +375 -0
@@ -0,0 +1,89 @@
1
+ define([
2
+ "../core",
3
+ "./var/nonce",
4
+ "./var/rquery",
5
+ "../ajax"
6
+ ], function( jQuery, nonce, rquery ) {
7
+
8
+ var oldCallbacks = [],
9
+ rjsonp = /(=)\?(?=&|$)|\?\?/;
10
+
11
+ // Default jsonp settings
12
+ jQuery.ajaxSetup({
13
+ jsonp: "callback",
14
+ jsonpCallback: function() {
15
+ var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
16
+ this[ callback ] = true;
17
+ return callback;
18
+ }
19
+ });
20
+
21
+ // Detect, normalize options and install callbacks for jsonp requests
22
+ jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
23
+
24
+ var callbackName, overwritten, responseContainer,
25
+ jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
26
+ "url" :
27
+ typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
28
+ );
29
+
30
+ // Handle iff the expected data type is "jsonp" or we have a parameter to set
31
+ if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
32
+
33
+ // Get callback name, remembering preexisting value associated with it
34
+ callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
35
+ s.jsonpCallback() :
36
+ s.jsonpCallback;
37
+
38
+ // Insert callback into url or form data
39
+ if ( jsonProp ) {
40
+ s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
41
+ } else if ( s.jsonp !== false ) {
42
+ s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
43
+ }
44
+
45
+ // Use data converter to retrieve json after script execution
46
+ s.converters["script json"] = function() {
47
+ if ( !responseContainer ) {
48
+ jQuery.error( callbackName + " was not called" );
49
+ }
50
+ return responseContainer[ 0 ];
51
+ };
52
+
53
+ // force json dataType
54
+ s.dataTypes[ 0 ] = "json";
55
+
56
+ // Install callback
57
+ overwritten = window[ callbackName ];
58
+ window[ callbackName ] = function() {
59
+ responseContainer = arguments;
60
+ };
61
+
62
+ // Clean-up function (fires after converters)
63
+ jqXHR.always(function() {
64
+ // Restore preexisting value
65
+ window[ callbackName ] = overwritten;
66
+
67
+ // Save back as free
68
+ if ( s[ callbackName ] ) {
69
+ // make sure that re-using the options doesn't screw things around
70
+ s.jsonpCallback = originalSettings.jsonpCallback;
71
+
72
+ // save the callback name for future use
73
+ oldCallbacks.push( callbackName );
74
+ }
75
+
76
+ // Call if it was a function and we have a response
77
+ if ( responseContainer && jQuery.isFunction( overwritten ) ) {
78
+ overwritten( responseContainer[ 0 ] );
79
+ }
80
+
81
+ responseContainer = overwritten = undefined;
82
+ });
83
+
84
+ // Delegate to script
85
+ return "script";
86
+ }
87
+ });
88
+
89
+ });
@@ -0,0 +1,75 @@
1
+ define([
2
+ "../core",
3
+ "../core/parseHTML",
4
+ "../ajax",
5
+ "../traversing",
6
+ "../manipulation",
7
+ "../selector",
8
+ // Optional event/alias dependency
9
+ "../event/alias"
10
+ ], function( jQuery ) {
11
+
12
+ // Keep a copy of the old load method
13
+ var _load = jQuery.fn.load;
14
+
15
+ /**
16
+ * Load a url into a page
17
+ */
18
+ jQuery.fn.load = function( url, params, callback ) {
19
+ if ( typeof url !== "string" && _load ) {
20
+ return _load.apply( this, arguments );
21
+ }
22
+
23
+ var selector, type, response,
24
+ self = this,
25
+ off = url.indexOf(" ");
26
+
27
+ if ( off >= 0 ) {
28
+ selector = url.slice( off );
29
+ url = url.slice( 0, off );
30
+ }
31
+
32
+ // If it's a function
33
+ if ( jQuery.isFunction( params ) ) {
34
+
35
+ // We assume that it's the callback
36
+ callback = params;
37
+ params = undefined;
38
+
39
+ // Otherwise, build a param string
40
+ } else if ( params && typeof params === "object" ) {
41
+ type = "POST";
42
+ }
43
+
44
+ // If we have elements to modify, make the request
45
+ if ( self.length > 0 ) {
46
+ jQuery.ajax({
47
+ url: url,
48
+
49
+ // if "type" variable is undefined, then "GET" method will be used
50
+ type: type,
51
+ dataType: "html",
52
+ data: params
53
+ }).done(function( responseText ) {
54
+
55
+ // Save response for use in complete callback
56
+ response = arguments;
57
+
58
+ self.html( selector ?
59
+
60
+ // If a selector was specified, locate the right elements in a dummy div
61
+ // Exclude scripts to avoid IE 'Permission Denied' errors
62
+ jQuery("<div>").append( jQuery.parseHTML( responseText ) ).find( selector ) :
63
+
64
+ // Otherwise use the full result
65
+ responseText );
66
+
67
+ }).complete( callback && function( jqXHR, status ) {
68
+ self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
69
+ });
70
+ }
71
+
72
+ return this;
73
+ };
74
+
75
+ });
@@ -0,0 +1,13 @@
1
+ define([
2
+ "../core"
3
+ ], function( jQuery ) {
4
+
5
+ // Support: Android 2.3
6
+ // Workaround failure to string-cast null input
7
+ jQuery.parseJSON = function( data ) {
8
+ return JSON.parse( data + "" );
9
+ };
10
+
11
+ return jQuery.parseJSON;
12
+
13
+ });
@@ -0,0 +1,28 @@
1
+ define([
2
+ "../core"
3
+ ], function( jQuery ) {
4
+
5
+ // Cross-browser xml parsing
6
+ jQuery.parseXML = function( data ) {
7
+ var xml, tmp;
8
+ if ( !data || typeof data !== "string" ) {
9
+ return null;
10
+ }
11
+
12
+ // Support: IE9
13
+ try {
14
+ tmp = new DOMParser();
15
+ xml = tmp.parseFromString( data, "text/xml" );
16
+ } catch ( e ) {
17
+ xml = undefined;
18
+ }
19
+
20
+ if ( !xml || xml.getElementsByTagName( "parsererror" ).length ) {
21
+ jQuery.error( "Invalid XML: " + data );
22
+ }
23
+ return xml;
24
+ };
25
+
26
+ return jQuery.parseXML;
27
+
28
+ });
@@ -0,0 +1,64 @@
1
+ define([
2
+ "../core",
3
+ "../ajax"
4
+ ], function( jQuery ) {
5
+
6
+ // Install script dataType
7
+ jQuery.ajaxSetup({
8
+ accepts: {
9
+ script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"
10
+ },
11
+ contents: {
12
+ script: /(?:java|ecma)script/
13
+ },
14
+ converters: {
15
+ "text script": function( text ) {
16
+ jQuery.globalEval( text );
17
+ return text;
18
+ }
19
+ }
20
+ });
21
+
22
+ // Handle cache's special case and crossDomain
23
+ jQuery.ajaxPrefilter( "script", function( s ) {
24
+ if ( s.cache === undefined ) {
25
+ s.cache = false;
26
+ }
27
+ if ( s.crossDomain ) {
28
+ s.type = "GET";
29
+ }
30
+ });
31
+
32
+ // Bind script tag hack transport
33
+ jQuery.ajaxTransport( "script", function( s ) {
34
+ // This transport only deals with cross domain requests
35
+ if ( s.crossDomain ) {
36
+ var script, callback;
37
+ return {
38
+ send: function( _, complete ) {
39
+ script = jQuery("<script>").prop({
40
+ async: true,
41
+ charset: s.scriptCharset,
42
+ src: s.url
43
+ }).on(
44
+ "load error",
45
+ callback = function( evt ) {
46
+ script.remove();
47
+ callback = null;
48
+ if ( evt ) {
49
+ complete( evt.type === "error" ? 404 : 200, evt.type );
50
+ }
51
+ }
52
+ );
53
+ document.head.appendChild( script[ 0 ] );
54
+ },
55
+ abort: function() {
56
+ if ( callback ) {
57
+ callback();
58
+ }
59
+ }
60
+ };
61
+ }
62
+ });
63
+
64
+ });
@@ -0,0 +1,5 @@
1
+ define([
2
+ "../../core"
3
+ ], function( jQuery ) {
4
+ return jQuery.now();
5
+ });
@@ -0,0 +1,3 @@
1
+ define(function() {
2
+ return (/\?/);
3
+ });
@@ -0,0 +1,130 @@
1
+ define([
2
+ "../core",
3
+ "../var/support",
4
+ "../ajax"
5
+ ], function( jQuery, support ) {
6
+
7
+ jQuery.ajaxSettings.xhr = function() {
8
+ try {
9
+ return new XMLHttpRequest();
10
+ } catch( e ) {}
11
+ };
12
+
13
+ var xhrId = 0,
14
+ xhrCallbacks = {},
15
+ xhrSuccessStatus = {
16
+ // file protocol always yields status code 0, assume 200
17
+ 0: 200,
18
+ // Support: IE9
19
+ // #1450: sometimes IE returns 1223 when it should be 204
20
+ 1223: 204
21
+ },
22
+ xhrSupported = jQuery.ajaxSettings.xhr();
23
+
24
+ // Support: IE9
25
+ // Open requests must be manually aborted on unload (#5280)
26
+ if ( window.ActiveXObject ) {
27
+ jQuery( window ).on( "unload", function() {
28
+ for ( var key in xhrCallbacks ) {
29
+ xhrCallbacks[ key ]();
30
+ }
31
+ });
32
+ }
33
+
34
+ support.cors = !!xhrSupported && ( "withCredentials" in xhrSupported );
35
+ support.ajax = xhrSupported = !!xhrSupported;
36
+
37
+ jQuery.ajaxTransport(function( options ) {
38
+ var callback;
39
+
40
+ // Cross domain only allowed if supported through XMLHttpRequest
41
+ if ( support.cors || xhrSupported && !options.crossDomain ) {
42
+ return {
43
+ send: function( headers, complete ) {
44
+ var i,
45
+ xhr = options.xhr(),
46
+ id = ++xhrId;
47
+
48
+ xhr.open( options.type, options.url, options.async, options.username, options.password );
49
+
50
+ // Apply custom fields if provided
51
+ if ( options.xhrFields ) {
52
+ for ( i in options.xhrFields ) {
53
+ xhr[ i ] = options.xhrFields[ i ];
54
+ }
55
+ }
56
+
57
+ // Override mime type if needed
58
+ if ( options.mimeType && xhr.overrideMimeType ) {
59
+ xhr.overrideMimeType( options.mimeType );
60
+ }
61
+
62
+ // X-Requested-With header
63
+ // For cross-domain requests, seeing as conditions for a preflight are
64
+ // akin to a jigsaw puzzle, we simply never set it to be sure.
65
+ // (it can always be set on a per-request basis or even using ajaxSetup)
66
+ // For same-domain requests, won't change header if already provided.
67
+ if ( !options.crossDomain && !headers["X-Requested-With"] ) {
68
+ headers["X-Requested-With"] = "XMLHttpRequest";
69
+ }
70
+
71
+ // Set headers
72
+ for ( i in headers ) {
73
+ xhr.setRequestHeader( i, headers[ i ] );
74
+ }
75
+
76
+ // Callback
77
+ callback = function( type ) {
78
+ return function() {
79
+ if ( callback ) {
80
+ delete xhrCallbacks[ id ];
81
+ callback = xhr.onload = xhr.onerror = null;
82
+
83
+ if ( type === "abort" ) {
84
+ xhr.abort();
85
+ } else if ( type === "error" ) {
86
+ complete(
87
+ // file: protocol always yields status 0; see #8605, #14207
88
+ xhr.status,
89
+ xhr.statusText
90
+ );
91
+ } else {
92
+ complete(
93
+ xhrSuccessStatus[ xhr.status ] || xhr.status,
94
+ xhr.statusText,
95
+ // Support: IE9
96
+ // Accessing binary-data responseText throws an exception
97
+ // (#11426)
98
+ typeof xhr.responseText === "string" ? {
99
+ text: xhr.responseText
100
+ } : undefined,
101
+ xhr.getAllResponseHeaders()
102
+ );
103
+ }
104
+ }
105
+ };
106
+ };
107
+
108
+ // Listen to events
109
+ xhr.onload = callback();
110
+ xhr.onerror = callback("error");
111
+
112
+ // Create the abort callback
113
+ callback = xhrCallbacks[ id ] = callback("abort");
114
+
115
+ // Do send the request
116
+ // This may raise an exception which is actually
117
+ // handled in jQuery.ajax (so no try/catch here)
118
+ xhr.send( options.hasContent && options.data || null );
119
+ },
120
+
121
+ abort: function() {
122
+ if ( callback ) {
123
+ callback();
124
+ }
125
+ }
126
+ };
127
+ }
128
+ });
129
+
130
+ });
@@ -0,0 +1,11 @@
1
+ define([
2
+ "./core",
3
+ "./attributes/attr",
4
+ "./attributes/prop",
5
+ "./attributes/classes",
6
+ "./attributes/val"
7
+ ], function( jQuery ) {
8
+
9
+ // Return jQuery for attributes-only inclusion
10
+ return jQuery;
11
+ });
@@ -0,0 +1,143 @@
1
+ define([
2
+ "../core",
3
+ "../var/rnotwhite",
4
+ "../var/strundefined",
5
+ "../core/access",
6
+ "./support",
7
+ "../selector"
8
+ ], function( jQuery, rnotwhite, strundefined, access, support ) {
9
+
10
+ var nodeHook, boolHook,
11
+ attrHandle = jQuery.expr.attrHandle;
12
+
13
+ jQuery.fn.extend({
14
+ attr: function( name, value ) {
15
+ return access( this, jQuery.attr, name, value, arguments.length > 1 );
16
+ },
17
+
18
+ removeAttr: function( name ) {
19
+ return this.each(function() {
20
+ jQuery.removeAttr( this, name );
21
+ });
22
+ }
23
+ });
24
+
25
+ jQuery.extend({
26
+ attr: function( elem, name, value ) {
27
+ var hooks, ret,
28
+ nType = elem.nodeType;
29
+
30
+ // don't get/set attributes on text, comment and attribute nodes
31
+ if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
32
+ return;
33
+ }
34
+
35
+ // Fallback to prop when attributes are not supported
36
+ if ( typeof elem.getAttribute === strundefined ) {
37
+ return jQuery.prop( elem, name, value );
38
+ }
39
+
40
+ // All attributes are lowercase
41
+ // Grab necessary hook if one is defined
42
+ if ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {
43
+ name = name.toLowerCase();
44
+ hooks = jQuery.attrHooks[ name ] ||
45
+ ( jQuery.expr.match.bool.test( name ) ? boolHook : nodeHook );
46
+ }
47
+
48
+ if ( value !== undefined ) {
49
+
50
+ if ( value === null ) {
51
+ jQuery.removeAttr( elem, name );
52
+
53
+ } else if ( hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ) {
54
+ return ret;
55
+
56
+ } else {
57
+ elem.setAttribute( name, value + "" );
58
+ return value;
59
+ }
60
+
61
+ } else if ( hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ) {
62
+ return ret;
63
+
64
+ } else {
65
+ ret = jQuery.find.attr( elem, name );
66
+
67
+ // Non-existent attributes return null, we normalize to undefined
68
+ return ret == null ?
69
+ undefined :
70
+ ret;
71
+ }
72
+ },
73
+
74
+ removeAttr: function( elem, value ) {
75
+ var name, propName,
76
+ i = 0,
77
+ attrNames = value && value.match( rnotwhite );
78
+
79
+ if ( attrNames && elem.nodeType === 1 ) {
80
+ while ( (name = attrNames[i++]) ) {
81
+ propName = jQuery.propFix[ name ] || name;
82
+
83
+ // Boolean attributes get special treatment (#10870)
84
+ if ( jQuery.expr.match.bool.test( name ) ) {
85
+ // Set corresponding property to false
86
+ elem[ propName ] = false;
87
+ }
88
+
89
+ elem.removeAttribute( name );
90
+ }
91
+ }
92
+ },
93
+
94
+ attrHooks: {
95
+ type: {
96
+ set: function( elem, value ) {
97
+ if ( !support.radioValue && value === "radio" &&
98
+ jQuery.nodeName( elem, "input" ) ) {
99
+ // Setting the type on a radio button after the value resets the value in IE6-9
100
+ // Reset value to default in case type is set after value during creation
101
+ var val = elem.value;
102
+ elem.setAttribute( "type", value );
103
+ if ( val ) {
104
+ elem.value = val;
105
+ }
106
+ return value;
107
+ }
108
+ }
109
+ }
110
+ }
111
+ });
112
+
113
+ // Hooks for boolean attributes
114
+ boolHook = {
115
+ set: function( elem, value, name ) {
116
+ if ( value === false ) {
117
+ // Remove boolean attributes when set to false
118
+ jQuery.removeAttr( elem, name );
119
+ } else {
120
+ elem.setAttribute( name, name );
121
+ }
122
+ return name;
123
+ }
124
+ };
125
+ jQuery.each( jQuery.expr.match.bool.source.match( /\w+/g ), function( i, name ) {
126
+ var getter = attrHandle[ name ] || jQuery.find.attr;
127
+
128
+ attrHandle[ name ] = function( elem, name, isXML ) {
129
+ var ret, handle;
130
+ if ( !isXML ) {
131
+ // Avoid an infinite loop by temporarily removing this function from the getter
132
+ handle = attrHandle[ name ];
133
+ attrHandle[ name ] = ret;
134
+ ret = getter( elem, name, isXML ) != null ?
135
+ name.toLowerCase() :
136
+ null;
137
+ attrHandle[ name ] = handle;
138
+ }
139
+ return ret;
140
+ };
141
+ });
142
+
143
+ });