loco-rails 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. checksums.yaml +4 -4
  2. data/lib/generators/loco/js_assets_structure/js_assets_structure_generator.rb +1 -1
  3. data/lib/loco/version.rb +1 -1
  4. data/test/dummy/bower.json +3 -3
  5. data/test/dummy/db/test.sqlite3 +0 -0
  6. data/test/dummy/log/development.log +914 -0
  7. data/test/dummy/log/test.log +14364 -0
  8. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1-WO2UjmfLs4SpjVZdSJGGMzBEsVGyxycwsDwVEQj1k.cache +0 -0
  9. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1lwmN4qs8MJAzC_yfG97s_SBsqDZ7S3tjAhKpSGRoPk.cache +0 -0
  10. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2W9ni6toILqWfZF81i5tLooI3KkJgLMV2Um69h4tACE.cache +0 -0
  11. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/888aULOiH1o8nErYVbar7so8TSiHMnVRkCJVrsFow-8.cache +1 -0
  12. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/C2zMBdauRoyKtP5-Hbx-3FKU63Wir8HxxhnsEQjnye4.cache +1 -0
  13. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KmN1A2cbnIa89JVXdNUnbxekW6XoG37uQ7TOrUmla6M.cache +1 -0
  14. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/N2LaSeSkH9O3-nDAwbgQ3fvF1RyzULzIdW9tRkCFdiE.cache +1 -0
  15. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NMX4CbiSfseLfHWah6QjF3ka-_q8iZ35lDHxpx5HZBc.cache +1 -0
  16. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/O97vuogdZekuQD9891VkdZtj2Ah9a6j_9SdFgHpRZPk.cache +3 -0
  17. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/RgNfOjSuRN575tirFTi553UywDtiZquNSKAUN4t_37E.cache +2 -0
  18. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/URfsWTq0WfX5JFf50HidIK1kGXYILlI3krzHQOlpGFw.cache +2 -0
  19. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UqKz2K55R9dWSo9wYoLdN5lxNUXJFqA_7eipeyHMqQc.cache +1 -0
  20. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WspjnlaWGkNP36-eIBusMx-VcvbF81RZ3L495DxSNNg.cache +1 -0
  21. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XUYO10EzvYAECtPUgdBF8rPWs9x6tndCxSwdhYWmDpQ.cache +1 -0
  22. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ckF-gg5mdNyYLK2tDms9BdsP1vFw5VYxZ11u7l8vzfc.cache +0 -0
  23. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cxoptH0sPRJzPLP351ISNHPjig_W2A_-5fLVnK3tFu0.cache +1 -0
  24. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/k5GkEt2yH5INFBgLUTsGEmzjRr5Ngh6FiXYfmbqh-Tg.cache +1 -0
  25. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zIWnum7SG2OPux4uomf0kHpIZ5Nl1NfTAoHCdkHwZIY.cache +0 -0
  26. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zgdP9EhEWd05XIYSWZx4uQKkuRklpRj6KiShg6HqIRo.cache +0 -0
  27. data/test/dummy/vendor/assets/bower_components/jquery/AUTHORS.txt +53 -24
  28. data/test/dummy/vendor/assets/bower_components/jquery/dist/core.js +481 -0
  29. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.js +2706 -3647
  30. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.js +4 -5
  31. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.min.map +1 -1
  32. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.js +533 -444
  33. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.min.js +4 -4
  34. data/test/dummy/vendor/assets/bower_components/jquery/dist/jquery.slim.min.map +1 -1
  35. data/test/dummy/vendor/assets/bower_components/jquery/{sizzle → external/sizzle}/LICENSE.txt +0 -0
  36. data/test/dummy/vendor/assets/bower_components/jquery/{sizzle → external/sizzle}/dist/sizzle.js +154 -80
  37. data/test/dummy/vendor/assets/bower_components/jquery/external/sizzle/dist/sizzle.min.js +3 -0
  38. data/test/dummy/vendor/assets/bower_components/jquery/external/sizzle/dist/sizzle.min.map +1 -0
  39. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/jsonp.js +5 -3
  40. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/load.js +3 -11
  41. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/parseXML.js +9 -10
  42. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/script.js +26 -44
  43. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/location.js +2 -0
  44. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/nonce.js +2 -0
  45. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/var/rquery.js +2 -0
  46. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/xhr.js +138 -198
  47. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax.js +104 -91
  48. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/attr.js +23 -167
  49. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/classes.js +18 -13
  50. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/prop.js +9 -37
  51. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/support.js +12 -49
  52. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes/val.js +21 -28
  53. data/test/dummy/vendor/assets/bower_components/jquery/src/attributes.js +4 -2
  54. data/test/dummy/vendor/assets/bower_components/jquery/src/callbacks.js +5 -3
  55. data/test/dummy/vendor/assets/bower_components/jquery/src/core/DOMEval.js +2 -0
  56. data/test/dummy/vendor/assets/bower_components/jquery/src/core/access.js +8 -6
  57. data/test/dummy/vendor/assets/bower_components/jquery/src/core/init.js +13 -26
  58. data/test/dummy/vendor/assets/bower_components/jquery/src/core/parseHTML.js +32 -8
  59. data/test/dummy/vendor/assets/bower_components/jquery/src/core/ready-no-deferred.js +111 -0
  60. data/test/dummy/vendor/assets/bower_components/jquery/src/core/ready.js +32 -100
  61. data/test/dummy/vendor/assets/bower_components/jquery/src/core/readyException.js +13 -0
  62. data/test/dummy/vendor/assets/bower_components/jquery/src/core/support.js +3 -1
  63. data/test/dummy/vendor/assets/bower_components/jquery/src/core/var/rsingleTag.js +2 -1
  64. data/test/dummy/vendor/assets/bower_components/jquery/src/core.js +71 -119
  65. data/test/dummy/vendor/assets/bower_components/jquery/src/css/addGetHookIf.js +2 -0
  66. data/test/dummy/vendor/assets/bower_components/jquery/src/css/adjustCSS.js +8 -2
  67. data/test/dummy/vendor/assets/bower_components/jquery/src/css/curCSS.js +34 -112
  68. data/test/dummy/vendor/assets/bower_components/jquery/src/css/hiddenVisibleSelectors.js +7 -28
  69. data/test/dummy/vendor/assets/bower_components/jquery/src/css/showHide.js +69 -9
  70. data/test/dummy/vendor/assets/bower_components/jquery/src/css/support.js +48 -142
  71. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/cssExpand.js +2 -0
  72. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/getStyles.js +3 -1
  73. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/isHiddenWithinTree.js +34 -0
  74. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/rmargin.js +2 -0
  75. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/rnumnonpx.js +2 -0
  76. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/swap.js +2 -0
  77. data/test/dummy/vendor/assets/bower_components/jquery/src/css.js +71 -223
  78. data/test/dummy/vendor/assets/bower_components/jquery/src/data/Data.js +24 -63
  79. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/acceptData.js +11 -12
  80. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/dataPriv.js +2 -0
  81. data/test/dummy/vendor/assets/bower_components/jquery/src/data/var/dataUser.js +2 -0
  82. data/test/dummy/vendor/assets/bower_components/jquery/src/data.js +66 -247
  83. data/test/dummy/vendor/assets/bower_components/jquery/src/deferred/exceptionHook.js +4 -2
  84. data/test/dummy/vendor/assets/bower_components/jquery/src/deferred.js +290 -60
  85. data/test/dummy/vendor/assets/bower_components/jquery/src/deprecated.js +4 -8
  86. data/test/dummy/vendor/assets/bower_components/jquery/src/dimensions.js +9 -9
  87. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/Tween.js +11 -9
  88. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/animatedSelector.js +3 -1
  89. data/test/dummy/vendor/assets/bower_components/jquery/src/effects.js +183 -135
  90. data/test/dummy/vendor/assets/bower_components/jquery/src/event/ajax.js +2 -0
  91. data/test/dummy/vendor/assets/bower_components/jquery/src/event/alias.js +7 -3
  92. data/test/dummy/vendor/assets/bower_components/jquery/src/event/focusin.js +5 -3
  93. data/test/dummy/vendor/assets/bower_components/jquery/src/event/support.js +3 -20
  94. data/test/dummy/vendor/assets/bower_components/jquery/src/event/trigger.js +4 -18
  95. data/test/dummy/vendor/assets/bower_components/jquery/src/event.js +145 -553
  96. data/test/dummy/vendor/assets/bower_components/jquery/src/exports/amd.js +2 -0
  97. data/test/dummy/vendor/assets/bower_components/jquery/src/exports/global.js +10 -2
  98. data/test/dummy/vendor/assets/bower_components/jquery/src/jquery.js +4 -1
  99. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/_evalUrl.js +2 -0
  100. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/buildFragment.js +22 -75
  101. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/getAll.js +9 -19
  102. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/setGlobalEval.js +11 -8
  103. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/support.js +13 -50
  104. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rcheckableType.js +2 -0
  105. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rscriptType.js +2 -0
  106. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rtagName.js +3 -1
  107. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/wrapMap.js +11 -12
  108. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation.js +104 -203
  109. data/test/dummy/vendor/assets/bower_components/jquery/src/offset.js +64 -51
  110. data/test/dummy/vendor/assets/bower_components/jquery/src/queue/delay.js +3 -1
  111. data/test/dummy/vendor/assets/bower_components/jquery/src/queue.js +12 -11
  112. data/test/dummy/vendor/assets/bower_components/jquery/src/selector-native.js +29 -3
  113. data/test/dummy/vendor/assets/bower_components/jquery/src/selector-sizzle.js +5 -0
  114. data/test/dummy/vendor/assets/bower_components/jquery/src/selector.js +3 -1
  115. data/test/dummy/vendor/assets/bower_components/jquery/src/serialize.js +13 -12
  116. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/findFilter.js +9 -10
  117. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/dir.js +2 -0
  118. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/rneedsContext.js +2 -0
  119. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing/var/siblings.js +2 -0
  120. data/test/dummy/vendor/assets/bower_components/jquery/src/traversing.js +36 -37
  121. data/test/dummy/vendor/assets/bower_components/jquery/src/var/ObjectFunctionString.js +7 -0
  122. data/test/dummy/vendor/assets/bower_components/jquery/src/var/arr.js +2 -0
  123. data/test/dummy/vendor/assets/bower_components/jquery/src/var/class2type.js +1 -0
  124. data/test/dummy/vendor/assets/bower_components/jquery/src/var/concat.js +5 -3
  125. data/test/dummy/vendor/assets/bower_components/jquery/src/var/document.js +2 -0
  126. data/test/dummy/vendor/assets/bower_components/jquery/src/var/documentElement.js +2 -0
  127. data/test/dummy/vendor/assets/bower_components/jquery/src/var/fnToString.js +7 -0
  128. data/test/dummy/vendor/assets/bower_components/jquery/src/var/getProto.js +5 -0
  129. data/test/dummy/vendor/assets/bower_components/jquery/src/var/hasOwn.js +2 -0
  130. data/test/dummy/vendor/assets/bower_components/jquery/src/var/indexOf.js +5 -3
  131. data/test/dummy/vendor/assets/bower_components/jquery/src/var/pnum.js +2 -0
  132. data/test/dummy/vendor/assets/bower_components/jquery/src/var/push.js +5 -3
  133. data/test/dummy/vendor/assets/bower_components/jquery/src/var/rcssNum.js +2 -0
  134. data/test/dummy/vendor/assets/bower_components/jquery/src/var/rnotwhite.js +2 -0
  135. data/test/dummy/vendor/assets/bower_components/jquery/src/var/slice.js +5 -3
  136. data/test/dummy/vendor/assets/bower_components/jquery/src/var/support.js +1 -0
  137. data/test/dummy/vendor/assets/bower_components/jquery/src/var/toString.js +2 -0
  138. data/test/dummy/vendor/assets/bower_components/jquery/src/wrap.js +14 -14
  139. data/test/dummy/vendor/assets/bower_components/lie/bower.json +1 -1
  140. data/test/dummy/vendor/assets/bower_components/lie/component.json +1 -1
  141. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.js +80 -80
  142. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.min.js +1 -1
  143. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.polyfill.js +9 -9
  144. data/test/dummy/vendor/assets/bower_components/lie/dist/lie.polyfill.min.js +1 -1
  145. data/test/dummy/vendor/assets/bower_components/lie/lib/browser.js +253 -0
  146. data/test/dummy/vendor/assets/bower_components/lie/lib/index.js +5 -5
  147. data/test/dummy/vendor/assets/bower_components/lie/package.json +28 -19
  148. data/test/dummy/vendor/assets/bower_components/lie/src/index.js +278 -0
  149. metadata +62 -36
  150. data/test/dummy/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.js +0 -3
  151. data/test/dummy/vendor/assets/bower_components/jquery/sizzle/dist/sizzle.min.map +0 -1
  152. data/test/dummy/vendor/assets/bower_components/jquery/src/ajax/parseJSON.js +0 -53
  153. data/test/dummy/vendor/assets/bower_components/jquery/src/css/defaultDisplay.js +0 -72
  154. data/test/dummy/vendor/assets/bower_components/jquery/src/css/var/isHidden.js +0 -16
  155. data/test/dummy/vendor/assets/bower_components/jquery/src/data/accepts.js +0 -20
  156. data/test/dummy/vendor/assets/bower_components/jquery/src/data/support.js +0 -23
  157. data/test/dummy/vendor/assets/bower_components/jquery/src/effects/support.js +0 -58
  158. data/test/dummy/vendor/assets/bower_components/jquery/src/intro.js +0 -44
  159. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/createSafeFragment.js +0 -20
  160. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/nodeNames.js +0 -5
  161. data/test/dummy/vendor/assets/bower_components/jquery/src/manipulation/var/rleadingWhitespace.js +0 -3
  162. data/test/dummy/vendor/assets/bower_components/jquery/src/outro.js +0 -2
  163. data/test/dummy/vendor/assets/bower_components/jquery/src/support.js +0 -63
  164. data/test/dummy/vendor/assets/bower_components/jquery/src/var/deletedIds.js +0 -3
@@ -1,5 +1,7 @@
1
1
  define( [
2
2
  "../Data"
3
3
  ], function( Data ) {
4
+ "use strict";
5
+
4
6
  return new Data();
5
7
  } );
@@ -1,21 +1,32 @@
1
1
  define( [
2
2
  "./core",
3
- "./var/deletedIds",
4
- "./data/support",
5
- "./data/var/acceptData"
6
- ], function( jQuery, deletedIds, support, acceptData ) {
3
+ "./core/access",
4
+ "./data/var/dataPriv",
5
+ "./data/var/dataUser"
6
+ ], function( jQuery, access, dataPriv, dataUser ) {
7
+
8
+ "use strict";
9
+
10
+ // Implementation Summary
11
+ //
12
+ // 1. Enforce API surface and semantic compatibility with 1.9.x branch
13
+ // 2. Improve the module's maintainability by reducing the storage
14
+ // paths to a single mechanism.
15
+ // 3. Use the same single mechanism to support "private" and "user" data.
16
+ // 4. _Never_ expose "private" data to user code (TODO: Drop _data, _removeData)
17
+ // 5. Avoid exposing implementation details on user objects (eg. expando properties)
18
+ // 6. Provide a clear path for implementation upgrade to WeakMap in 2014
7
19
 
8
20
  var rbrace = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
9
- rmultiDash = /([A-Z])/g;
21
+ rmultiDash = /[A-Z]/g;
10
22
 
11
23
  function dataAttr( elem, key, data ) {
24
+ var name;
12
25
 
13
26
  // If nothing was found internally, try to fetch any
14
27
  // data from the HTML5 data-* attribute
15
28
  if ( data === undefined && elem.nodeType === 1 ) {
16
-
17
- var name = "data-" + key.replace( rmultiDash, "-$1" ).toLowerCase();
18
-
29
+ name = "data-" + key.replace( rmultiDash, "-$&" ).toLowerCase();
19
30
  data = elem.getAttribute( name );
20
31
 
21
32
  if ( typeof data === "string" ) {
@@ -26,254 +37,40 @@ function dataAttr( elem, key, data ) {
26
37
 
27
38
  // Only convert to a number if it doesn't change the string
28
39
  +data + "" === data ? +data :
29
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
40
+ rbrace.test( data ) ? JSON.parse( data ) :
30
41
  data;
31
42
  } catch ( e ) {}
32
43
 
33
44
  // Make sure we set the data so it isn't changed later
34
- jQuery.data( elem, key, data );
35
-
45
+ dataUser.set( elem, key, data );
36
46
  } else {
37
47
  data = undefined;
38
48
  }
39
49
  }
40
-
41
50
  return data;
42
51
  }
43
52
 
44
- // checks a cache object for emptiness
45
- function isEmptyDataObject( obj ) {
46
- var name;
47
- for ( name in obj ) {
48
-
49
- // if the public data object is empty, the private is still empty
50
- if ( name === "data" && jQuery.isEmptyObject( obj[ name ] ) ) {
51
- continue;
52
- }
53
- if ( name !== "toJSON" ) {
54
- return false;
55
- }
56
- }
57
-
58
- return true;
59
- }
60
-
61
- function internalData( elem, name, data, pvt /* Internal Use Only */ ) {
62
- if ( !acceptData( elem ) ) {
63
- return;
64
- }
65
-
66
- var ret, thisCache,
67
- internalKey = jQuery.expando,
68
-
69
- // We have to handle DOM nodes and JS objects differently because IE6-7
70
- // can't GC object references properly across the DOM-JS boundary
71
- isNode = elem.nodeType,
72
-
73
- // Only DOM nodes need the global jQuery cache; JS object data is
74
- // attached directly to the object so GC can occur automatically
75
- cache = isNode ? jQuery.cache : elem,
76
-
77
- // Only defining an ID for JS objects if its cache already exists allows
78
- // the code to shortcut on the same path as a DOM node with no cache
79
- id = isNode ? elem[ internalKey ] : elem[ internalKey ] && internalKey;
80
-
81
- // Avoid doing any more work than we need to when trying to get data on an
82
- // object that has no data at all
83
- if ( ( !id || !cache[ id ] || ( !pvt && !cache[ id ].data ) ) &&
84
- data === undefined && typeof name === "string" ) {
85
- return;
86
- }
87
-
88
- if ( !id ) {
89
-
90
- // Only DOM nodes need a new unique ID for each element since their data
91
- // ends up in the global cache
92
- if ( isNode ) {
93
- id = elem[ internalKey ] = deletedIds.pop() || jQuery.guid++;
94
- } else {
95
- id = internalKey;
96
- }
97
- }
98
-
99
- if ( !cache[ id ] ) {
100
-
101
- // Avoid exposing jQuery metadata on plain JS objects when the object
102
- // is serialized using JSON.stringify
103
- cache[ id ] = isNode ? {} : { toJSON: jQuery.noop };
104
- }
105
-
106
- // An object can be passed to jQuery.data instead of a key/value pair; this gets
107
- // shallow copied over onto the existing cache
108
- if ( typeof name === "object" || typeof name === "function" ) {
109
- if ( pvt ) {
110
- cache[ id ] = jQuery.extend( cache[ id ], name );
111
- } else {
112
- cache[ id ].data = jQuery.extend( cache[ id ].data, name );
113
- }
114
- }
115
-
116
- thisCache = cache[ id ];
117
-
118
- // jQuery data() is stored in a separate object inside the object's internal data
119
- // cache in order to avoid key collisions between internal data and user-defined
120
- // data.
121
- if ( !pvt ) {
122
- if ( !thisCache.data ) {
123
- thisCache.data = {};
124
- }
125
-
126
- thisCache = thisCache.data;
127
- }
128
-
129
- if ( data !== undefined ) {
130
- thisCache[ jQuery.camelCase( name ) ] = data;
131
- }
132
-
133
- // Check for both converted-to-camel and non-converted data property names
134
- // If a data property was specified
135
- if ( typeof name === "string" ) {
136
-
137
- // First Try to find as-is property data
138
- ret = thisCache[ name ];
139
-
140
- // Test for null|undefined property data
141
- if ( ret == null ) {
142
-
143
- // Try to find the camelCased property
144
- ret = thisCache[ jQuery.camelCase( name ) ];
145
- }
146
- } else {
147
- ret = thisCache;
148
- }
149
-
150
- return ret;
151
- }
152
-
153
- function internalRemoveData( elem, name, pvt ) {
154
- if ( !acceptData( elem ) ) {
155
- return;
156
- }
157
-
158
- var thisCache, i,
159
- isNode = elem.nodeType,
160
-
161
- // See jQuery.data for more information
162
- cache = isNode ? jQuery.cache : elem,
163
- id = isNode ? elem[ jQuery.expando ] : jQuery.expando;
164
-
165
- // If there is already no cache entry for this object, there is no
166
- // purpose in continuing
167
- if ( !cache[ id ] ) {
168
- return;
169
- }
170
-
171
- if ( name ) {
172
-
173
- thisCache = pvt ? cache[ id ] : cache[ id ].data;
174
-
175
- if ( thisCache ) {
176
-
177
- // Support array or space separated string names for data keys
178
- if ( !jQuery.isArray( name ) ) {
179
-
180
- // try the string as a key before any manipulation
181
- if ( name in thisCache ) {
182
- name = [ name ];
183
- } else {
184
-
185
- // split the camel cased version by spaces unless a key with the spaces exists
186
- name = jQuery.camelCase( name );
187
- if ( name in thisCache ) {
188
- name = [ name ];
189
- } else {
190
- name = name.split( " " );
191
- }
192
- }
193
- } else {
194
-
195
- // If "name" is an array of keys...
196
- // When data is initially created, via ("key", "val") signature,
197
- // keys will be converted to camelCase.
198
- // Since there is no way to tell _how_ a key was added, remove
199
- // both plain key and camelCase key. #12786
200
- // This will only penalize the array argument path.
201
- name = name.concat( jQuery.map( name, jQuery.camelCase ) );
202
- }
203
-
204
- i = name.length;
205
- while ( i-- ) {
206
- delete thisCache[ name[ i ] ];
207
- }
208
-
209
- // If there is no data left in the cache, we want to continue
210
- // and let the cache object itself get destroyed
211
- if ( pvt ? !isEmptyDataObject( thisCache ) : !jQuery.isEmptyObject( thisCache ) ) {
212
- return;
213
- }
214
- }
215
- }
216
-
217
- // See jQuery.data for more information
218
- if ( !pvt ) {
219
- delete cache[ id ].data;
220
-
221
- // Don't destroy the parent cache unless the internal data object
222
- // had been the only thing left in it
223
- if ( !isEmptyDataObject( cache[ id ] ) ) {
224
- return;
225
- }
226
- }
227
-
228
- // Destroy the cache
229
- if ( isNode ) {
230
- jQuery.cleanData( [ elem ], true );
231
-
232
- // Use delete when supported for expandos or `cache` is not a window per isWindow (#10080)
233
- /* jshint eqeqeq: false */
234
- } else if ( support.deleteExpando || cache != cache.window ) {
235
- /* jshint eqeqeq: true */
236
- delete cache[ id ];
237
-
238
- // When all else fails, undefined
239
- } else {
240
- cache[ id ] = undefined;
241
- }
242
- }
243
-
244
53
  jQuery.extend( {
245
- cache: {},
246
-
247
- // The following elements (space-suffixed to avoid Object.prototype collisions)
248
- // throw uncatchable exceptions if you attempt to set expando properties
249
- noData: {
250
- "applet ": true,
251
- "embed ": true,
252
-
253
- // ...but Flash objects (which have this classid) *can* handle expandos
254
- "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
255
- },
256
-
257
54
  hasData: function( elem ) {
258
- elem = elem.nodeType ? jQuery.cache[ elem[ jQuery.expando ] ] : elem[ jQuery.expando ];
259
- return !!elem && !isEmptyDataObject( elem );
55
+ return dataUser.hasData( elem ) || dataPriv.hasData( elem );
260
56
  },
261
57
 
262
58
  data: function( elem, name, data ) {
263
- return internalData( elem, name, data );
59
+ return dataUser.access( elem, name, data );
264
60
  },
265
61
 
266
62
  removeData: function( elem, name ) {
267
- return internalRemoveData( elem, name );
63
+ dataUser.remove( elem, name );
268
64
  },
269
65
 
270
- // For internal use only.
66
+ // TODO: Now that all calls to _data and _removeData have been replaced
67
+ // with direct calls to dataPriv methods, these can be deprecated.
271
68
  _data: function( elem, name, data ) {
272
- return internalData( elem, name, data, true );
69
+ return dataPriv.access( elem, name, data );
273
70
  },
274
71
 
275
72
  _removeData: function( elem, name ) {
276
- return internalRemoveData( elem, name, true );
73
+ dataPriv.remove( elem, name );
277
74
  }
278
75
  } );
279
76
 
@@ -283,19 +80,16 @@ jQuery.fn.extend( {
283
80
  elem = this[ 0 ],
284
81
  attrs = elem && elem.attributes;
285
82
 
286
- // Special expections of .data basically thwart jQuery.access,
287
- // so implement the relevant behavior ourselves
288
-
289
83
  // Gets all values
290
84
  if ( key === undefined ) {
291
85
  if ( this.length ) {
292
- data = jQuery.data( elem );
86
+ data = dataUser.get( elem );
293
87
 
294
- if ( elem.nodeType === 1 && !jQuery._data( elem, "parsedAttrs" ) ) {
88
+ if ( elem.nodeType === 1 && !dataPriv.get( elem, "hasDataAttrs" ) ) {
295
89
  i = attrs.length;
296
90
  while ( i-- ) {
297
91
 
298
- // Support: IE11+
92
+ // Support: IE 11 only
299
93
  // The attrs elements can be null (#14894)
300
94
  if ( attrs[ i ] ) {
301
95
  name = attrs[ i ].name;
@@ -305,7 +99,7 @@ jQuery.fn.extend( {
305
99
  }
306
100
  }
307
101
  }
308
- jQuery._data( elem, "parsedAttrs", true );
102
+ dataPriv.set( elem, "hasDataAttrs", true );
309
103
  }
310
104
  }
311
105
 
@@ -315,25 +109,50 @@ jQuery.fn.extend( {
315
109
  // Sets multiple values
316
110
  if ( typeof key === "object" ) {
317
111
  return this.each( function() {
318
- jQuery.data( this, key );
112
+ dataUser.set( this, key );
319
113
  } );
320
114
  }
321
115
 
322
- return arguments.length > 1 ?
116
+ return access( this, function( value ) {
117
+ var data;
118
+
119
+ // The calling jQuery object (element matches) is not empty
120
+ // (and therefore has an element appears at this[ 0 ]) and the
121
+ // `value` parameter was not undefined. An empty jQuery object
122
+ // will result in `undefined` for elem = this[ 0 ] which will
123
+ // throw an exception if an attempt to read a data cache is made.
124
+ if ( elem && value === undefined ) {
125
+
126
+ // Attempt to get data from the cache
127
+ // The key will always be camelCased in Data
128
+ data = dataUser.get( elem, key );
129
+ if ( data !== undefined ) {
130
+ return data;
131
+ }
323
132
 
324
- // Sets one value
133
+ // Attempt to "discover" the data in
134
+ // HTML5 custom data-* attrs
135
+ data = dataAttr( elem, key );
136
+ if ( data !== undefined ) {
137
+ return data;
138
+ }
139
+
140
+ // We tried really hard, but the data doesn't exist.
141
+ return;
142
+ }
143
+
144
+ // Set the data...
325
145
  this.each( function() {
326
- jQuery.data( this, key, value );
327
- } ) :
328
146
 
329
- // Gets one value
330
- // Try to fetch any internally stored data first
331
- elem ? dataAttr( elem, key, jQuery.data( elem, key ) ) : undefined;
147
+ // We always store the camelCased key
148
+ dataUser.set( this, key, value );
149
+ } );
150
+ }, null, value, arguments.length > 1, null, true );
332
151
  },
333
152
 
334
153
  removeData: function( key ) {
335
154
  return this.each( function() {
336
- jQuery.removeData( this, key );
155
+ dataUser.remove( this, key );
337
156
  } );
338
157
  }
339
158
  } );
@@ -3,16 +3,18 @@ define( [
3
3
  "../deferred"
4
4
  ], function( jQuery ) {
5
5
 
6
+ "use strict";
7
+
6
8
  // These usually indicate a programmer mistake during development,
7
9
  // warn about them ASAP rather than swallowing them by default.
8
10
  var rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
9
11
 
10
12
  jQuery.Deferred.exceptionHook = function( error, stack ) {
11
13
 
12
- // Support: IE9
14
+ // Support: IE 8 - 9 only
13
15
  // Console exists when dev tools are open, which can happen at any time
14
16
  if ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {
15
- window.console.warn( "jQuery.Deferred exception: " + error.message, stack );
17
+ window.console.warn( "jQuery.Deferred exception: " + error.message, error.stack, stack );
16
18
  }
17
19
  };
18
20