ende 0.2.3 → 0.2.4

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 (299) hide show
  1. checksums.yaml +4 -4
  2. data/component.json +2 -1
  3. data/lib/assets/javascripts/aura/extensions/devise.js.coffee +3 -2
  4. data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +1 -2
  5. data/lib/assets/javascripts/aura/extensions/widget/lifecycleable.js.coffee +37 -16
  6. data/lib/assets/javascripts/ende.js.coffee +1 -1
  7. data/lib/assets/javascripts/widgets/dialog/main.js.coffee +100 -0
  8. data/lib/assets/javascripts/widgets/dialog/presenter.js.coffee +18 -0
  9. data/lib/assets/javascripts/widgets/dialog/states/default.html +2 -0
  10. data/lib/assets/javascripts/widgets/dialog/states/index.js.coffee +2 -0
  11. data/lib/assets/javascripts/widgets/list/main.js.coffee +1 -0
  12. data/lib/assets/stylesheets/ende.styl +1 -0
  13. data/lib/ende/version.rb +1 -1
  14. data/lib/ende.rb +6 -2
  15. data/vendor/assets/components/build.css +111 -0
  16. data/vendor/{components/indefinido-indemma/build/release.js → assets/components/build.js} +25468 -17590
  17. data/vendor/assets/components/ende_build.css +111 -0
  18. data/vendor/assets/components/ende_build.js +29571 -0
  19. data/vendor/assets/javascripts/ende/build.js +1962 -0
  20. data/vendor/components/component-classes/component.json +19 -0
  21. data/vendor/components/component-classes/index.js +165 -0
  22. data/vendor/components/component-css/component.json +18 -0
  23. data/vendor/components/component-css/index.js +34 -0
  24. data/vendor/components/component-delegate/component.json +2 -2
  25. data/vendor/components/component-delegate/index.js +4 -4
  26. data/vendor/components/component-dialog/component.json +23 -0
  27. data/vendor/components/component-dialog/dialog.css +92 -0
  28. data/vendor/components/component-dialog/index.js +292 -0
  29. data/vendor/components/component-dialog/template.js +1 -0
  30. data/vendor/components/component-dom/component.json +33 -0
  31. data/vendor/components/component-dom/index.js +725 -0
  32. data/vendor/components/component-domify/component.json +22 -0
  33. data/vendor/components/component-domify/index.js +71 -0
  34. data/vendor/components/component-emitter/component.json +13 -0
  35. data/vendor/components/component-emitter/index.js +156 -0
  36. data/vendor/components/component-event/index.js +8 -11
  37. data/vendor/components/component-indexof/component.json +15 -0
  38. data/vendor/components/component-indexof/index.js +10 -0
  39. data/vendor/components/component-overlay/component.json +22 -0
  40. data/vendor/components/component-overlay/index.js +111 -0
  41. data/vendor/components/component-overlay/overlay.css +19 -0
  42. data/vendor/components/component-overlay/template.js +1 -0
  43. data/vendor/components/component-query/component.json +2 -1
  44. data/vendor/components/component-sort/component.json +20 -0
  45. data/vendor/components/component-sort/index.js +43 -0
  46. data/vendor/components/component-value/component.json +25 -0
  47. data/vendor/components/component-value/index.js +95 -0
  48. data/vendor/components/indefinido-indemma/component.json +2 -3
  49. data/vendor/components/indefinido-indemma/lib/record/resource.js +2 -4
  50. data/vendor/components/mikeric-rivets/component.json +1 -1
  51. data/vendor/components/mikeric-rivets/dist/rivets.js +64 -44
  52. data/vendor/components/paulmillr-es6-shim/component.json +1 -1
  53. data/vendor/components/paulmillr-es6-shim/es6-shim.js +22 -11
  54. data/vendor/components/pluma-assimilate/component.json +1 -1
  55. data/vendor/components/pluma-assimilate/dist/assimilate.js +103 -63
  56. metadata +35 -246
  57. data/lib/tasks/component.thor +0 -63
  58. data/vendor/assets/components/KapIT-observe-utils/component.json +0 -16
  59. data/vendor/assets/components/KapIT-observe-utils/lib/observe-utils.js +0 -780
  60. data/vendor/assets/components/chaijs-assertion-error/component.json +0 -18
  61. data/vendor/assets/components/chaijs-assertion-error/index.js +0 -110
  62. data/vendor/assets/components/chaijs-chai/component.json +0 -47
  63. data/vendor/assets/components/chaijs-chai/index.js +0 -1
  64. data/vendor/assets/components/chaijs-chai/lib/chai/assertion.js +0 -130
  65. data/vendor/assets/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
  66. data/vendor/assets/components/chaijs-chai/lib/chai/interface/assert.js +0 -1080
  67. data/vendor/assets/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
  68. data/vendor/assets/components/chaijs-chai/lib/chai/interface/should.js +0 -76
  69. data/vendor/assets/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
  70. data/vendor/assets/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
  71. data/vendor/assets/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
  72. data/vendor/assets/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
  73. data/vendor/assets/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
  74. data/vendor/assets/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
  75. data/vendor/assets/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
  76. data/vendor/assets/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
  77. data/vendor/assets/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
  78. data/vendor/assets/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
  79. data/vendor/assets/components/chaijs-chai/lib/chai/utils/index.js +0 -108
  80. data/vendor/assets/components/chaijs-chai/lib/chai/utils/inspect.js +0 -320
  81. data/vendor/assets/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
  82. data/vendor/assets/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
  83. data/vendor/assets/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
  84. data/vendor/assets/components/chaijs-chai/lib/chai/utils/test.js +0 -26
  85. data/vendor/assets/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
  86. data/vendor/assets/components/chaijs-chai/lib/chai/utils/type.js +0 -45
  87. data/vendor/assets/components/chaijs-chai/lib/chai.js +0 -80
  88. data/vendor/assets/components/chaijs-deep-eql/component.json +0 -18
  89. data/vendor/assets/components/chaijs-deep-eql/lib/eql.js +0 -257
  90. data/vendor/assets/components/chaijs-type-detect/component.json +0 -16
  91. data/vendor/assets/components/chaijs-type-detect/lib/type.js +0 -142
  92. data/vendor/assets/components/component-bind/component.json +0 -14
  93. data/vendor/assets/components/component-bind/index.js +0 -24
  94. data/vendor/assets/components/component-delegate/component.json +0 -19
  95. data/vendor/assets/components/component-delegate/index.js +0 -42
  96. data/vendor/assets/components/component-event/component.json +0 -13
  97. data/vendor/assets/components/component-event/index.js +0 -40
  98. data/vendor/assets/components/component-jquery/component.json +0 -14
  99. data/vendor/assets/components/component-jquery/index.js +0 -9601
  100. data/vendor/assets/components/component-link-delegate/component.json +0 -23
  101. data/vendor/assets/components/component-link-delegate/index.js +0 -60
  102. data/vendor/assets/components/component-matches-selector/component.json +0 -20
  103. data/vendor/assets/components/component-matches-selector/index.js +0 -45
  104. data/vendor/assets/components/component-query/component.json +0 -21
  105. data/vendor/assets/components/component-query/index.js +0 -21
  106. data/vendor/assets/components/component-type/component.json +0 -18
  107. data/vendor/assets/components/component-type/index.js +0 -32
  108. data/vendor/assets/components/component-url/component.json +0 -17
  109. data/vendor/assets/components/component-url/index.js +0 -63
  110. data/vendor/assets/components/discore-closest/component.json +0 -14
  111. data/vendor/assets/components/discore-closest/index.js +0 -18
  112. data/vendor/assets/components/indefinido-advisable/component.json +0 -21
  113. data/vendor/assets/components/indefinido-advisable/index.js +0 -1
  114. data/vendor/assets/components/indefinido-advisable/lib/advisable.js +0 -60
  115. data/vendor/assets/components/indefinido-indemma/component.json +0 -40
  116. data/vendor/assets/components/indefinido-indemma/index.js +0 -1
  117. data/vendor/assets/components/indefinido-indemma/lib/extensions/rivets.js +0 -23
  118. data/vendor/assets/components/indefinido-indemma/lib/record/associable.js +0 -217
  119. data/vendor/assets/components/indefinido-indemma/lib/record/maid.js +0 -24
  120. data/vendor/assets/components/indefinido-indemma/lib/record/resource.js +0 -104
  121. data/vendor/assets/components/indefinido-indemma/lib/record/rest.js +0 -36
  122. data/vendor/assets/components/indefinido-indemma/lib/record/restfulable.js +0 -326
  123. data/vendor/assets/components/indefinido-indemma/lib/record/scopable.js +0 -279
  124. data/vendor/assets/components/indefinido-indemma/lib/record/translationable.js +0 -19
  125. data/vendor/assets/components/indefinido-indemma/lib/record/validatable.js +0 -216
  126. data/vendor/assets/components/indefinido-indemma/lib/record/validations/associated.js +0 -30
  127. data/vendor/assets/components/indefinido-indemma/lib/record/validations/confirmation.js +0 -19
  128. data/vendor/assets/components/indefinido-indemma/lib/record/validations/cpf.js +0 -60
  129. data/vendor/assets/components/indefinido-indemma/lib/record/validations/presence.js +0 -19
  130. data/vendor/assets/components/indefinido-indemma/lib/record/validations/remote.js +0 -71
  131. data/vendor/assets/components/indefinido-indemma/lib/record.js +0 -167
  132. data/vendor/assets/components/indefinido-indemma/vendor/sinon.js +0 -4290
  133. data/vendor/assets/components/indefinido-indemma/vendor/stampit.js +0 -392
  134. data/vendor/assets/components/indefinido-observable/component.json +0 -25
  135. data/vendor/assets/components/indefinido-observable/components/cjohansen-sinon/sinon.js +0 -4290
  136. data/vendor/assets/components/indefinido-observable/index.js +0 -1
  137. data/vendor/assets/components/indefinido-observable/lib/adapters/rivets.js +0 -26
  138. data/vendor/assets/components/indefinido-observable/lib/observable.js +0 -320
  139. data/vendor/assets/components/indefinido-observable/vendor/shims/accessors-legacy.js +0 -92
  140. data/vendor/assets/components/indefinido-observable/vendor/shims/accessors.js +0 -173
  141. data/vendor/assets/components/indefinido-observable/vendor/shims/array.indexOf.js +0 -8
  142. data/vendor/assets/components/indefinido-observable/vendor/shims/object.create.js +0 -77
  143. data/vendor/assets/components/mikeric-rivets/component.json +0 -15
  144. data/vendor/assets/components/mikeric-rivets/dist/rivets.js +0 -1020
  145. data/vendor/assets/components/paulmillr-es6-shim/component.json +0 -17
  146. data/vendor/assets/components/paulmillr-es6-shim/es6-shim.js +0 -985
  147. data/vendor/assets/components/pluma-assimilate/component.json +0 -25
  148. data/vendor/assets/components/pluma-assimilate/dist/assimilate.js +0 -87
  149. data/vendor/assets/components/segmentio-extend/component.json +0 -13
  150. data/vendor/assets/components/segmentio-extend/index.js +0 -15
  151. data/vendor/components/chaijs-assertion-error/component.json +0 -18
  152. data/vendor/components/chaijs-assertion-error/index.js +0 -110
  153. data/vendor/components/chaijs-chai/component.json +0 -47
  154. data/vendor/components/chaijs-chai/index.js +0 -1
  155. data/vendor/components/chaijs-chai/lib/chai/assertion.js +0 -130
  156. data/vendor/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
  157. data/vendor/components/chaijs-chai/lib/chai/interface/assert.js +0 -1080
  158. data/vendor/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
  159. data/vendor/components/chaijs-chai/lib/chai/interface/should.js +0 -76
  160. data/vendor/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
  161. data/vendor/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
  162. data/vendor/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
  163. data/vendor/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
  164. data/vendor/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
  165. data/vendor/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
  166. data/vendor/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
  167. data/vendor/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
  168. data/vendor/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
  169. data/vendor/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
  170. data/vendor/components/chaijs-chai/lib/chai/utils/index.js +0 -108
  171. data/vendor/components/chaijs-chai/lib/chai/utils/inspect.js +0 -320
  172. data/vendor/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
  173. data/vendor/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
  174. data/vendor/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
  175. data/vendor/components/chaijs-chai/lib/chai/utils/test.js +0 -26
  176. data/vendor/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
  177. data/vendor/components/chaijs-chai/lib/chai/utils/type.js +0 -45
  178. data/vendor/components/chaijs-chai/lib/chai.js +0 -80
  179. data/vendor/components/chaijs-deep-eql/component.json +0 -18
  180. data/vendor/components/chaijs-deep-eql/lib/eql.js +0 -257
  181. data/vendor/components/chaijs-type-detect/component.json +0 -16
  182. data/vendor/components/chaijs-type-detect/lib/type.js +0 -142
  183. data/vendor/components/component-link-delegate/component.json +0 -23
  184. data/vendor/components/component-link-delegate/index.js +0 -60
  185. data/vendor/components/component-url/component.json +0 -17
  186. data/vendor/components/component-url/index.js +0 -63
  187. data/vendor/components/discore-closest/component.json +0 -14
  188. data/vendor/components/discore-closest/index.js +0 -18
  189. data/vendor/components/indefinido-indemma/.gitignore +0 -14
  190. data/vendor/components/indefinido-indemma/.ruby-gemset +0 -1
  191. data/vendor/components/indefinido-indemma/.ruby-version +0 -1
  192. data/vendor/components/indefinido-indemma/Gemfile +0 -13
  193. data/vendor/components/indefinido-indemma/Guardfile +0 -39
  194. data/vendor/components/indefinido-indemma/History.md +0 -0
  195. data/vendor/components/indefinido-indemma/Readme.md +0 -443
  196. data/vendor/components/indefinido-indemma/build/development.js +0 -331
  197. data/vendor/components/indefinido-indemma/build/test.js +0 -331
  198. data/vendor/components/indefinido-indemma/components/chaijs-assertion-error/component.json +0 -18
  199. data/vendor/components/indefinido-indemma/components/chaijs-assertion-error/index.js +0 -110
  200. data/vendor/components/indefinido-indemma/components/chaijs-chai/component.json +0 -47
  201. data/vendor/components/indefinido-indemma/components/chaijs-chai/index.js +0 -1
  202. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/assertion.js +0 -130
  203. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/core/assertions.js +0 -1270
  204. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/assert.js +0 -1080
  205. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/expect.js +0 -12
  206. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/should.js +0 -76
  207. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +0 -94
  208. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addMethod.js +0 -37
  209. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addProperty.js +0 -40
  210. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/eql.js +0 -129
  211. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/flag.js +0 -32
  212. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getActual.js +0 -19
  213. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +0 -25
  214. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getMessage.js +0 -49
  215. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getName.js +0 -20
  216. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getPathValue.js +0 -102
  217. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getProperties.js +0 -35
  218. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/index.js +0 -108
  219. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/inspect.js +0 -320
  220. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/objDisplay.js +0 -48
  221. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +0 -51
  222. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +0 -54
  223. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/test.js +0 -26
  224. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/transferFlags.js +0 -44
  225. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/type.js +0 -45
  226. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai.js +0 -80
  227. data/vendor/components/indefinido-indemma/components/component-bind/component.json +0 -14
  228. data/vendor/components/indefinido-indemma/components/component-bind/index.js +0 -24
  229. data/vendor/components/indefinido-indemma/components/component-jquery/component.json +0 -14
  230. data/vendor/components/indefinido-indemma/components/component-jquery/index.js +0 -9601
  231. data/vendor/components/indefinido-indemma/components/component-type/component.json +0 -18
  232. data/vendor/components/indefinido-indemma/components/component-type/index.js +0 -32
  233. data/vendor/components/indefinido-indemma/components/indefinido-advisable/component.json +0 -21
  234. data/vendor/components/indefinido-indemma/components/indefinido-advisable/index.js +0 -1
  235. data/vendor/components/indefinido-indemma/components/indefinido-advisable/lib/advisable.js +0 -60
  236. data/vendor/components/indefinido-indemma/components/indefinido-observable/component.json +0 -25
  237. data/vendor/components/indefinido-indemma/components/indefinido-observable/components/cjohansen-sinon/sinon.js +0 -4290
  238. data/vendor/components/indefinido-indemma/components/indefinido-observable/index.js +0 -1
  239. data/vendor/components/indefinido-indemma/components/indefinido-observable/lib/adapters/rivets.js +0 -26
  240. data/vendor/components/indefinido-indemma/components/indefinido-observable/lib/observable.js +0 -323
  241. data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors-legacy.js +0 -92
  242. data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors.js +0 -173
  243. data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/array.indexOf.js +0 -8
  244. data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/object.create.js +0 -77
  245. data/vendor/components/indefinido-indemma/components/kapit-observe-utils/component.json +0 -13
  246. data/vendor/components/indefinido-indemma/components/pluma-assimilate/component.json +0 -25
  247. data/vendor/components/indefinido-indemma/components/pluma-assimilate/dist/assimilate.js +0 -87
  248. data/vendor/components/indefinido-indemma/karma.conf.js +0 -86
  249. data/vendor/components/indefinido-indemma/lib/record/errors.js +0 -1
  250. data/vendor/components/indefinido-indemma/spec/record/associable_spec.js +0 -76
  251. data/vendor/components/indefinido-indemma/spec/record/resource_spec.js +0 -90
  252. data/vendor/components/indefinido-indemma/spec/record/rest_spec.js +0 -32
  253. data/vendor/components/indefinido-indemma/spec/record/restfulable_spec.js +0 -232
  254. data/vendor/components/indefinido-indemma/spec/record/scopable_spec.js +0 -201
  255. data/vendor/components/indefinido-indemma/spec/record/translationable.js +0 -28
  256. data/vendor/components/indefinido-indemma/spec/record/validatable_spec.js +0 -111
  257. data/vendor/components/indefinido-indemma/spec/record/validations/associated_spec.js +0 -43
  258. data/vendor/components/indefinido-indemma/spec/record/validations/confirmation_spec.js +0 -36
  259. data/vendor/components/indefinido-indemma/spec/record/validations/cpf_spec.js +0 -35
  260. data/vendor/components/indefinido-indemma/spec/record/validations/presence_spec.js +0 -28
  261. data/vendor/components/indefinido-indemma/spec/record/validations/remote_spec.js +0 -86
  262. data/vendor/components/indefinido-indemma/spec/record/validations/type_spec.js +0 -48
  263. data/vendor/components/indefinido-indemma/spec/record_spec.js +0 -37
  264. data/vendor/components/indefinido-indemma/spec/spec_helper.js +0 -11
  265. data/vendor/components/indefinido-indemma/spec/support/value_objects/phone.js +0 -45
  266. data/vendor/components/indefinido-indemma/src/lib/extensions/rivets.coffee +0 -17
  267. data/vendor/components/indefinido-indemma/src/lib/record/associable.coffee +0 -173
  268. data/vendor/components/indefinido-indemma/src/lib/record/errors.coffee +0 -20
  269. data/vendor/components/indefinido-indemma/src/lib/record/maid.coffee +0 -16
  270. data/vendor/components/indefinido-indemma/src/lib/record/resource.coffee +0 -103
  271. data/vendor/components/indefinido-indemma/src/lib/record/rest.coffee +0 -28
  272. data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +0 -314
  273. data/vendor/components/indefinido-indemma/src/lib/record/scopable.coffee +0 -266
  274. data/vendor/components/indefinido-indemma/src/lib/record/translationable.coffee +0 -18
  275. data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +0 -209
  276. data/vendor/components/indefinido-indemma/src/lib/record/validations/associated.coffee +0 -32
  277. data/vendor/components/indefinido-indemma/src/lib/record/validations/confirmation.coffee +0 -19
  278. data/vendor/components/indefinido-indemma/src/lib/record/validations/cpf.coffee +0 -58
  279. data/vendor/components/indefinido-indemma/src/lib/record/validations/presence.coffee +0 -19
  280. data/vendor/components/indefinido-indemma/src/lib/record/validations/remote.coffee +0 -65
  281. data/vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee +0 -32
  282. data/vendor/components/indefinido-indemma/src/lib/record.coffee +0 -123
  283. data/vendor/components/indefinido-indemma/src/spec/record/associable_spec.coffee +0 -63
  284. data/vendor/components/indefinido-indemma/src/spec/record/resource_spec.coffee +0 -64
  285. data/vendor/components/indefinido-indemma/src/spec/record/rest_spec.coffee +0 -22
  286. data/vendor/components/indefinido-indemma/src/spec/record/restfulable_spec.coffee +0 -164
  287. data/vendor/components/indefinido-indemma/src/spec/record/scopable_spec.coffee +0 -181
  288. data/vendor/components/indefinido-indemma/src/spec/record/translationable.coffee +0 -19
  289. data/vendor/components/indefinido-indemma/src/spec/record/validatable_spec.coffee +0 -100
  290. data/vendor/components/indefinido-indemma/src/spec/record/validations/associated_spec.coffee +0 -35
  291. data/vendor/components/indefinido-indemma/src/spec/record/validations/confirmation_spec.coffee +0 -25
  292. data/vendor/components/indefinido-indemma/src/spec/record/validations/cpf_spec.coffee +0 -28
  293. data/vendor/components/indefinido-indemma/src/spec/record/validations/presence_spec.coffee +0 -24
  294. data/vendor/components/indefinido-indemma/src/spec/record/validations/remote_spec.coffee +0 -72
  295. data/vendor/components/indefinido-indemma/src/spec/record/validations/type_spec.coffee +0 -33
  296. data/vendor/components/indefinido-indemma/src/spec/record_spec.coffee +0 -23
  297. data/vendor/components/indefinido-indemma/src/spec/spec_helper.coffee +0 -9
  298. data/vendor/components/indefinido-indemma/src/spec/support/value_objects/phone.coffee +0 -30
  299. data/vendor/components/indefinido-indemma/vendor/owl/pluralize.js +0 -190
@@ -1 +0,0 @@
1
- module.exports = require('./lib/observable');
@@ -1,26 +0,0 @@
1
- exports.adapter = {
2
- subscribe: function(record, attribute_path, callback) {
3
- if (record == null) {
4
- throw new TypeError('observable.adapters.rivets.subscribe: No record provided for subscription');
5
- }
6
- return record.subscribe(attribute_path, callback);
7
- },
8
- unsubscribe: function(record, attribute_path, callback) {
9
- if (record == null) {
10
- throw new TypeError('observable.adapters.rivets.unsubscribe: No record provided for subscription');
11
- }
12
- return record.unsubscribe(attribute_path, callback);
13
- },
14
- read: function(record, attribute_path) {
15
- if (record == null) {
16
- throw new TypeError('observable.adapters.rivets.read: No record provided for subscription');
17
- }
18
- return record[attribute_path];
19
- },
20
- publish: function(record, attribute_path, value) {
21
- if (record == null) {
22
- throw new TypeError('observable.adapters.rivets.publish: No record provided for subscription');
23
- }
24
- return record[attribute_path] = value;
25
- }
26
- };
@@ -1,320 +0,0 @@
1
- // TODO Better keypath support
2
-
3
- // Shim older browsers
4
- if (!Object.create ) require('../vendor/shims/object.create');
5
- if (!Array.prototype.indexOf) require('../vendor/shims/array.indexOf');
6
-
7
- // Object.defineProperty (for ie5+)
8
- if (typeof require != 'undefined') {
9
- require('../vendor/shims/accessors.js');
10
-
11
- // __lookup*__ and __define*__ for browsers with defineProperty support
12
- // TODO Figure out why gives an infinity loop
13
- require('../vendor/shims/accessors-legacy.js');
14
- }
15
-
16
- // Require Dependencies
17
- if (!window['jQuery']) jQuery = $ = require('jquery');
18
-
19
- // Observable Implementation
20
- var observable, requiresDomElement, check, lookup, mixin, generator, mutations;
21
-
22
- // Support objects
23
-
24
- // TODO implement Object.getOwnPropertyDescriptor
25
- lookup = {
26
- setter: Object.prototype.__lookupSetter__ || function (property) {
27
- return this.observed && this.observed[property + '_setter'];
28
- },
29
- getter: Object.prototype.__lookupGetter__ || function (property) {
30
- var default_getter;
31
- return this.observed && this.observed[property + '_getter'] || (
32
- (default_getter = $.proxy(lookup.default_getter, this, property)) &&
33
- (default_getter.is_default = true) &&
34
- (default_getter)
35
- );
36
- },
37
- types: {
38
- 'undefined': undefined,
39
- 'null': null,
40
- 'true': true,
41
- 'false': false,
42
- 'NaN': NaN
43
- },
44
- // overrides: [Object.prototype.toString, String.prototype.toString, Array.prototype.toString, Number.prototype.toString],
45
- basic_types: [undefined, null],
46
- default_getter: function (property) {
47
- var possible_value = this[property];
48
-
49
- // Getter is the toString property of object
50
- if (possible_value && possible_value.hasOwnProperty('toString')) {
51
-
52
- if (possible_value.toString.is_default) return this.observed[property];
53
-
54
- return possible_value.toString.call(this);
55
-
56
- } else if (possible_value in lookup.types) {
57
-
58
- return lookup.types[possible_value];
59
-
60
- } else return possible_value;
61
- }
62
- };
63
-
64
-
65
- // Core Implementation
66
-
67
- requiresDomElement = Object.defineProperty['requiresDomElement'];
68
-
69
- mixin = {
70
- subscribe: function observable_subscribe (keypath, callback) {
71
- if (keypath == 'observed') throw new TypeError('observable.subscribe: cannot observe reserved property observed');
72
- if ($.isArray(this[keypath])) generator.mutations.call(this, keypath);
73
- generator.observe.call(this, keypath, callback);
74
- return true;
75
- },
76
- unsubscribe: function (object, keypath, callback) {
77
- console.error("observable.unsubscribe not implemented yet.");
78
- console.log(object, keypath, callback);
79
- },
80
- publish: function observable_publish (keypath, value) {
81
- // TODO actually call callbacks
82
- return this[keypath] = value;
83
- }
84
- };
85
-
86
-
87
- if (requiresDomElement) {
88
-
89
- observable = function (object) {
90
-
91
- // observable() or observable(object)
92
- if (this.document && this.location) {
93
- if (!object) {
94
- object = {};
95
- }
96
- // observable.call(...)
97
- } else {
98
- // observable.call(param, param)
99
- if (object) {
100
- throw new TypeError('Two objects provided! Call either with observable.call(object) or observable(object), not with observable.call(param, param)');
101
- // observable.call(object)
102
- } else {
103
- object = this;
104
- }
105
- }
106
-
107
- if (!jQuery.isReady) throw new Error('observable.call: For compatibility reasons, observable can only be called when dom is loaded.');
108
- var fix = document.createElement('fix');
109
-
110
- if (!jQuery.isReady) $(function () {document.body.appendChild(fix);});
111
- else document.body.appendChild(fix);
112
-
113
- if (!object.observed) generator.observable_for(fix);
114
-
115
- return $.extend(fix, object, mixin);
116
- };
117
-
118
- var ignores = document.createElement('fix'), fix_ignores = [], property;
119
-
120
- for (property in ignores) {
121
- fix_ignores.push(property);
122
- }
123
-
124
- observable.ignores = fix_ignores;
125
-
126
- } else {
127
-
128
- observable = function (object) {
129
- // observable() or observable(object)
130
- if (this === window) {
131
- if (!object) {
132
- object = {};
133
- }
134
- // observable.call(...)
135
- } else if (this !== window) {
136
- // observable.call(param, param)
137
- if (object) {
138
- throw new TypeError('Two objects provided! Call either with observable.call(object) or observable(object), not with observable.call(param, param)');
139
- // observable.call(object)
140
- } else {
141
- object = this;
142
- }
143
- }
144
-
145
- if (!object.observed) generator.observable_for(object);
146
-
147
- return $.extend(object, mixin);
148
- };
149
-
150
- observable.ignores = [];
151
- }
152
-
153
-
154
- observable.unobserve = function (object) {
155
- var property;
156
-
157
- for (property in mixin) {
158
- delete object[property];
159
- }
160
-
161
- delete object.observed;
162
- return true;
163
- };
164
-
165
- check = function (keypath, value) {
166
- this.observed[keypath] = value;
167
- return true;
168
- };
169
-
170
- generator = {
171
- observe: function(keypath, callback) {
172
- return Object.defineProperty(this, keypath, {
173
- get: generator.getter.call(this, keypath),
174
- set: generator.setter.call(this, keypath, callback),
175
- enumerable: true
176
- });
177
- },
178
-
179
- observable_for: function (object) {
180
- return Object.defineProperty(object, 'observed', {
181
- configurable: true,
182
- enumerable: false,
183
- value: {}
184
- });
185
- },
186
-
187
- // TODO improve readability
188
- // TODO implement linked list
189
- setter: function subscribed_setter (keypath, callback) {
190
- var setter = lookup.setter.call(this, keypath), current, getter, old_setter;
191
-
192
- // Set value
193
- this.observed[keypath] = lookup.getter.call(this, keypath) && lookup.getter.call(this, keypath)() || this[keypath];
194
-
195
- // First time subscribing
196
- if (!setter) {
197
- setter = function setter (value) {
198
- check.call(this, keypath, value) !== false && setter.callback_thread.call(this, value);
199
- };
200
-
201
- // First time subscribing but does not have callback_thread associated
202
- } else if (!setter.callback_thread) {
203
- old_setter = setter;
204
- setter = function setter (value) {
205
- check.call(this, keypath, value) !== false && setter.callback_thread.call(this, value);
206
- };
207
-
208
- setter.callback_thread = old_setter;
209
- }
210
-
211
- current = setter.callback_thread || $.noop;
212
-
213
- setter.callback_thread = function thread (value) {
214
- current.call(this, value) !== false && callback.call(this, value);
215
- };
216
-
217
- // TODO better implementation of loookup setter / lookup getter on accessors shim
218
- if (requiresDomElement) this.observed[keypath + '_setter'] = setter;
219
-
220
- return setter;
221
- },
222
- getter: function subscribed_getter (keypath) {
223
- var object = this, getter;
224
-
225
- getter = lookup.getter.call(this, keypath) || function root_getter () {
226
- return object.observed[keypath];
227
- };
228
-
229
- // TODO better implementation of loookup setter / lookup getter on accessors shim
230
- if (requiresDomElement) this.observed[keypath + '_getter'] = getter;
231
-
232
- return getter;
233
- },
234
- mutations: function(keypath) {
235
- var setter = lookup.setter.call(this, keypath),
236
- array = this[keypath];
237
-
238
- // First time subscribing, and it is an array
239
- if (!setter) {
240
- // TODO use this.subscribe instead of generator.observe.call
241
- generator.observe.call(this, keypath, function(new_array) {
242
- var i, type, j;
243
-
244
- // Avoid non push operations!
245
- // TODO remove jquery dependency
246
- if ($.type(new_array) !== 'array') return;
247
-
248
- // Skip this if it is not the first time
249
- if (new_array.object === array.object && new_array.thread === array.thread) return;
250
- i = new_array.length;
251
- j = new_array.length;
252
-
253
- new_array.thread = array.thread;
254
- new_array.object = array.object;
255
- new_array.key = keypath;
256
-
257
- while (i--) {
258
- // TODO remove jquery dependency
259
- type = $.type(arguments[i]);
260
- if (!new_array[i].observed
261
- && (type != 'object' || type != 'array')) {
262
- new_array[i] = observable(new_array[i]);
263
- }
264
- }
265
-
266
- new_array.length = j;
267
-
268
- // Update internal property value
269
- $.extend(new_array, mutations.overrides);
270
- });
271
-
272
- setter = lookup.setter.call(this, keypath);
273
- }
274
-
275
- // TODO Transform this code to define property
276
- array.thread = setter.callback_thread;
277
- array.object = this;
278
- array.key = keypath;
279
-
280
- // Override default array methods
281
- $.extend(array, mutations.overrides);
282
-
283
- if (!this.observed.mutate) this.observed.mutate = mutations.mutate;
284
- }
285
- };
286
-
287
- mutations = {
288
- mutate: function(thread, method, array) {
289
- array.method = method;
290
- thread.call(this, array);
291
- this.publish(array.key, array); // TODO ver se é uma boa
292
- delete array.method;
293
- },
294
- overrides: {
295
- push: function() {
296
- var i = arguments.length, operation;
297
-
298
- while (i--) {
299
- !arguments[i].observed && $.type(arguments[i]) == 'object' && (arguments[i] = observable(arguments[i]));
300
- }
301
-
302
- operation = Array.prototype.push.apply(this, arguments); // TODO Convert arguments for real array
303
- this.object.observed.mutate.call(this.object, this.thread, 'push', this);
304
- return operation;
305
- }
306
- }
307
- };
308
-
309
- $('pop shift unshift'.split(' ')).each(function (i, method) {
310
- mutations.overrides[method] = function () {
311
- Array.prototype[method].apply(this, arguments);
312
- this.object.observed.mutate.call(this.object, this.thread, method, this);
313
- };
314
- });
315
-
316
- if (typeof exports != 'undefined') {
317
- exports.mixin = observable;
318
- } else {
319
- window.observable = observable;
320
- }
@@ -1,92 +0,0 @@
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
- }());
@@ -1,173 +0,0 @@
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
- toStrings = [],
11
- features = null,
12
- stack = [], detach,
13
- prototypeBase = [Object, String, Array, Function, Boolean, Number, RegExp, Date, Error];
14
-
15
- // IE7 Does not have Element and Window defined, so only add them if
16
- // they exists check here
17
- if (typeof Element != 'undefined') prototypeBase.push(Element);
18
- if (typeof Window != 'undefined') prototypeBase.push(Window);
19
-
20
- features = {
21
- allowsNonEnumerableProperty: function () {
22
- var broken = false;
23
- try {
24
- defineProp({}, 'x', {})
25
- } catch(e) {
26
- broken = true;
27
- }
28
-
29
- return (!broken) && (!!defineProp);
30
- },
31
- supportsOnPropertyChangeEvent: function () {
32
- var test = document.createElement('domo');
33
- return 'onpropertychange' in test
34
- }
35
- }
36
-
37
- if (!features.allowsNonEnumerableProperty() && features.supportsOnPropertyChangeEvent()) {
38
-
39
- // Check if node is on document
40
- var inDocument = function inDocument (node) {
41
- var curr = node;
42
- while (curr != null) {
43
- curr = curr.parentNode;
44
- if (curr == document) return true;
45
- }
46
- return false;
47
- },
48
-
49
- // Generate property event handler for setting some property
50
- generate_setter = function generate_setter (object, property, descriptor) {
51
- var setter = function object_define_property_shim_change_listener (event) {
52
- var current_value, changed_value;
53
- if (
54
- // if we are setting this property
55
- event.propertyName == property
56
-
57
- // prevent firing setters again
58
- // by checking callstack
59
- && stack.indexOf(property) === -1
60
- ) {
61
- // Remove the event so it doesn't fire again and
62
- // create a loop
63
- object.detachEvent("onpropertychange", setter);
64
-
65
- // If detaching the current setter
66
- // just remove the event listener
67
- if (detach) return;
68
-
69
- // get the changed value, run it through the set function
70
- changed_value = object[property];
71
- descriptor.set.call(object, changed_value);
72
-
73
- // Restore get function if it exists and there's no falsey value
74
- if (descriptor.get && descriptor.value && descriptor.value.toString != descriptor.bound_getter) {
75
- // TODO if (descriptor.get + '' === 'undefined') descriptor.get = ''; // Handle undefined getter
76
- descriptor.value.toString = descriptor.bound_getter
77
- }
78
-
79
- // Update stored values
80
- object[property] = descriptor.value = changed_value;
81
-
82
- // restore the event handler
83
- object.attachEvent("onpropertychange", setter);
84
-
85
- // stack.pop();
86
- return false;
87
- }
88
- }
89
-
90
- return setter;
91
- }
92
-
93
- // Shim define property with apropriated fail cases exceptions
94
- Object.defineProperty = function (obj, prop, descriptor) {
95
- var fix;
96
-
97
- if (!obj.attachEvent) throw new TypeError('Object.defineProperty: First parameter must be a dom element.');
98
-
99
- if (!fix && !inDocument(obj)) throw new TypeError('Object.defineProperty: Dom element must be attached in document.');
100
-
101
- if (!descriptor) throw new TypeError('Object.defineProperty (object, property, descriptor): Descriptor must be an object, was \'' + descriptor + '\'.');
102
-
103
- if ((descriptor.get || descriptor.set) && descriptor.value) throw new TypeError('Object.defineProperty: Descriptor must have only getters and setters or value.');
104
-
105
- // Store current value in descriptor
106
- descriptor.value = descriptor.value || (descriptor.get && descriptor.get.call(obj)) || obj[prop];
107
-
108
- if (descriptor.get || descriptor.set) {
109
- // Detach old listeners if any
110
- detach = true;
111
- obj[prop] = 'detaching';
112
- detach = false;
113
-
114
- if (descriptor.get) {
115
- descriptor.bound_getter = $.extend($.proxy(descriptor.get, obj), descriptor.get);
116
-
117
- // We only bind the getter when we have a non falsey value
118
- if (descriptor.value) descriptor.value.toString = descriptor.bound_getter;
119
-
120
- // Although its not allowed for convention to have getters
121
- // and setters with the descriptor value, here we just reuse
122
- // the descriptor stored value
123
- obj[prop] = descriptor.value;
124
- }
125
-
126
- (fix || obj).attachEvent("onpropertychange", generate_setter(obj, prop, descriptor));
127
-
128
- } else {
129
- obj[prop] = descriptor.value;
130
- }
131
-
132
- return obj;
133
- }
134
-
135
- // Allow others to check requirements for define property
136
- Object.defineProperty.requiresDomElement = true
137
- }
138
-
139
-
140
- // Since we shimed define property, we can also shim defineProperties
141
- if (!Object.defineProperties) {
142
- Object.defineProperties = function (obj, props) {
143
- for (var prop in props) {
144
- if (hasOwnProp.call(props, prop)) {
145
- Object.defineProperty(obj, prop, props[prop]);
146
- }
147
- }
148
- };
149
- }
150
-
151
- /* TODO Use define Property, and only define if
152
- non-enumerable properties are allowed
153
-
154
- also define __defineGetter__ and __defineSetter__
155
- if (!Object.defineProperty.requiresDomElement) {
156
- if (!Object.prototype.__lookupGetter__) {
157
- Object.__lookupGetter__ = function () {
158
- console && console.log('__lookupGetter__ not implemented yet');
159
- return null;
160
- }
161
- }
162
-
163
- if (!Object.__lookupSetter__) {
164
- Object.prototype.__lookupSetter__ = function () {
165
- console && console.log('__lookupSetter__ not implemented yet');
166
- return null;
167
- }
168
- }
169
- }
170
- */
171
-
172
- })();
173
-
@@ -1,8 +0,0 @@
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
- }
@@ -1,77 +0,0 @@
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
- }