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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 782ac51e642ce6822b394650aa53e6ab63a45994
4
- data.tar.gz: 4b81c77afcc57a0b7740d6d9fdf5692464680a41
3
+ metadata.gz: 86c1b5df23e0660e26d0c43d16ef7b2332830fdb
4
+ data.tar.gz: fe14006c195d67cccb3282f08a52c335b97dadfc
5
5
  SHA512:
6
- metadata.gz: 340e257738c72eb7029f5ccc441386864ce1f90f7d2e65f34a4d07e1e8595ca2499cc64b697419b15c2baa33f41650f9da0c1c2da97ca40345bf6025434e5390
7
- data.tar.gz: 927fc43599d2788a4a82fcc7965327caa08e8a7be5101af4a5b331a9293beada4b9cd852dbff43613c4c350f0097623b02a9a12468713239f70a24806c3a493d
6
+ metadata.gz: 1a48fadecbb65ce796b2c9fc4d4ec4def9676318258ea413d986615df3d8ce5ba89411892c721bde64e0643d0c4331d7a4f788528e1694f635e1086288a13733
7
+ data.tar.gz: 4e25b60ca3a8cbd9d3db5bf90f9b67399c233a657fa924249919a3253521ec3d43a63ceebe7acbc8c43a744869d09c45db6a2021781754234e40c44034607489
data/component.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "ende",
3
3
  "repo": "indefinido/ende",
4
4
  "description": "Core web application functionacility",
5
- "version": "0.5.19",
5
+ "version": "0.5.20",
6
6
  "keywords": [],
7
7
  "dependencies": {
8
8
  "mikeric/rivets": "v0.5.12",
@@ -0,0 +1,17 @@
1
+ # Coverage reports
2
+
3
+ # Emacs Temporary Files
4
+ *~
5
+ *#
6
+ .#*
7
+
8
+ # Eclipse
9
+ .directory
10
+ .project
11
+ .loadpath
12
+
13
+ # Node installed modules
14
+ node_modules
15
+
16
+ # Mac OS X Files
17
+ .DS_*
@@ -0,0 +1 @@
1
+ indemma
@@ -0,0 +1 @@
1
+ ruby-2.0.0-p195
@@ -0,0 +1,12 @@
1
+ # A sample Gemfile
2
+ source "https://rubygems.org"
3
+
4
+ group :development do
5
+ # gem 'libv8'
6
+ gem 'guard'
7
+ gem 'guard-coffeescript'
8
+ gem 'guard-shell'
9
+ gem "guard-bundler"
10
+ gem "rb-fsevent", :require => false
11
+ gem "growl", "~> 1.0"
12
+ end
@@ -0,0 +1,39 @@
1
+ # A sample Guardfile
2
+ # More info at https://github.com/guard/guard#readme
3
+
4
+ guard 'bundler' do
5
+ watch('Gemfile')
6
+ # Uncomment next line if Gemfile contain `gemspec' command
7
+ # watch(/^.+\.gemspec/)
8
+ end
9
+
10
+ guard 'coffeescript', :input => 'src', :output => '.', :bare => true
11
+ # Add files and commands to this file, like the example:
12
+ # watch(%r{file/path}) { `command(s)` }
13
+ #
14
+ guard 'shell' do
15
+ watch(/(.*).coffee/) { |m|
16
+ puts ' Building tests component'
17
+ puts `component build --name test --dev`
18
+
19
+ puts ' Building development component'
20
+ puts `component build --name development --dev`
21
+
22
+ puts ' Building release component'
23
+ puts `component build --name release`
24
+ }
25
+
26
+ watch(/component.json|lib\/observable/) { |m|
27
+ puts ' Installing possible new components'
28
+ puts `component install --dev`
29
+
30
+ puts ' Building tests component'
31
+ puts `component build --name test --dev`
32
+
33
+ puts ' Building development component'
34
+ puts `component build --name development --dev`
35
+
36
+ puts ' Building release component'
37
+ puts `component build --name release`
38
+ }
39
+ end
File without changes
@@ -0,0 +1,445 @@
1
+
2
+ indemma
3
+ =======
4
+
5
+ Indemma (mind picture → memory), client side, ES5 observable and REST, extensible modular data model.
6
+
7
+ Summary
8
+ -------
9
+
10
+ - We are tired of calling .attr on our models.
11
+ - We are tired of using templates instead of data bindings.
12
+ - We want a decent kind of polyfill to view models and rest clients until polymer is out of beta.
13
+ - Requirements
14
+ - ES5 Getters and Setters (Shim ships with component, IE 10+)
15
+ - ES7 Observer (Shim ships with component, IE ?+)
16
+
17
+ Installation
18
+ ------------
19
+
20
+ $ component install indefinido/indemma
21
+
22
+ Usage
23
+ -----
24
+
25
+ ### Basic Functionality (Query, Observable, Advisable)
26
+
27
+ Basic functionality: Just a copy of [ActiveRecord Interface](https://github.com/rails/rails/blob/master/activerecord) on javascript.
28
+
29
+ #### Model
30
+
31
+ ```javascript
32
+
33
+ require('indemma');
34
+
35
+ var person = model.call({
36
+ resource: 'person',
37
+ record: {
38
+ after_initialize: [] // Callbacks
39
+
40
+ // Default attributes
41
+ avatar: "assets/images/layout/avatar_placeholder.png"
42
+ }
43
+ });
44
+
45
+ // In the future will return a promise object
46
+ // for now it doesn't, i know it's bad
47
+ person.create({name: "Arthur Philip Dent"}, {name: "Ford Perfect"});
48
+
49
+ // some time passed here
50
+
51
+ person.find(1) // {name: "Arthur Philip Dent", subscribe: ..., before: ..., after: ..., ... }
52
+
53
+ person.every() // [{name: "Arthur Philip Dent", subscribe: ..., ... }, {name: "Ford Perfect", subscribe: ..., ... }]
54
+
55
+ // TODO active record interface like: person.where(attribute: value)
56
+ ```
57
+
58
+ #### Record
59
+
60
+ ```javascript
61
+
62
+ require('indemma');
63
+
64
+ var person = model.call({resource: 'person'}),
65
+
66
+ arthur = person({
67
+ name : function () { return this.firstname + " " + this.surname; },
68
+ firstname: "Arthur Philip",
69
+ surname : "Dent",
70
+ species : "Humam"
71
+ });
72
+
73
+ // Subscribe to all changes
74
+ arthur.subscribe(function (updates) {
75
+ var i = updates.length, update;
76
+ while (i--) {
77
+ update = updates[i];
78
+ console.log(update.name, update.type, update.oldValue, '→', update.object[update.name]); // also this[update.name]
79
+ }
80
+ });
81
+
82
+ // Subscribe to single property change
83
+ arthur.subscribe('firstname', function ( update) {
84
+ console.log( update.name, update.type, update.oldValue, '→', update.object[ update.name]); // also this[ update.name]
85
+ });
86
+
87
+ // Advice function calls
88
+ arthur.after('name', function () {
89
+ console.log('excuted after arthur.name()');
90
+ });
91
+
92
+ arthur.firstname = "Arthur Philip Dent";
93
+ delete arthur.name
94
+ ```
95
+
96
+ ### Extensions
97
+
98
+ #### Associations
99
+
100
+ Basic active record like associations
101
+
102
+ ```javascript
103
+ require('indemma');
104
+
105
+ // Activate association support
106
+ require('indemma/lib/record/associations'); // Working on to be require('indemma/association')
107
+ model.associable();
108
+
109
+ var person = model.call({
110
+ resource: 'person',
111
+ has_many: 'towels' // Yes! Say no to camelcase!
112
+ }),
113
+
114
+ towel = model.call({
115
+ resource: 'towel',
116
+ belongs_to: 'person'
117
+ })
118
+
119
+ // Lets have our data
120
+
121
+ arthur = person({
122
+ name : function () { return this.firstname + " " + this.surname; },
123
+ firstname: "Arthur Philip",
124
+ surname : "Dent",
125
+ species : "Humam"
126
+ });
127
+
128
+ // Magic (⚡) and Science (☣) happening now
129
+ microfiber_towel = arthur.towels.create({
130
+ material : 'microfiber',
131
+ color : 'orange',
132
+ functions_amount: Infinity
133
+ });
134
+
135
+
136
+ arthur.towels[0] === microfiber_towel // true
137
+ arthur.towels.length // 1
138
+
139
+ microfiber_towel.person_id // 1
140
+ microfiber_towel.person = person({name: "Ford"}) // 1
141
+ microfiber_towel.person_id // 2 (This may vary depending on storage)
142
+ arthur.towels.length // 0
143
+ ```
144
+
145
+ TODO table with all available methods per association
146
+
147
+
148
+ Nested Attributes
149
+
150
+ ```javascript
151
+ require('indemma');
152
+
153
+ // Activate association support
154
+ require('indemma/lib/record/associations'); // Working on to be require('indemma/association')
155
+ model.associable();
156
+
157
+ var person = model.call({
158
+ resource: 'person',
159
+ nest_attributes: 'towel'
160
+ }),
161
+
162
+ towel = model.call({
163
+ resource: 'towel'
164
+ }),
165
+
166
+ arthur = person({
167
+ name : function () { return this.firstname + " " + this.surname; },
168
+ firstname: "Arthur Philip",
169
+ surname : "Dent",
170
+ species : "Humam"
171
+ });
172
+
173
+ arthur.towel_attributes = { material: 'microfiber', functions: Infinity }
174
+ arthur.towels[0]; // { material: 'microfiber', functions: Infinity } (Still in beta)
175
+
176
+ ```
177
+
178
+ #### Restful
179
+
180
+ ```javascript
181
+
182
+ require('indemma');
183
+
184
+ // Activate restful support
185
+ // Compatible with default rails json rendering e.g. render :json => @person
186
+ // Depends on resourceful module
187
+ require('indemma/lib/record/restful'); // Working on to be require('indemma/restful')
188
+
189
+ var person = model.call({
190
+ resource: 'person'
191
+ }),
192
+
193
+ arthur = person({
194
+ name : function () { return this.firstname + " " + this.surname; },
195
+ firstname: "Arthur Philip",
196
+ surname : "Dent",
197
+ species : "Humam"
198
+ });
199
+
200
+ // ⚡ + ☣ again
201
+ arthur.save(); // POST /people
202
+
203
+ // ... some time passes
204
+ arthur.species = "Homo Sapiens Sapiens";
205
+ arthur.save(); // PUT /people/1
206
+
207
+ // serialization
208
+ arthur.json(); // {name: "Arthur Philip Dent", firstname: "Arthur Philip", surname: "Dent", species: "Humam"}
209
+
210
+ ```
211
+
212
+ #### Resourcefull
213
+
214
+ Inflection and resource modules together.
215
+
216
+ ```javascript
217
+
218
+ require('indemma/lib/record/resource'); // Working on to be require('indemma/resourceable')
219
+
220
+ var person = model.call({
221
+ resource: {
222
+ name : 'person',
223
+ param_name: 'guy',
224
+ scope : 'world'
225
+ // singular: true // Works as singular resource too =D
226
+ }
227
+ }),
228
+
229
+ arthur = person({
230
+ name : "Arthur Philip",
231
+ species: "Humam"
232
+ });
233
+
234
+ // Also sets the accept header to application/json
235
+
236
+ arthur.save(); // POST /world/person?guy[name]=Arthur Philip&guy[species]=Human
237
+
238
+ ```
239
+
240
+ #### Scopable
241
+
242
+ Active Record like scopes and some finders
243
+
244
+ ```javascript
245
+ require('indemma/lib/record/scopable'); // Working on to be require('indemma/scopable)
246
+
247
+ // Sintax is up to change yet
248
+ var person = model.call({
249
+ resource: 'person',
250
+ $gender: String,
251
+ $age: Number
252
+ $towel_ids: Array
253
+
254
+ // $towel: function () {} // Runtime scope builders to come
255
+ });
256
+
257
+ // Also sets the accept header to application/json
258
+
259
+ person.all(); // GET /people
260
+ person.gender('m'); // GET /people?gender=m
261
+ person.age(32); // GET /people?age=32
262
+ person.none.age(32); // GET /people
263
+ person.towel_ids(1, 2, 3); // GET /people?towel_ids[]=1&towel_ids[]=2&towel_ids[]=3
264
+
265
+ ```
266
+
267
+ #### Maid
268
+
269
+ TODO make documentation
270
+
271
+ #### Storage (Persistance, Queryable & Storeable)
272
+
273
+ TODO make documentation
274
+
275
+ ### Validations support
276
+
277
+ ```javascript
278
+ require('indemma');
279
+
280
+ // model definition
281
+ var person = model.call({
282
+ resource : 'person',
283
+
284
+ email : 'Email', // By default uses type validation
285
+ age : Number,
286
+ birthday : {type: Number},
287
+
288
+ // You can use builtin validators sintax
289
+ validates_presence_of : 'age',
290
+ validates_remotely : 'email', // Remote validator will do POST /people/validate?person[email]=arthur@earth.com
291
+
292
+ // Coming soon!
293
+ // validates : {name: {beginsWith: 'arthur', presence: true}} // Or you can use the object syntax
294
+
295
+ });
296
+
297
+
298
+ arthur = person({
299
+ name: "Arthur Philip Dent",
300
+ });
301
+
302
+
303
+ arthur.email = "arthur@earth.com";// "arthur@earth.com"
304
+ arthur.valid; // true
305
+
306
+ arthur.email = "wrong@@";
307
+ arthur.valid; // false
308
+
309
+ // When calling valid attribute will trigger validations
310
+ arthur.errors; // [ email: ["Email 'wrongg@@' is in an invalid format.", "..."]
311
+ arthur.errors.messages.email; // "Email 'wrongg@@' is in an invalid format."
312
+
313
+ // When using remote validations use the returned deferred
314
+ arthur.validate(function (record, validation_results...) {
315
+ alert(record.errors.messages.email);
316
+ });
317
+
318
+ <div>
319
+ <input class="invalid" data-value="user.email" data-class-invalid="user.errors.messages.email" />
320
+ </div>
321
+
322
+ // Validators reference
323
+ person.validators // [ {attribute_name: 'email', type: 'Email', ... } , ... ]
324
+
325
+
326
+ // Suport for custom validators coming soon!
327
+ // person.validators.phone = function (record, attribute, value) {... }
328
+
329
+ ```
330
+
331
+ #### Adapters
332
+
333
+ ##### Rivets
334
+
335
+ ```javascript
336
+ require('indemma');
337
+
338
+ // Activate restful support
339
+ // Requires observer-shim
340
+ // Compatible with default rails json rendering e.g. render :json => @person
341
+ require('indemma/lib/record/rivets'); // Working on to be require('indemma/adapters/rivets')
342
+
343
+ var person = model.call({resource: 'person'}),
344
+
345
+ arthur = person({
346
+ name : function () { return this.firstname + " " + this.surname; },
347
+ firstname: "Arthur Philip",
348
+ surname : "Dent",
349
+ species : "Humam"
350
+ }),
351
+
352
+ template = '<div class="person">' +
353
+ ' <span data-html="person.name"></span> ' +
354
+ ' <span data-html="person.species"></span> ' +
355
+ '</div>';
356
+
357
+ document.body.innerHTML = template;
358
+ element = document.body.children[0];
359
+
360
+ arthur.tie(element); // equivalent to rivets.bind(element, {person: arthur});
361
+
362
+ arthur.species = "Homo Sapiens";
363
+
364
+ ```
365
+
366
+ ## TODO
367
+
368
+ Move API to a custom page or the github wiki
369
+
370
+ ## Tests!
371
+
372
+ A medium part of tests has been written, but more on the go!
373
+ You can help by implementing the body of some spec
374
+
375
+
376
+ ### Define property on steroids sintax support
377
+
378
+ With setter on steroids
379
+
380
+ ```javascript
381
+ require('indemma');
382
+
383
+ // model definition
384
+ var person = model.call({
385
+ resource : 'person',
386
+ name : {
387
+ set : function (name) { this.name = name.split(' '); },
388
+ get : function (name) { this.name.join(' '); }
389
+ },
390
+ firstname: {
391
+ get : function () { this.name[0] },
392
+ }
393
+ });
394
+
395
+ arthur = person({
396
+ name: "Arthur Philip Dent",
397
+ species : "Humam"
398
+ });
399
+
400
+ arthur.firstname // Arthur
401
+ ```
402
+
403
+ ### Inflections support
404
+
405
+ ```javascript
406
+ require('indemma');
407
+
408
+ var person = model.call({resource: 'person'});
409
+ person.plural // 'people'
410
+
411
+ ```
412
+
413
+ ### Storage extension
414
+
415
+ ```javascript
416
+ require('indemma');
417
+
418
+ model.storable()
419
+
420
+ arthur = person({
421
+ name: "Arthur Philip Dent",
422
+ species : "Humam",
423
+ });
424
+
425
+ arthur.save() // Store on selected storage (localStorage, memory, etc ...)
426
+ ```
427
+
428
+ ### Single extensions call option
429
+
430
+ ```javascript
431
+ require('indemma');
432
+
433
+ model(['advisable', 'observable', 'restfulable', 'maid', ... ]);
434
+ ```
435
+
436
+ Credits
437
+ -------
438
+
439
+ Built upon the lovely [coffeescript](http://coffeescript.org/) language
440
+ Building with [the prototypal paradigm](http://ericleads.com/2013/02/fluent-javascript-three-different-kinds-of-prototypal-oo) library [stampit](https://github.com/dilvie/stampit)
441
+
442
+
443
+
444
+
445
+ This project rocks and uses [WTFP-LICENSE](http://www.wtfpl.net)