ende 0.5.1 → 0.5.2

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 (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,61 +0,0 @@
1
- # TODO Add base settings to validation
2
- # model = window.model
3
-
4
- # TODO implement method
5
- # model[resource].validators_on 'field' # Get all validators related to this field
6
-
7
- rest = require '../rest'
8
- stampit = require '../../../vendor/stampit'
9
-
10
- remoteable = stampit
11
- validate_each: (record, attribute, value) ->
12
- data = @json record
13
-
14
- # TODO best partial application
15
- # @post(data).done(_.partial @succeeded, record)
16
- @post(data).done((json) => @succeeded(json, record))
17
-
18
- json: (record) ->
19
- param = @resource.param_name || @resource.toString()
20
-
21
- data = {}
22
- data[param] = record.json()
23
-
24
- # TODO stop renaming id field, lol
25
- data[param].id ||= data[param]._id
26
- delete data[param]._id
27
-
28
- data
29
-
30
- # TODO Use rest.post
31
- post: (data) ->
32
-
33
- jQuery.ajax
34
- url : @route
35
- data : data
36
- type : 'post'
37
- dataType: 'json'
38
- context : @
39
-
40
- succeeded: (json, record) ->
41
- error_messages = json[@attribute_name]
42
-
43
- return unless error_messages
44
-
45
- for error_message in error_messages
46
- record.errors.add @attribute_name, 'server', server_message: error_message
47
- ,
48
- message: "Remote validation failed"
49
- route: null
50
- , ->
51
- # TODO discover why @model.route is coming null!
52
- # Desglobalize model constant
53
- pluralized_resource = model.pluralize @model.resource.toString()
54
- @resource = @model.resource
55
- @route ||= "/#{pluralized_resource}/validate"
56
- @
57
-
58
-
59
- composed = stampit.compose require('./validatorable'), remoteable
60
- composed.definition_key = 'validates_remotely'
61
- module.exports = composed
@@ -1,31 +0,0 @@
1
- # TODO Add base settings to validation
2
- # model = window.model
3
-
4
- # TODO implement method
5
- # model[resource].validators_on 'field' # Get all validators related to this field
6
-
7
- validations = require '../validatable'
8
- stampit = require '../../../vendor/stampit'
9
-
10
- typeable = stampit
11
- validate_each: (record, attribute, value) ->
12
- # TODO store type on validator instantiation
13
- @type ||= model[record.resource.toString()][attribute]
14
-
15
- if value
16
-
17
- if value instanceof @type
18
-
19
- # TODO store type_name on costructor
20
- @type_name ||= @type.name
21
-
22
- unless value.valid # Will trigger validation
23
- record.errors.add attribute, 'type', type_name: @type_name?
24
-
25
- else
26
- throw new Error "Invalid attribute value type! Found #{typeof value} expected #{@type.name}"
27
-
28
-
29
- composed = stampit.compose require('./validatorable'), typeable
30
- composed.definition_key = 'validates_type_of'
31
- module.exports = composed
@@ -1,5 +0,0 @@
1
- stampit = require '../../../vendor/stampit'
2
-
3
- module.exports = stampit
4
- validate: -> throw new Error 'Composed factory must override the validate method'
5
- validate_each: -> throw new Error 'Composed factory must override the validate each method'
@@ -1,138 +0,0 @@
1
- $ = require 'jquery'
2
- type = require 'type'
3
- bind = require 'bind'
4
- observable = require('observable').mixin
5
- advisable = require('advisable' ).mixin
6
- extend = require 'assimilate'
7
- merge = require('assimilate').withStrategy 'deep'
8
-
9
- # TODO support other type of associations
10
- @model = do -> # mixin
11
- modelable =
12
- after_mix: []
13
- record:
14
- # TODO usar deferred
15
- after_initialize: []
16
- # TODO usar deferred
17
- before_initialize: []
18
- every: ->
19
- # TODO transform model in a array like object and store cache in root
20
- @cache
21
- # TODO better find support
22
- create: (params...) ->
23
- # Implementat non restful model creation
24
- throw 'model.create not implemented yet, try using the restful.model.create method'
25
- # find: (id) ->
26
- # @where id: id, true
27
- where: (conditions, first = false) ->
28
- results = []
29
- conditions.id = [conditions.id] if type(conditions.id) != 'array'
30
- # TODO transform model in a array like object and store cache in root
31
- for record in @cache when conditions.id.indexOf(record._id) isnt -1
32
- if first
33
- return record
34
- else
35
- results.push record
36
-
37
- if first then null else results
38
-
39
- initialize_record = (data = {resource: @resource, parent_resource: @parent_resource}) ->
40
- data.resource ||= @resource
41
- data.parent_resource ||= @resource.parent || @parent_resource
42
- data.route ||= @route
43
- data.nested_attributes = @nested_attributes || []
44
-
45
- # instance = record.call extend data, @record # TODO remove @record from outside scop
46
- after_initialize = (data.after_initialize || []).concat(@record.after_initialize)
47
-
48
- # TODO only shim in older browsers
49
- # TODO try to remove _shim need
50
- creation = extend Object.create(data, {_shim: {}}), @record, creation, after_initialize: after_initialize
51
-
52
- # TODO use deferred instead of before_initialize array
53
- for callback, index in @record.before_initialize
54
- callback.call @, creation
55
-
56
- instance = record.call creation # TODO remove @record from outside scope
57
-
58
-
59
- # Call and remove used callbacks
60
- # TODO use deferred instead of after_initialize array
61
- for callback, index in instance.after_initialize
62
- callback.call instance, instance
63
-
64
- delete instance.after_initialize
65
-
66
- instance
67
-
68
-
69
- # Create model
70
- mixer = (options) ->
71
- throw 'Model mixin called incorrectly call with model.call {} instead of model({})' if @ == window
72
- mixer.stale = true unless mixer.stale # Prevent model changes
73
-
74
- # TODO Use stampit and solve this mess!!
75
- if @record and @record.after_initialize
76
- after_initialize = @record.after_initialize.splice 0
77
- else
78
- after_initialize = []
79
-
80
- instance = bind @, initialize_record
81
-
82
- extend instance, merge @, modelable
83
-
84
- @record = instance.record = merge {}, instance.record, modelable.record
85
- @record.after_initialize = instance.record.after_initialize = instance.record.after_initialize.concat after_initialize
86
-
87
- @record.before_initialize = instance.record.before_initialize.concat []
88
-
89
- callback.call instance, instance for callback in modelable.after_mix
90
-
91
- # Store model for later use
92
-
93
- # TODO implement correctly stampit usage, and remove the need for
94
- # direct storage
95
- mixer[@resource.name || @resource.toString()] = instance
96
-
97
- mixer.mix = (blender) ->
98
- throw "Trying to change model mixin with #{object} but model already used.\nCheck your configuration order" if @stale
99
-
100
- blender modelable
101
-
102
- # window.model
103
- mixer
104
-
105
- @record = do -> # mixin
106
-
107
- callbacks =
108
- # TODO search for a existing word and rename method, 'smudge' perhaps?
109
- dirtify: ->
110
- # TODO add suport to subscribe to any property
111
- # @subscribe (prop, value, old) ->
112
- # if prop isnt 'dirty' and not @dirty and value isnt old
113
- # console.groupCollapsed "◉ Property '#{prop}' dirtied a #{@resource}"
114
- # console.log old, "→", value
115
- # console.log @
116
- # console.groupEnd()
117
- # @dirty = true
118
-
119
- recordable =
120
- # TODO usar deferred
121
- dirty: false
122
- after_initialize: [ callbacks.dirtify ]
123
-
124
- that = (data) ->
125
- throw "Mixin called incorrectly, call mixin with call method: record.call(object, data)" if @ == window
126
-
127
- data ||= {}
128
- after_initialize = (@after_initialize || []).concat(data.after_initialize || []).concat(recordable.after_initialize)
129
- advisable observable(extend(@, recordable, data, after_initialize: after_initialize))
130
-
131
-
132
- that.mix = (blender) ->
133
- blender recordable
134
-
135
- that
136
-
137
- exports.record = @record
138
- exports.model = @model
@@ -1,130 +0,0 @@
1
- root = exports ? window
2
-
3
- require 'indemma/lib/record/associable'
4
-
5
- describe 'record', ->
6
- record = root.record
7
-
8
- it 'should create a record'
9
-
10
- describe 'model', ->
11
- model = root.model
12
- arthur = radio = null
13
- person = corporation = null
14
-
15
- beforeEach ->
16
- corporation = model.call
17
- resource: 'corporation'
18
-
19
- # TODO implement support for self referential associations
20
- friend = model.call
21
- resource: 'friends'
22
-
23
-
24
- person = model.call
25
- resource : 'person'
26
- has_many : 'friends'
27
- belongs_to: 'corporation'
28
-
29
- radio = corporation
30
- _id: 1
31
- name: 'Local Radio'
32
-
33
- ford = friend
34
- _id: 2
35
- name: 'Ford Perfect'
36
-
37
- arthur = person
38
- _id: 3
39
- name: 'Arthur Philip Dent'
40
-
41
- describe 'has_one', ->
42
- it 'should add a has_one property with the associations descriptions', ->
43
- $.type(person.has_one).should.be.eq 'array'
44
-
45
-
46
- describe 'belongs_to', ->
47
- it 'should add a belongs_to property with the associations descriptions', ->
48
- $.type(person.belongs_to).should.be.eq 'array'
49
-
50
-
51
- describe "#associated_id", ->
52
- it 'should return an partial resource when acessing associated', ->
53
- arthur.corporation_id = radio._id
54
-
55
- arthur.should.have.property 'corporation'
56
- arthur.corporation.should.be.object
57
- arthur.corporation.should.have.property 'resource'
58
- arthur.corporation.should.have.property '_id', radio._id
59
-
60
- xit 'should fetch the resource when accessing associated and resource not present', (done) ->
61
- radio = corporation
62
- _id: 1
63
- name: 'Local Radio'
64
-
65
- arthur.corporation_id = radio._id
66
-
67
- arthur.corporation.should.be.object
68
- arthur.corporation.should.have.property 'resource', radio.resource
69
- arthur.corporation._id.should.be null
70
- arthur.corporation.locking.should.be.object
71
-
72
- arthur.corporation.locking.done (corporation) ->
73
- corporation.should.have.property '_id' , radio.id
74
- corporation.should.have.property 'name', radio.name
75
-
76
-
77
- describe "#associated", ->
78
-
79
- it 'should update associated id and record when associated record changes', ->
80
- radio = corporation
81
- _id: 1
82
- name: 'Local Radio'
83
- sustained: true
84
-
85
- expect(arthur.corporation).to.be.undefined
86
-
87
- arthur.corporation = radio
88
-
89
- arthur.should.to.have.property 'corporation', radio
90
- arthur.should.to.have.property 'corporation_id', radio._id
91
-
92
-
93
- describe "#build_associated", ->
94
- it 'should add builded object to association named attribute', ->
95
- arthur = person
96
- name: 'Arthur Dent'
97
-
98
- corporation = arthur.build_corporation()
99
- arthur.should.have.property 'corporation'
100
- expect(corporation).to.be.ok
101
-
102
- describe 'has_many', ->
103
- it 'should add a has_many property with the associations descriptions', ->
104
- $.type(person.has_many).should.be.eq 'array'
105
-
106
- it 'should return a record factory with associations stored', ->
107
- person.has_many.should.be.array
108
-
109
- has_many = Array.prototype.splice.call person.has_many, 0
110
-
111
- has_many.should.contain 'friends'
112
-
113
- describe '#()', ->
114
-
115
- it 'should return a record with an association object', ->
116
- person().should.have.property 'friends'
117
-
118
- describe '{generated_association}', ->
119
- association = null
120
-
121
- beforeEach -> association = person().friends
122
-
123
- it 'should have query methods', ->
124
- association.should.have.property 'all'
125
- association.should.have.property 'each'
126
- association.should.have.property 'reload'
127
-
128
- describe '#all', ->
129
-
130
- it 'should auto observe nested associations attributes'
@@ -1,30 +0,0 @@
1
- root = exports ? window
2
-
3
- persistable = require 'indemma/lib/record/persistable'
4
-
5
- describe 'persistable', ->
6
-
7
- describe 'model', ->
8
- it 'should set the persistable key', ->
9
- model.should.have.property 'persistable', true
10
-
11
- describe '#find', ->
12
- beforeEach ->
13
- @person = model.call
14
- resource : 'person'
15
- has_many : 'friends'
16
- belongs_to: 'corporation'
17
-
18
- @arthur = @person
19
- _id: '1'
20
- name: 'Arthur Philip Dent'
21
-
22
- it 'should call try to store a record after saving', (done) ->
23
- sinon.stub(@person.storage, 'store').returns true
24
-
25
- @arthur.save =>
26
- expect(@person.storage.store.calledOnce).to.be.true
27
- done()
28
-
29
- @person.storage.store.restore()
30
-
@@ -1,27 +0,0 @@
1
- root = exports ? window
2
-
3
- queryable = require 'indemma/lib/record/queryable'
4
-
5
- describe 'queryable', ->
6
-
7
- describe 'model', ->
8
- beforeEach ->
9
- @person = model.call
10
- resource : 'person'
11
-
12
- it 'should set the queryable key', ->
13
- model.should.have.property 'queryable', true
14
-
15
- it 'should create a storage', ->
16
- @person.should.have.property 'storage'
17
-
18
- describe '#find', ->
19
- beforeEach ->
20
- @arthur = @person
21
- _id: '1'
22
- name: 'Arthur Philip Dent'
23
-
24
- @arthur.save()
25
-
26
- it 'should retrieve a record by key', ->
27
- @person.find('1').should.have.property 'name', @arthur.name
@@ -1,69 +0,0 @@
1
- require 'indemma/lib/record/restfulable'
2
- require 'indemma/lib/record/resource'
3
-
4
- root = exports ? window
5
-
6
- model = root.model # TODO model = require 'indemma/model'
7
- record = root.record # TODO model = require 'indemma/record'
8
- jQuery = require 'component-jquery'
9
-
10
- describe 'resource', ->
11
-
12
- describe 'with scope option', ->
13
- person = towel = null
14
-
15
- beforeEach ->
16
- person = model.call
17
- resource: 'person'
18
-
19
- towel = model.call
20
- resource:
21
- name: 'towel'
22
- scope: 'users'
23
-
24
-
25
- it 'should be prefixed with scope', ->
26
- towel. route.should.be.eq '/users/towels'
27
- towel( { } ).route.should.be.eq '/users/towels'
28
- towel(id: 1).route.should.be.eq '/users/towels'
29
-
30
-
31
- describe 'with singular resource', ->
32
- towel = null
33
-
34
- beforeEach ->
35
- towel = model.call
36
- resource:
37
- name: 'towel'
38
- singular: true
39
-
40
- deferred = jQuery.Deferred()
41
-
42
- context = towel(name: 'Arthur Philip Dent')
43
- context.lock = JSON.stringify context.json()
44
- deferred.resolveWith context, [_id: 1, name: 'Arthur Philip Dent']
45
-
46
- sinon.stub(jQuery, "ajax").returns(deferred)
47
-
48
- promises = towel.create {name: 'Arthur Philip Dent'}, {name: 'Ford'}
49
-
50
- afterEach -> jQuery.ajax.restore()
51
-
52
- it 'the route should be in singular form', ->
53
- towel. route.should.be.eq '/towel'
54
- towel( { } ).route.should.be.eq '/towel'
55
- towel(id: 1).route.should.be.eq '/towel'
56
-
57
-
58
- describe 'when included', ->
59
- xit 'sets the resource loaded flag on model', ->
60
- # model.resource.should.be.true
61
-
62
- describe 'model' , ->
63
- it 'add methods to model object'
64
-
65
- describe '#pluralize', ->
66
- xit 'transforms word into plural form'
67
-
68
- describe '#singularize', ->
69
- xit 'transforms word into singular form'
@@ -1,22 +0,0 @@
1
- require 'indemma/lib/record/resource'
2
-
3
- root = exports ? window
4
-
5
- rest = require 'indemma/lib/record/rest'
6
- jQuery = require 'component-jquery'
7
-
8
- describe 'rest', ->
9
- object = null
10
-
11
- beforeEach ->
12
- object = Object.create rest
13
- object.route = "users"
14
- object.resource = "user"
15
-
16
- beforeEach -> sinon.stub(jQuery, "ajax").returns(jQuery.Deferred())
17
- afterEach -> jQuery.ajax.restore()
18
-
19
- describe '#delete', ->
20
- it 'should make ajax call', ->
21
- object.delete()
22
- jQuery.ajax.called.should.be.true