ende 0.5.20 → 0.5.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. checksums.yaml +4 -4
  2. data/component.json +1 -1
  3. data/components/indefinido/indemma/master/.gitignore +17 -0
  4. data/components/indefinido/indemma/master/.ruby-gemset +1 -0
  5. data/components/indefinido/indemma/master/.ruby-version +1 -0
  6. data/components/indefinido/indemma/master/Gemfile +12 -0
  7. data/components/indefinido/indemma/master/Guardfile +39 -0
  8. data/components/indefinido/indemma/master/History.md +0 -0
  9. data/components/indefinido/indemma/master/Readme.md +445 -0
  10. data/components/indefinido/indemma/master/build/development.js +26123 -0
  11. data/components/indefinido/indemma/master/build/release.js +16741 -0
  12. data/components/indefinido/indemma/master/build/test.js +26123 -0
  13. data/components/indefinido/indemma/master/component.json +1 -1
  14. data/components/indefinido/indemma/master/components/chaijs/assertion-error/1.0.0/component.json +18 -0
  15. data/components/indefinido/indemma/master/components/chaijs/assertion-error/1.0.0/index.js +110 -0
  16. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/.gitignore +22 -0
  17. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/.mailmap +1 -0
  18. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/.npmignore +14 -0
  19. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/.travis.yml +14 -0
  20. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/CONTRIBUTING.md +173 -0
  21. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/History.md +895 -0
  22. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/Makefile +93 -0
  23. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/README.md +99 -0
  24. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/ReleaseNotes.md +482 -0
  25. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/bower.json +27 -0
  26. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/chai.js +4782 -0
  27. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/component.json +50 -0
  28. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/index.js +1 -0
  29. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/karma.conf.js +28 -0
  30. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/karma.sauce.js +41 -0
  31. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/assertion.js +130 -0
  32. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/config.js +50 -0
  33. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/core/assertions.js +1314 -0
  34. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/interface/assert.js +1056 -0
  35. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/interface/expect.js +12 -0
  36. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/interface/should.js +78 -0
  37. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/addChainableMethod.js +111 -0
  38. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/addMethod.js +43 -0
  39. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/addProperty.js +40 -0
  40. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/flag.js +32 -0
  41. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getActual.js +18 -0
  42. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getEnumerableProperties.js +25 -0
  43. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getMessage.js +49 -0
  44. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getName.js +20 -0
  45. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getPathValue.js +102 -0
  46. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getProperties.js +35 -0
  47. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/index.js +114 -0
  48. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/inspect.js +320 -0
  49. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/objDisplay.js +49 -0
  50. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteChainableMethod.js +53 -0
  51. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteMethod.js +51 -0
  52. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteProperty.js +54 -0
  53. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/test.js +26 -0
  54. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/transferFlags.js +44 -0
  55. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/type.js +45 -0
  56. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai.js +87 -0
  57. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/package.json +42 -0
  58. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/sauce.browsers.js +128 -0
  59. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/support/sauce/sauce_connect_block.sh +7 -0
  60. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/support/sauce/sauce_connect_setup.sh +53 -0
  61. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/assert.js +638 -0
  62. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/auth/.gitkeep +0 -0
  63. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/bootstrap/index.js +22 -0
  64. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/bootstrap/karma.js +22 -0
  65. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/configuration.js +133 -0
  66. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/display/errors.js +14 -0
  67. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/display/message.js +47 -0
  68. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/expect.js +814 -0
  69. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/globalShould.js +15 -0
  70. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/plugins.js +24 -0
  71. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/should.js +744 -0
  72. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/utilities.js +309 -0
  73. data/components/indefinido/indemma/master/components/chaijs/deep-eql/0.1.3/component.json +20 -0
  74. data/components/indefinido/indemma/master/components/chaijs/deep-eql/0.1.3/lib/eql.js +257 -0
  75. data/components/indefinido/indemma/master/components/chaijs/type-detect/0.1.1/component.json +18 -0
  76. data/components/indefinido/indemma/master/components/chaijs/type-detect/0.1.1/lib/type.js +142 -0
  77. data/components/indefinido/indemma/master/components/component/bind/1.0.0/component.json +14 -0
  78. data/components/indefinido/indemma/master/components/component/bind/1.0.0/index.js +23 -0
  79. data/components/indefinido/indemma/master/components/component/jquery/1.0.0/component.json +10 -0
  80. data/components/indefinido/indemma/master/components/component/jquery/1.0.0/index.js +10308 -0
  81. data/components/indefinido/indemma/master/components/component/type/1.0.0/component.json +20 -0
  82. data/components/indefinido/indemma/master/components/component/type/1.0.0/index.js +32 -0
  83. data/components/indefinido/indemma/master/components/indefinido/advisable/master/component.json +21 -0
  84. data/components/indefinido/indemma/master/components/indefinido/advisable/master/index.js +1 -0
  85. data/components/indefinido/indemma/master/components/indefinido/advisable/master/lib/advisable.js +60 -0
  86. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/component.json +39 -0
  87. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/index.js +1 -0
  88. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/adapters/rivets.js +40 -0
  89. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/legacy/notifierable.js +145 -0
  90. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/legacy/schedulerable.js +147 -0
  91. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/lookup.js +38 -0
  92. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable/keypath_observer.js +38 -0
  93. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable/observation.js +45 -0
  94. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable/selection.js +57 -0
  95. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable/self_observer.js +38 -0
  96. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable.js +97 -0
  97. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/platform.js +12 -0
  98. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/observe-js/observe.js +1631 -0
  99. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/shims/accessors-legacy.js +92 -0
  100. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/shims/accessors.js +248 -0
  101. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/shims/array.indexOf.js +8 -0
  102. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/shims/object.create.js +77 -0
  103. data/components/indefinido/indemma/master/components/pluma/assimilate/0.4.0/component.json +25 -0
  104. data/components/indefinido/indemma/master/components/pluma/assimilate/0.4.0/dist/assimilate.js +127 -0
  105. data/components/indefinido/indemma/master/karma.conf.js +75 -0
  106. data/components/indefinido/indemma/master/lib/record/associable.js +4 -2
  107. data/components/indefinido/indemma/master/lib/record/dirtyable.js +1 -1
  108. data/components/indefinido/indemma/master/package.json +9 -0
  109. data/components/indefinido/indemma/master/spec/record/associable_spec.js +211 -0
  110. data/components/indefinido/indemma/master/spec/record/dirtyable_spec.js +57 -0
  111. data/components/indefinido/indemma/master/spec/record/maid_spec.js +40 -0
  112. data/components/indefinido/indemma/master/spec/record/persistable_spec.js +46 -0
  113. data/components/indefinido/indemma/master/spec/record/queryable_spec.js +39 -0
  114. data/components/indefinido/indemma/master/spec/record/resource_spec.js +93 -0
  115. data/components/indefinido/indemma/master/spec/record/rest_spec.js +32 -0
  116. data/components/indefinido/indemma/master/spec/record/restfulable_spec.js +346 -0
  117. data/components/indefinido/indemma/master/spec/record/scopable_spec.js +242 -0
  118. data/components/indefinido/indemma/master/spec/record/storable_spec.js +44 -0
  119. data/components/indefinido/indemma/master/spec/record/translationable.js +28 -0
  120. data/components/indefinido/indemma/master/spec/record/validatable_spec.js +142 -0
  121. data/components/indefinido/indemma/master/spec/record/validations/associated_spec.js +43 -0
  122. data/components/indefinido/indemma/master/spec/record/validations/confirmation_spec.js +36 -0
  123. data/components/indefinido/indemma/master/spec/record/validations/cpf_spec.js +34 -0
  124. data/components/indefinido/indemma/master/spec/record/validations/presence_spec.js +28 -0
  125. data/components/indefinido/indemma/master/spec/record/validations/remote_spec.js +87 -0
  126. data/components/indefinido/indemma/master/spec/record/validations/type_spec.js +48 -0
  127. data/components/indefinido/indemma/master/spec/record_spec.js +49 -0
  128. data/components/indefinido/indemma/master/spec/spec_helper.js +15 -0
  129. data/components/indefinido/indemma/master/spec/support/value_objects/phone.js +45 -0
  130. data/components/indefinido/indemma/master/src/lib/extensions/rivets.coffee +17 -0
  131. data/components/indefinido/indemma/master/src/lib/record/associable.coffee +419 -0
  132. data/components/indefinido/indemma/master/src/lib/record/dirtyable.coffee +47 -0
  133. data/components/indefinido/indemma/master/src/lib/record/errors.coffee +20 -0
  134. data/components/indefinido/indemma/master/src/lib/record/maid.coffee +16 -0
  135. data/components/indefinido/indemma/master/src/lib/record/persistable.coffee +34 -0
  136. data/components/indefinido/indemma/master/src/lib/record/queryable.coffee +29 -0
  137. data/components/indefinido/indemma/master/src/lib/record/resource.coffee +107 -0
  138. data/components/indefinido/indemma/master/src/lib/record/rest.coffee +34 -0
  139. data/components/indefinido/indemma/master/src/lib/record/restfulable.coffee +487 -0
  140. data/components/indefinido/indemma/master/src/lib/record/scopable.coffee +279 -0
  141. data/components/indefinido/indemma/master/src/lib/record/storable.coffee +49 -0
  142. data/components/indefinido/indemma/master/src/lib/record/translationable.coffee +18 -0
  143. data/components/indefinido/indemma/master/src/lib/record/validatable.coffee +241 -0
  144. data/components/indefinido/indemma/master/src/lib/record/validations/associated.coffee +34 -0
  145. data/components/indefinido/indemma/master/src/lib/record/validations/confirmation.coffee +17 -0
  146. data/components/indefinido/indemma/master/src/lib/record/validations/cpf.coffee +57 -0
  147. data/components/indefinido/indemma/master/src/lib/record/validations/presence.coffee +16 -0
  148. data/components/indefinido/indemma/master/src/lib/record/validations/remote.coffee +61 -0
  149. data/components/indefinido/indemma/master/src/lib/record/validations/type.coffee +31 -0
  150. data/components/indefinido/indemma/master/src/lib/record/validations/validatorable.coffee +5 -0
  151. data/components/indefinido/indemma/master/src/lib/record.coffee +143 -0
  152. data/components/indefinido/indemma/master/src/spec/record/associable_spec.coffee +205 -0
  153. data/components/indefinido/indemma/master/src/spec/record/dirtyable_spec.coffee +47 -0
  154. data/components/indefinido/indemma/master/src/spec/record/maid_spec.coffee +34 -0
  155. data/components/indefinido/indemma/master/src/spec/record/persistable_spec.coffee +39 -0
  156. data/components/indefinido/indemma/master/src/spec/record/queryable_spec.coffee +33 -0
  157. data/components/indefinido/indemma/master/src/spec/record/resource_spec.coffee +69 -0
  158. data/components/indefinido/indemma/master/src/spec/record/rest_spec.coffee +22 -0
  159. data/components/indefinido/indemma/master/src/spec/record/restfulable_spec.coffee +257 -0
  160. data/components/indefinido/indemma/master/src/spec/record/scopable_spec.coffee +227 -0
  161. data/components/indefinido/indemma/master/src/spec/record/storable_spec.coffee +39 -0
  162. data/components/indefinido/indemma/master/src/spec/record/translationable.coffee +19 -0
  163. data/components/indefinido/indemma/master/src/spec/record/validatable_spec.coffee +127 -0
  164. data/components/indefinido/indemma/master/src/spec/record/validations/associated_spec.coffee +35 -0
  165. data/components/indefinido/indemma/master/src/spec/record/validations/confirmation_spec.coffee +25 -0
  166. data/components/indefinido/indemma/master/src/spec/record/validations/cpf_spec.coffee +27 -0
  167. data/components/indefinido/indemma/master/src/spec/record/validations/presence_spec.coffee +24 -0
  168. data/components/indefinido/indemma/master/src/spec/record/validations/remote_spec.coffee +74 -0
  169. data/components/indefinido/indemma/master/src/spec/record/validations/type_spec.coffee +33 -0
  170. data/components/indefinido/indemma/master/src/spec/record_spec.coffee +29 -0
  171. data/components/indefinido/indemma/master/src/spec/spec_helper.coffee +11 -0
  172. data/components/indefinido/indemma/master/src/spec/support/value_objects/phone.coffee +30 -0
  173. data/components/indefinido/indemma/master/vendor/object/mixin.js +196 -0
  174. data/components/indefinido/indemma/master/vendor/spec/sinon/assert.js +199 -0
  175. data/components/indefinido/indemma/master/vendor/spec/sinon/behavior.js +334 -0
  176. data/components/indefinido/indemma/master/vendor/spec/sinon/call.js +205 -0
  177. data/components/indefinido/indemma/master/vendor/spec/sinon/collection.js +155 -0
  178. data/components/indefinido/indemma/master/vendor/spec/sinon/match.js +245 -0
  179. data/components/indefinido/indemma/master/vendor/spec/sinon/mock.js +451 -0
  180. data/components/indefinido/indemma/master/vendor/spec/sinon/sandbox.js +144 -0
  181. data/components/indefinido/indemma/master/vendor/spec/sinon/spy.js +413 -0
  182. data/components/indefinido/indemma/master/vendor/spec/sinon/stub.js +161 -0
  183. data/components/indefinido/indemma/master/vendor/spec/sinon/test.js +77 -0
  184. data/components/indefinido/indemma/master/vendor/spec/sinon/test_case.js +99 -0
  185. data/components/indefinido/indemma/master/vendor/spec/sinon/util/event.js +94 -0
  186. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_server.js +212 -0
  187. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_server_with_clock.js +83 -0
  188. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_timers.js +405 -0
  189. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_xdomain_request.js +206 -0
  190. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_xml_http_request.js +575 -0
  191. data/components/indefinido/indemma/master/vendor/spec/sinon/util/timers_ie.js +31 -0
  192. data/components/indefinido/indemma/master/vendor/spec/sinon/util/xdr_ie.js +14 -0
  193. data/components/indefinido/indemma/master/vendor/spec/sinon/util/xhr_ie.js +19 -0
  194. data/components/indefinido/indemma/master/vendor/spec/sinon.js +383 -0
  195. data/lib/assets/javascripts/value_objects/phone.js.coffee +3 -1
  196. data/lib/assets/javascripts/widgets/viewer/plugins/scopable.js.coffee +5 -5
  197. data/lib/ende/version.rb +1 -1
  198. data/vendor/assets/components/ende_build.css +4 -4
  199. data/vendor/assets/components/ende_build.js +7974 -7889
  200. metadata +191 -5
  201. data/vendor/assets/component/build.css +0 -112
  202. data/vendor/assets/components/build.css +0 -112
  203. data/vendor/assets/components/indemma_with_none.js +0 -30553
@@ -0,0 +1,92 @@
1
+ /*
2
+ * Xccessors Legacy: Cross-browser legacy non-standard accessors
3
+ * http://github.com/eligrey/Xccessors
4
+ *
5
+ * 2010-03-21
6
+ *
7
+ * By Elijah Grey, http://eligrey.com
8
+ *
9
+ * A shim that implements __defineGetter__, __defineSetter__, __lookupGetter__,
10
+ * and __lookupSetter__
11
+ * in browsers that have ECMAScript 5 accessor support but not the legacy methods.
12
+ *
13
+ * Public Domain.
14
+ * NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
15
+ */
16
+
17
+ /*global Element, Window, HTMLDocument */
18
+
19
+ /*jslint white: true, undef: true, nomen: true, eqeqeq: true, bitwise: true, regexp: true,
20
+ strict: true, newcap: true, immed: true, maxlen: 90 */
21
+
22
+ /*! @source http://purl.eligrey.com/github/Xccessors/blob/master/xccessors-legacy.js*/
23
+
24
+ "use strict";
25
+
26
+ (function () {
27
+ var
28
+ defineProp = Object.defineProperty,
29
+ getProp = Object.getOwnPropertyDescriptor,
30
+
31
+ // methods being implemented
32
+ methods = [
33
+ "__defineGetter__", "__defineSetter__", "__lookupGetter__", "__lookupSetter__"
34
+ ],
35
+
36
+ // objects to implement legacy methods onto their prototypes
37
+ // Object.prototype[method] doesn't work on everything for IE
38
+ extend = [Object, String, Array, Function, Boolean, Number,
39
+ RegExp, Date, Error],
40
+ len = extend.length,
41
+ proto = "prototype",
42
+ extendMethod = function (method, fun) {
43
+ var i = len;
44
+ if (!(method in {})) {
45
+ while (i--) {
46
+ defineProp(extend[i][proto], method, {value: fun, enumerable: false})
47
+ }
48
+ }
49
+ };
50
+
51
+ // IE8 Does not support enumerable key so we abort!
52
+ // TODO Fix this without cluttering the prototype
53
+ try {defineProp({}, 'domo', {value: true, enumerable: false})} catch (e) {return;}
54
+
55
+ // IE7 Does not have Element, Window defined, so we check here
56
+ if (typeof Element != 'undefined') extend.push(Element);
57
+ if (typeof Window != 'undefined') extend.push(Window);
58
+
59
+ // IE9 Does not have html document defined, so we check here
60
+ if (typeof HTMLDocument != 'undefined') extend.push(HTMLDocument);
61
+
62
+
63
+ if (defineProp) {
64
+ extendMethod(methods[0], function (prop, fun) { // __defineGetter__
65
+ defineProp(this, prop, { get: fun });
66
+ });
67
+
68
+ extendMethod(methods[1], function (prop, fun) { // __defineSetter__
69
+ defineProp(this, prop, { set: fun });
70
+ });
71
+ }
72
+
73
+ if (getProp && !defineProp.requiresDomElement) {
74
+ extendMethod(methods[2], function (prop) { // __lookupGetter__
75
+ var descriptor = getProp(this, prop);
76
+ if (descriptor && descriptor.get) return descriptor.get;
77
+
78
+ // look in prototype too
79
+ descriptor = getProp(this.constructor[proto], prop);
80
+ if (descriptor && descriptor.get) return descriptor.get;
81
+ });
82
+
83
+ extendMethod(methods[3], function (prop) { // __lookupSetter__
84
+ var descriptor = getProp(this, prop);
85
+ if (descriptor && descriptor.set) return descriptor.set;
86
+
87
+ // look in prototype too
88
+ descriptor = getProp(this.constructor[proto], prop);
89
+ if (descriptor && descriptor.set) return descriptor.set;
90
+ });
91
+ }
92
+ }());
@@ -0,0 +1,248 @@
1
+ 'use strict';
2
+
3
+ (function () {
4
+ // Cache native objects for better performacy and easy to use
5
+ // references
6
+ var ObjectProto = Object.prototype,
7
+ hasOwnProp = ObjectProto.hasOwnProperty,
8
+ getProp = Object.getOwnPropertyDescriptor,
9
+ defineProp = Object.defineProperty,
10
+ objectCreate = Object.create,
11
+ toStrings = [],
12
+ features = null,
13
+ stack = [], detach,
14
+ fixedOwnProperty,
15
+ prototypeBase = [Object, String, Array, Function, Boolean, Number, RegExp, Date, Error];
16
+
17
+ // IE7 Does not have Element and Window defined, so only add them if
18
+ // they exists check here
19
+ if (typeof Element != 'undefined') prototypeBase.push(Element);
20
+ if (typeof Window != 'undefined') prototypeBase.push(Window);
21
+
22
+ features = {
23
+ allowsNonEnumerableProperty: function () {
24
+ var broken = false;
25
+ try {
26
+ defineProp({}, 'x', {})
27
+ } catch(e) {
28
+ broken = true;
29
+ }
30
+
31
+ return (!broken) && (!!defineProp);
32
+ },
33
+ supportsOnPropertyChangeEvent: function () {
34
+ var test = document.createElement('domo');
35
+ return 'onpropertychange' in test
36
+ }
37
+ }
38
+
39
+ if (!features.allowsNonEnumerableProperty() && features.supportsOnPropertyChangeEvent()) {
40
+
41
+ // Check if node is on document
42
+ var inDocument = function inDocument (node) {
43
+ var curr = node;
44
+ while (curr != null) {
45
+ curr = curr.parentNode;
46
+ if (curr == document) return true;
47
+ }
48
+ return false;
49
+ },
50
+
51
+ // Generate property event handler for setting some property
52
+ generate_setter = function generate_setter (object, property, descriptor) {
53
+ var setter = function object_define_property_shim_change_listener (event) {
54
+ var current_value, changed_value;
55
+ if (
56
+ // if we are setting this property
57
+ event.propertyName == property
58
+
59
+ // prevent firing setters again
60
+ // by checking callstack
61
+ && stack.indexOf(property) === -1
62
+ ) {
63
+ // Remove the event so it doesn't fire again and
64
+ // create a loop
65
+ object.detachEvent("onpropertychange", setter);
66
+
67
+ // If detaching the current setter
68
+ // just remove the event listener
69
+ if (detach) return;
70
+
71
+ // get the changed value, run it through the set function
72
+ changed_value = object[property];
73
+ descriptor.set.call(object, changed_value);
74
+
75
+ // Restore get function if:
76
+ // it was mentioned on definition
77
+ // there's no falsey value, in that case we just need to return falsey value
78
+ // current toString is not the getter, to prevent further unecessary redefinitions
79
+ if (descriptor.get && descriptor.value && descriptor.value.toString != descriptor.bound_getter) {
80
+ // TODO if (descriptor.get + '' === 'undefined') descriptor.get = ''; // Handle undefined getter
81
+ descriptor.value.toString = descriptor.bound_getter
82
+ }
83
+
84
+ // Update stored values
85
+ object[property] = descriptor.value = changed_value;
86
+
87
+ // restore the event handler
88
+ object.attachEvent("onpropertychange", setter);
89
+
90
+ // stack.pop();
91
+ return false;
92
+ }
93
+ }
94
+
95
+ return setter;
96
+ };
97
+
98
+ // Shim define property with apropriated fail cases exceptions
99
+ Object.defineProperty = function (obj, prop, descriptor) {
100
+ var fix;
101
+
102
+ if (!prop)
103
+
104
+ if (descriptor.set) {
105
+ if (!obj.attachEvent) throw new TypeError('Object.defineProperty: First parameter must be a dom element. When descriptor has \'set\' property.');
106
+
107
+ if (!fix && !inDocument(obj)) throw new TypeError('Object.defineProperty: Dom element must be attached in document.');
108
+ }
109
+
110
+ if (!descriptor) throw new TypeError('Object.defineProperty (object, property, descriptor): Descriptor must be an object, was \'' + descriptor + '\'.');
111
+
112
+ // Store current value in descriptor
113
+ // TODO only try to set descriptor value if it was passed as parameter
114
+ descriptor.value = descriptor.value || (descriptor.get && descriptor.get.call(obj)) || obj[prop];
115
+
116
+ if (descriptor.set) {
117
+ // Detach old listeners if any
118
+ detach = true;
119
+ obj[prop] = 'detaching';
120
+ detach = false;
121
+
122
+ if (descriptor.get) {
123
+ // TODO remove jquery dependency
124
+ descriptor.bound_getter = $.extend($.proxy(descriptor.get, obj), descriptor.get);
125
+
126
+ // Why? we only bind the getter when we have a non falsey value
127
+ if (descriptor.value) descriptor.value.toString = descriptor.bound_getter;
128
+
129
+ // Although its not allowed for convention to have getters
130
+ // and setters with the descriptor value, here we just reuse
131
+ // the descriptor stored value
132
+ obj[prop] = descriptor.value;
133
+ }
134
+
135
+ (fix || obj).attachEvent("onpropertychange", generate_setter(obj, prop, descriptor));
136
+
137
+ } else if (descriptor.get) {
138
+ descriptor.bound_getter = $.extend($.proxy(descriptor.get, obj), descriptor.get);
139
+
140
+ // Why? we only bind the getter when we have a non falsey value
141
+ if (descriptor.value) descriptor.value.toString = descriptor.bound_getter;
142
+
143
+ // Although its not allowed for convention to have getters
144
+ // and setters with the descriptor value, here we just reuse
145
+ // the descriptor stored value
146
+ obj[prop] = descriptor.value;
147
+ } else {
148
+ obj[prop] = descriptor.value;
149
+ }
150
+
151
+ return obj;
152
+ }
153
+
154
+ // Allow others to check requirements for define property
155
+ Object.defineProperty.requiresDomElement = true
156
+ }
157
+
158
+
159
+ // Since we shimed define property, we can also shim defineProperties
160
+ if (!Object.defineProperties) {
161
+ Object.defineProperties = function (obj, props) {
162
+ for (var prop in props) {
163
+ if (hasOwnProp.call(props, prop)) {
164
+ Object.defineProperty(obj, prop, props[prop]);
165
+ }
166
+ }
167
+ };
168
+
169
+ baseElement = document.createElement('fix');
170
+ fixedOwnProperty = function (name) {
171
+ if (name in baseElement) return false;
172
+ return hasOwnProp.call(this, name);
173
+ };
174
+
175
+
176
+ Object.create = function (prototype, properties) {
177
+ var complexDescriptor, fix, descriptor, name;
178
+
179
+ for (name in properties) {
180
+ descriptor = properties[name]
181
+ if (descriptor instanceof Object) {
182
+ complexDescriptor = !!(descriptor.get || descriptor.set)
183
+
184
+ if (complexDescriptor) {
185
+ break;
186
+ }
187
+ }
188
+ }
189
+
190
+ if (complexDescriptor || prototype.nodeName === 'fix' || properties && properties._shim) {
191
+ properties && delete properties._shim;
192
+
193
+ if (typeof object != 'function') {
194
+ fix = document.createElement('fix');
195
+ document.appendChild(fix);
196
+
197
+ // Copy over prototype properties
198
+ for (name in prototype) {
199
+ try {
200
+ if (name in baseElement) continue;
201
+ fix[name] = prototype[name];
202
+ } catch (e) {
203
+ console.warn("Object.create: Invalid shimmed property: " + name + ", with error " + e);
204
+ }
205
+ }
206
+
207
+ // Ensure most normalized for loops to work property, by
208
+ // skiping the dom element properties on own property
209
+ // checking.
210
+ //
211
+ // TODO ensure other own property methods checking
212
+ fix.hasOwnProperty = fixedOwnProperty
213
+
214
+ Object.defineProperties(fix, properties);
215
+ } else {
216
+ throw new TypeError('Functions with complex descriptors not implemented yet');
217
+ }
218
+ return fix;
219
+ } else {
220
+ return objectCreate(prototype, properties)
221
+ }
222
+ }
223
+ };
224
+
225
+
226
+ /* TODO Use define Property, and only define if
227
+ non-enumerable properties are allowed
228
+
229
+ also define __defineGetter__ and __defineSetter__
230
+ if (!Object.defineProperty.requiresDomElement) {
231
+ if (!Object.prototype.__lookupGetter__) {
232
+ Object.__lookupGetter__ = function () {
233
+ console && console.log('__lookupGetter__ not implemented yet');
234
+ return null;
235
+ }
236
+ }
237
+
238
+ if (!Object.__lookupSetter__) {
239
+ Object.prototype.__lookupSetter__ = function () {
240
+ console && console.log('__lookupSetter__ not implemented yet');
241
+ return null;
242
+ }
243
+ }
244
+ }
245
+ */
246
+
247
+ })();
248
+
@@ -0,0 +1,8 @@
1
+ if (!Array.prototype.indexOf) {
2
+ Array.prototype.indexOf = function(obj, start) {
3
+ for (var i = (start || 0), j = this.length; i < j; i++) {
4
+ if (this[i] === obj) { return i; }
5
+ }
6
+ return -1;
7
+ }
8
+ }
@@ -0,0 +1,77 @@
1
+ // ES5 15.2.3.5
2
+ // http://es5.github.com/#x15.2.3.5
3
+ if (!Object.create) {
4
+
5
+ // Contributed by Brandon Benvie, October, 2012
6
+ var createEmpty;
7
+ var supportsProto = Object.prototype.__proto__ === null;
8
+ if (supportsProto || typeof document == 'undefined') {
9
+ createEmpty = function () {
10
+ return { "__proto__": null };
11
+ };
12
+ } else {
13
+ // In old IE __proto__ can't be used to manually set `null`, nor does
14
+ // any other method exist to make an object that inherits from nothing,
15
+ // aside from Object.prototype itself. Instead, create a new global
16
+ // object and *steal* its Object.prototype and strip it bare. This is
17
+ // used as the prototype to create nullary objects.
18
+ createEmpty = function () {
19
+ var iframe = document.createElement('iframe');
20
+ var parent = document.body || document.documentElement;
21
+ iframe.style.display = 'none';
22
+ parent.appendChild(iframe);
23
+ iframe.src = 'javascript:';
24
+ var empty = iframe.contentWindow.Object.prototype;
25
+ parent.removeChild(iframe);
26
+ iframe = null;
27
+ delete empty.constructor;
28
+ delete empty.hasOwnProperty;
29
+ delete empty.propertyIsEnumerable;
30
+ delete empty.isPrototypeOf;
31
+ delete empty.toLocaleString;
32
+ delete empty.toString;
33
+ delete empty.valueOf;
34
+ empty.__proto__ = null;
35
+
36
+ function Empty() {}
37
+ Empty.prototype = empty;
38
+ // short-circuit future calls
39
+ createEmpty = function () {
40
+ return new Empty();
41
+ };
42
+ return new Empty();
43
+ };
44
+ }
45
+
46
+ Object.create = function create(prototype, properties) {
47
+
48
+ var object;
49
+ function Type() {} // An empty constructor.
50
+
51
+ if (prototype === null) {
52
+ object = createEmpty();
53
+ } else {
54
+ if (typeof prototype !== "object" && typeof prototype !== "function") {
55
+ // In the native implementation `parent` can be `null`
56
+ // OR *any* `instanceof Object` (Object|Function|Array|RegExp|etc)
57
+ // Use `typeof` tho, b/c in old IE, DOM elements are not `instanceof Object`
58
+ // like they are in modern browsers. Using `Object.create` on DOM elements
59
+ // is...err...probably inappropriate, but the native version allows for it.
60
+ throw new TypeError("Object prototype may only be an Object or null"); // same msg as Chrome
61
+ }
62
+ Type.prototype = prototype;
63
+ object = new Type();
64
+ // IE has no built-in implementation of `Object.getPrototypeOf`
65
+ // neither `__proto__`, but this manually setting `__proto__` will
66
+ // guarantee that `Object.getPrototypeOf` will work as expected with
67
+ // objects created using `Object.create`
68
+ object.__proto__ = prototype;
69
+ }
70
+
71
+ if (properties !== void 0) {
72
+ Object.defineProperties(object, properties);
73
+ }
74
+
75
+ return object;
76
+ };
77
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "name": "assimilate",
3
+ "version": "0.4.0",
4
+ "license": "UNLICENSE",
5
+ "description": "Extends objects.",
6
+ "keywords": [
7
+ "extend",
8
+ "inherit",
9
+ "mixin"
10
+ ],
11
+ "main": "dist/assimilate.js",
12
+ "dependencies": {},
13
+ "development": {},
14
+ "scripts": [
15
+ "dist/assimilate.js"
16
+ ],
17
+ "styles": [],
18
+ "ignore": [
19
+ "**/.*",
20
+ "build",
21
+ "components",
22
+ "node_modules"
23
+ ],
24
+ "repository": "pluma/assimilate"
25
+ }
@@ -0,0 +1,127 @@
1
+ /*! assimilate 0.4.0 Original author Alan Plum <me@pluma.io>. Released into the Public Domain under the UNLICENSE. @preserve */
2
+ var slice = Array.prototype.slice;
3
+
4
+ function bind(fn, self) {
5
+ var args = slice.call(arguments, 2);
6
+ if (typeof Function.prototype.bind === 'function') {
7
+ return Function.prototype.bind.apply(fn, [self].concat(args));
8
+ }
9
+ return function() {
10
+ return fn.apply(self, args.concat(slice.call(arguments, 0)));
11
+ };
12
+ }
13
+
14
+ function simpleCopy(target, name, source) {
15
+ target[name] = source[name];
16
+ }
17
+
18
+ function properCopy(target, name, source) {
19
+ var descriptor = Object.getOwnPropertyDescriptor(source, name);
20
+ Object.defineProperty(target, name, descriptor);
21
+ }
22
+
23
+ function ownProperties(obj) {
24
+ return Object.getOwnPropertyNames(obj);
25
+ }
26
+
27
+ function allKeys(obj) {
28
+ var keys = [];
29
+ for (var name in obj) {
30
+ keys.push(name);
31
+ }
32
+ return keys;
33
+ }
34
+
35
+ function ownKeys(obj) {
36
+ var keys = [];
37
+ for (var name in obj) {
38
+ if (obj.hasOwnProperty(name)) {
39
+ keys.push(name);
40
+ }
41
+ }
42
+ return keys;
43
+ }
44
+
45
+ function assimilateWithStrategy(target) {
46
+ var strategy = this,
47
+ sources = slice.call(arguments, 1),
48
+ i, source, names, j, name;
49
+
50
+ if (target === undefined || target === null) {
51
+ target = {};
52
+ }
53
+
54
+ for (i = 0; i < sources.length; i++) {
55
+ source = sources[i];
56
+ names = strategy.keysFn(source);
57
+ for (j = 0; j < names.length; j++) {
58
+ name = names[j];
59
+ strategy.copyFn(target, name, source);
60
+ }
61
+ }
62
+
63
+ return target;
64
+ }
65
+
66
+ var strategies = {
67
+ DEFAULT: {
68
+ keysFn: ownKeys,
69
+ copyFn: simpleCopy
70
+ },
71
+ PROPER: {
72
+ keysFn: ownProperties,
73
+ copyFn: properCopy
74
+ },
75
+ INHERITED: {
76
+ keysFn: allKeys,
77
+ copyFn: simpleCopy
78
+ },
79
+ DEEP: {
80
+ keysFn: ownKeys,
81
+ copyFn: function recursiveCopy(target, name, source) {
82
+ var val = source[name];
83
+ var old = target[name];
84
+ if (typeof val === 'object' && typeof old === 'object') {
85
+ assimilateWithStrategy.call(strategies.DEEP, old, val);
86
+ } else {
87
+ simpleCopy(target, name, source);
88
+ }
89
+ }
90
+ },
91
+ STRICT: {
92
+ keysFn: ownKeys,
93
+ copyFn: function strictCopy(target, name, source) {
94
+ if (source[name] !== undefined) {
95
+ simpleCopy(target, name, source);
96
+ }
97
+ }
98
+ },
99
+ FALLBACK: {
100
+ keysFn: function fallbackCopy(target, name, source) {
101
+ if (target[name] === undefined) {
102
+ simpleCopy(target, name, source);
103
+ }
104
+ },
105
+ copyFn: simpleCopy
106
+ }
107
+ };
108
+
109
+ var assimilate = bind(assimilateWithStrategy, strategies.DEFAULT);
110
+ assimilate.strategies = strategies;
111
+ assimilate.withStrategy = function withStrategy(strategy) {
112
+ if (typeof strategy === 'string') {
113
+ strategy = strategies[strategy.toUpperCase()];
114
+ }
115
+ if (!strategy) {
116
+ throw new Error('Unknwon or invalid strategy:' + strategy);
117
+ }
118
+ if (typeof strategy.copyFn !== 'function') {
119
+ throw new Error('Strategy missing copy function:' + strategy);
120
+ }
121
+ if (typeof strategy.keysFn !== 'function') {
122
+ throw new Error('Strategy missing keys function:' + strategy);
123
+ }
124
+ return bind(assimilateWithStrategy, strategy);
125
+ };
126
+
127
+ module.exports = assimilate;
@@ -0,0 +1,75 @@
1
+ // Karma configuration
2
+
3
+ module.exports = function(config) {
4
+ config.set({
5
+
6
+ // base path, that will be used to resolve files and exclude
7
+ basePath: '',
8
+
9
+
10
+ // frameworks to use
11
+ frameworks: ['mocha'],
12
+
13
+
14
+ // list of files / patterns to load in the browser
15
+ files: [
16
+ 'build/test.js',
17
+ 'spec/support/**/*.js',
18
+ 'spec/spec_helper.js',
19
+ 'spec/**/*.js'
20
+ ],
21
+
22
+ // list of files to excudle
23
+ exclude: [
24
+ 'spec/coverage/**/*.js'
25
+ ],
26
+
27
+ client: {
28
+ mocha: {
29
+ ui: 'bdd'
30
+ }
31
+ },
32
+
33
+
34
+ // test results reporter to use
35
+ // possible values: 'dots', 'progress', 'junit', 'growl', 'coverage'
36
+ reporters: ['progress'],
37
+
38
+
39
+ // web server port
40
+ port: 9876,
41
+
42
+
43
+ // enable / disable colors in the output (reporters and logs)
44
+ colors: true,
45
+
46
+
47
+ // level of logging
48
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
49
+ logLevel: config.LOG_INFO,
50
+
51
+
52
+ // enable / disable watching file and executing tests whenever any file changes
53
+ autoWatch: true,
54
+
55
+
56
+ // Start these browsers, currently available:
57
+ // - Chrome
58
+ // - ChromeCanary
59
+ // - Firefox
60
+ // - Opera (has to be installed with `npm install karma-opera-launcher`)
61
+ // - Safari (only Mac; has to be installed with `npm install karma-safari-launcher`)
62
+ // - PhantomJS
63
+ // - IE (only Windows; has to be installed with `npm install karma-ie-launcher`)
64
+ browsers: ['Chrome'],
65
+
66
+
67
+ // If browser does not capture in given timeout [ms], kill it
68
+ captureTimeout: 60000,
69
+
70
+
71
+ // Continuous Integration mode
72
+ // if true, it capture browsers, run tests and exit
73
+ singleRun: false
74
+ });
75
+ };
@@ -99,8 +99,10 @@ descriptors = {
99
99
 
100
100
  association_name = this.resource.toString();
101
101
  if (resource_id == null) {
102
- this.dirty = true;
103
- this.owner[association_name] = null;
102
+ if (this.owner[association_name] || this.owner[association_name + '_id']) {
103
+ this.dirty = true;
104
+ this.owner[association_name] = null;
105
+ }
104
106
  return resource_id;
105
107
  }
106
108
  current_resource_id = (_ref = this.owner.observed[association_name]) != null ? _ref._id : void 0;
@@ -2,7 +2,7 @@
2
2
  var dirtyable, model, record;
3
3
 
4
4
  dirtyable = {
5
- ignores: ['dirty', 'resource', 'route', 'initial_route', 'after_initialize', 'before_initialize', 'parent_resource', 'nested_attributes', 'reloading', 'ready', 'saving', 'salvation', 'sustained', 'element', 'default', 'lock', 'validated', 'validation', 'errors', 'dirty'],
5
+ ignores: ['dirty', 'resource', 'route', 'initial_route', 'after_initialize', 'before_initialize', 'parent_resource', 'nested_attributes', 'reloading', 'ready', 'saving', 'saved', 'failed', 'salvation', 'sustained', 'element', 'default', 'lock', 'validate', 'validated', 'validation', 'errors', 'dirty', 'json'],
6
6
  reserved_filter: function(name) {
7
7
  return this.ignores.indexOf(name) === -1;
8
8
  },
@@ -0,0 +1,9 @@
1
+ {
2
+ "name": "indemma",
3
+ "version": "0.2.12",
4
+ "devDependencies": {
5
+ "mocha": "*",
6
+ "karma": "~0.10",
7
+ "karma-mocha": "~0.1"
8
+ }
9
+ }