ende 0.5.1 → 0.5.2

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