ende 0.5.20 → 0.5.21

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. checksums.yaml +4 -4
  2. data/component.json +1 -1
  3. data/components/indefinido/indemma/master/.gitignore +17 -0
  4. data/components/indefinido/indemma/master/.ruby-gemset +1 -0
  5. data/components/indefinido/indemma/master/.ruby-version +1 -0
  6. data/components/indefinido/indemma/master/Gemfile +12 -0
  7. data/components/indefinido/indemma/master/Guardfile +39 -0
  8. data/components/indefinido/indemma/master/History.md +0 -0
  9. data/components/indefinido/indemma/master/Readme.md +445 -0
  10. data/components/indefinido/indemma/master/build/development.js +26123 -0
  11. data/components/indefinido/indemma/master/build/release.js +16741 -0
  12. data/components/indefinido/indemma/master/build/test.js +26123 -0
  13. data/components/indefinido/indemma/master/component.json +1 -1
  14. data/components/indefinido/indemma/master/components/chaijs/assertion-error/1.0.0/component.json +18 -0
  15. data/components/indefinido/indemma/master/components/chaijs/assertion-error/1.0.0/index.js +110 -0
  16. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/.gitignore +22 -0
  17. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/.mailmap +1 -0
  18. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/.npmignore +14 -0
  19. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/.travis.yml +14 -0
  20. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/CONTRIBUTING.md +173 -0
  21. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/History.md +895 -0
  22. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/Makefile +93 -0
  23. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/README.md +99 -0
  24. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/ReleaseNotes.md +482 -0
  25. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/bower.json +27 -0
  26. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/chai.js +4782 -0
  27. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/component.json +50 -0
  28. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/index.js +1 -0
  29. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/karma.conf.js +28 -0
  30. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/karma.sauce.js +41 -0
  31. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/assertion.js +130 -0
  32. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/config.js +50 -0
  33. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/core/assertions.js +1314 -0
  34. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/interface/assert.js +1056 -0
  35. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/interface/expect.js +12 -0
  36. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/interface/should.js +78 -0
  37. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/addChainableMethod.js +111 -0
  38. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/addMethod.js +43 -0
  39. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/addProperty.js +40 -0
  40. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/flag.js +32 -0
  41. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getActual.js +18 -0
  42. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getEnumerableProperties.js +25 -0
  43. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getMessage.js +49 -0
  44. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getName.js +20 -0
  45. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getPathValue.js +102 -0
  46. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/getProperties.js +35 -0
  47. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/index.js +114 -0
  48. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/inspect.js +320 -0
  49. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/objDisplay.js +49 -0
  50. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteChainableMethod.js +53 -0
  51. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteMethod.js +51 -0
  52. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/overwriteProperty.js +54 -0
  53. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/test.js +26 -0
  54. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/transferFlags.js +44 -0
  55. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai/utils/type.js +45 -0
  56. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/lib/chai.js +87 -0
  57. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/package.json +42 -0
  58. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/sauce.browsers.js +128 -0
  59. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/support/sauce/sauce_connect_block.sh +7 -0
  60. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/support/sauce/sauce_connect_setup.sh +53 -0
  61. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/assert.js +638 -0
  62. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/auth/.gitkeep +0 -0
  63. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/bootstrap/index.js +22 -0
  64. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/bootstrap/karma.js +22 -0
  65. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/configuration.js +133 -0
  66. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/display/errors.js +14 -0
  67. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/display/message.js +47 -0
  68. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/expect.js +814 -0
  69. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/globalShould.js +15 -0
  70. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/plugins.js +24 -0
  71. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/should.js +744 -0
  72. data/components/indefinido/indemma/master/components/chaijs/chai/1.9.1/test/utilities.js +309 -0
  73. data/components/indefinido/indemma/master/components/chaijs/deep-eql/0.1.3/component.json +20 -0
  74. data/components/indefinido/indemma/master/components/chaijs/deep-eql/0.1.3/lib/eql.js +257 -0
  75. data/components/indefinido/indemma/master/components/chaijs/type-detect/0.1.1/component.json +18 -0
  76. data/components/indefinido/indemma/master/components/chaijs/type-detect/0.1.1/lib/type.js +142 -0
  77. data/components/indefinido/indemma/master/components/component/bind/1.0.0/component.json +14 -0
  78. data/components/indefinido/indemma/master/components/component/bind/1.0.0/index.js +23 -0
  79. data/components/indefinido/indemma/master/components/component/jquery/1.0.0/component.json +10 -0
  80. data/components/indefinido/indemma/master/components/component/jquery/1.0.0/index.js +10308 -0
  81. data/components/indefinido/indemma/master/components/component/type/1.0.0/component.json +20 -0
  82. data/components/indefinido/indemma/master/components/component/type/1.0.0/index.js +32 -0
  83. data/components/indefinido/indemma/master/components/indefinido/advisable/master/component.json +21 -0
  84. data/components/indefinido/indemma/master/components/indefinido/advisable/master/index.js +1 -0
  85. data/components/indefinido/indemma/master/components/indefinido/advisable/master/lib/advisable.js +60 -0
  86. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/component.json +39 -0
  87. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/index.js +1 -0
  88. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/adapters/rivets.js +40 -0
  89. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/legacy/notifierable.js +145 -0
  90. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/legacy/schedulerable.js +147 -0
  91. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/lookup.js +38 -0
  92. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable/keypath_observer.js +38 -0
  93. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable/observation.js +45 -0
  94. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable/selection.js +57 -0
  95. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable/self_observer.js +38 -0
  96. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/observable.js +97 -0
  97. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/lib/platform.js +12 -0
  98. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/observe-js/observe.js +1631 -0
  99. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/shims/accessors-legacy.js +92 -0
  100. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/shims/accessors.js +248 -0
  101. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/shims/array.indexOf.js +8 -0
  102. data/components/indefinido/indemma/master/components/indefinido/observable/es6-modules/vendor/shims/object.create.js +77 -0
  103. data/components/indefinido/indemma/master/components/pluma/assimilate/0.4.0/component.json +25 -0
  104. data/components/indefinido/indemma/master/components/pluma/assimilate/0.4.0/dist/assimilate.js +127 -0
  105. data/components/indefinido/indemma/master/karma.conf.js +75 -0
  106. data/components/indefinido/indemma/master/lib/record/associable.js +4 -2
  107. data/components/indefinido/indemma/master/lib/record/dirtyable.js +1 -1
  108. data/components/indefinido/indemma/master/package.json +9 -0
  109. data/components/indefinido/indemma/master/spec/record/associable_spec.js +211 -0
  110. data/components/indefinido/indemma/master/spec/record/dirtyable_spec.js +57 -0
  111. data/components/indefinido/indemma/master/spec/record/maid_spec.js +40 -0
  112. data/components/indefinido/indemma/master/spec/record/persistable_spec.js +46 -0
  113. data/components/indefinido/indemma/master/spec/record/queryable_spec.js +39 -0
  114. data/components/indefinido/indemma/master/spec/record/resource_spec.js +93 -0
  115. data/components/indefinido/indemma/master/spec/record/rest_spec.js +32 -0
  116. data/components/indefinido/indemma/master/spec/record/restfulable_spec.js +346 -0
  117. data/components/indefinido/indemma/master/spec/record/scopable_spec.js +242 -0
  118. data/components/indefinido/indemma/master/spec/record/storable_spec.js +44 -0
  119. data/components/indefinido/indemma/master/spec/record/translationable.js +28 -0
  120. data/components/indefinido/indemma/master/spec/record/validatable_spec.js +142 -0
  121. data/components/indefinido/indemma/master/spec/record/validations/associated_spec.js +43 -0
  122. data/components/indefinido/indemma/master/spec/record/validations/confirmation_spec.js +36 -0
  123. data/components/indefinido/indemma/master/spec/record/validations/cpf_spec.js +34 -0
  124. data/components/indefinido/indemma/master/spec/record/validations/presence_spec.js +28 -0
  125. data/components/indefinido/indemma/master/spec/record/validations/remote_spec.js +87 -0
  126. data/components/indefinido/indemma/master/spec/record/validations/type_spec.js +48 -0
  127. data/components/indefinido/indemma/master/spec/record_spec.js +49 -0
  128. data/components/indefinido/indemma/master/spec/spec_helper.js +15 -0
  129. data/components/indefinido/indemma/master/spec/support/value_objects/phone.js +45 -0
  130. data/components/indefinido/indemma/master/src/lib/extensions/rivets.coffee +17 -0
  131. data/components/indefinido/indemma/master/src/lib/record/associable.coffee +419 -0
  132. data/components/indefinido/indemma/master/src/lib/record/dirtyable.coffee +47 -0
  133. data/components/indefinido/indemma/master/src/lib/record/errors.coffee +20 -0
  134. data/components/indefinido/indemma/master/src/lib/record/maid.coffee +16 -0
  135. data/components/indefinido/indemma/master/src/lib/record/persistable.coffee +34 -0
  136. data/components/indefinido/indemma/master/src/lib/record/queryable.coffee +29 -0
  137. data/components/indefinido/indemma/master/src/lib/record/resource.coffee +107 -0
  138. data/components/indefinido/indemma/master/src/lib/record/rest.coffee +34 -0
  139. data/components/indefinido/indemma/master/src/lib/record/restfulable.coffee +487 -0
  140. data/components/indefinido/indemma/master/src/lib/record/scopable.coffee +279 -0
  141. data/components/indefinido/indemma/master/src/lib/record/storable.coffee +49 -0
  142. data/components/indefinido/indemma/master/src/lib/record/translationable.coffee +18 -0
  143. data/components/indefinido/indemma/master/src/lib/record/validatable.coffee +241 -0
  144. data/components/indefinido/indemma/master/src/lib/record/validations/associated.coffee +34 -0
  145. data/components/indefinido/indemma/master/src/lib/record/validations/confirmation.coffee +17 -0
  146. data/components/indefinido/indemma/master/src/lib/record/validations/cpf.coffee +57 -0
  147. data/components/indefinido/indemma/master/src/lib/record/validations/presence.coffee +16 -0
  148. data/components/indefinido/indemma/master/src/lib/record/validations/remote.coffee +61 -0
  149. data/components/indefinido/indemma/master/src/lib/record/validations/type.coffee +31 -0
  150. data/components/indefinido/indemma/master/src/lib/record/validations/validatorable.coffee +5 -0
  151. data/components/indefinido/indemma/master/src/lib/record.coffee +143 -0
  152. data/components/indefinido/indemma/master/src/spec/record/associable_spec.coffee +205 -0
  153. data/components/indefinido/indemma/master/src/spec/record/dirtyable_spec.coffee +47 -0
  154. data/components/indefinido/indemma/master/src/spec/record/maid_spec.coffee +34 -0
  155. data/components/indefinido/indemma/master/src/spec/record/persistable_spec.coffee +39 -0
  156. data/components/indefinido/indemma/master/src/spec/record/queryable_spec.coffee +33 -0
  157. data/components/indefinido/indemma/master/src/spec/record/resource_spec.coffee +69 -0
  158. data/components/indefinido/indemma/master/src/spec/record/rest_spec.coffee +22 -0
  159. data/components/indefinido/indemma/master/src/spec/record/restfulable_spec.coffee +257 -0
  160. data/components/indefinido/indemma/master/src/spec/record/scopable_spec.coffee +227 -0
  161. data/components/indefinido/indemma/master/src/spec/record/storable_spec.coffee +39 -0
  162. data/components/indefinido/indemma/master/src/spec/record/translationable.coffee +19 -0
  163. data/components/indefinido/indemma/master/src/spec/record/validatable_spec.coffee +127 -0
  164. data/components/indefinido/indemma/master/src/spec/record/validations/associated_spec.coffee +35 -0
  165. data/components/indefinido/indemma/master/src/spec/record/validations/confirmation_spec.coffee +25 -0
  166. data/components/indefinido/indemma/master/src/spec/record/validations/cpf_spec.coffee +27 -0
  167. data/components/indefinido/indemma/master/src/spec/record/validations/presence_spec.coffee +24 -0
  168. data/components/indefinido/indemma/master/src/spec/record/validations/remote_spec.coffee +74 -0
  169. data/components/indefinido/indemma/master/src/spec/record/validations/type_spec.coffee +33 -0
  170. data/components/indefinido/indemma/master/src/spec/record_spec.coffee +29 -0
  171. data/components/indefinido/indemma/master/src/spec/spec_helper.coffee +11 -0
  172. data/components/indefinido/indemma/master/src/spec/support/value_objects/phone.coffee +30 -0
  173. data/components/indefinido/indemma/master/vendor/object/mixin.js +196 -0
  174. data/components/indefinido/indemma/master/vendor/spec/sinon/assert.js +199 -0
  175. data/components/indefinido/indemma/master/vendor/spec/sinon/behavior.js +334 -0
  176. data/components/indefinido/indemma/master/vendor/spec/sinon/call.js +205 -0
  177. data/components/indefinido/indemma/master/vendor/spec/sinon/collection.js +155 -0
  178. data/components/indefinido/indemma/master/vendor/spec/sinon/match.js +245 -0
  179. data/components/indefinido/indemma/master/vendor/spec/sinon/mock.js +451 -0
  180. data/components/indefinido/indemma/master/vendor/spec/sinon/sandbox.js +144 -0
  181. data/components/indefinido/indemma/master/vendor/spec/sinon/spy.js +413 -0
  182. data/components/indefinido/indemma/master/vendor/spec/sinon/stub.js +161 -0
  183. data/components/indefinido/indemma/master/vendor/spec/sinon/test.js +77 -0
  184. data/components/indefinido/indemma/master/vendor/spec/sinon/test_case.js +99 -0
  185. data/components/indefinido/indemma/master/vendor/spec/sinon/util/event.js +94 -0
  186. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_server.js +212 -0
  187. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_server_with_clock.js +83 -0
  188. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_timers.js +405 -0
  189. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_xdomain_request.js +206 -0
  190. data/components/indefinido/indemma/master/vendor/spec/sinon/util/fake_xml_http_request.js +575 -0
  191. data/components/indefinido/indemma/master/vendor/spec/sinon/util/timers_ie.js +31 -0
  192. data/components/indefinido/indemma/master/vendor/spec/sinon/util/xdr_ie.js +14 -0
  193. data/components/indefinido/indemma/master/vendor/spec/sinon/util/xhr_ie.js +19 -0
  194. data/components/indefinido/indemma/master/vendor/spec/sinon.js +383 -0
  195. data/lib/assets/javascripts/value_objects/phone.js.coffee +3 -1
  196. data/lib/assets/javascripts/widgets/viewer/plugins/scopable.js.coffee +5 -5
  197. data/lib/ende/version.rb +1 -1
  198. data/vendor/assets/components/ende_build.css +4 -4
  199. data/vendor/assets/components/ende_build.js +7974 -7889
  200. metadata +191 -5
  201. data/vendor/assets/component/build.css +0 -112
  202. data/vendor/assets/components/build.css +0 -112
  203. data/vendor/assets/components/indemma_with_none.js +0 -30553
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)