ende 0.5.20 → 0.5.21

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 (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
+ }