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,108 +0,0 @@
1
- /*!
2
- * chai
3
- * Copyright(c) 2011 Jake Luer <jake@alogicalparadox.com>
4
- * MIT Licensed
5
- */
6
-
7
- /*!
8
- * Main exports
9
- */
10
-
11
- var exports = module.exports = {};
12
-
13
- /*!
14
- * test utility
15
- */
16
-
17
- exports.test = require('./test');
18
-
19
- /*!
20
- * type utility
21
- */
22
-
23
- exports.type = require('./type');
24
-
25
- /*!
26
- * message utility
27
- */
28
-
29
- exports.getMessage = require('./getMessage');
30
-
31
- /*!
32
- * actual utility
33
- */
34
-
35
- exports.getActual = require('./getActual');
36
-
37
- /*!
38
- * Inspect util
39
- */
40
-
41
- exports.inspect = require('./inspect');
42
-
43
- /*!
44
- * Object Display util
45
- */
46
-
47
- exports.objDisplay = require('./objDisplay');
48
-
49
- /*!
50
- * Flag utility
51
- */
52
-
53
- exports.flag = require('./flag');
54
-
55
- /*!
56
- * Flag transferring utility
57
- */
58
-
59
- exports.transferFlags = require('./transferFlags');
60
-
61
- /*!
62
- * Deep equal utility
63
- */
64
-
65
- exports.eql = require('./eql');
66
-
67
- /*!
68
- * Deep path value
69
- */
70
-
71
- exports.getPathValue = require('./getPathValue');
72
-
73
- /*!
74
- * Function name
75
- */
76
-
77
- exports.getName = require('./getName');
78
-
79
- /*!
80
- * add Property
81
- */
82
-
83
- exports.addProperty = require('./addProperty');
84
-
85
- /*!
86
- * add Method
87
- */
88
-
89
- exports.addMethod = require('./addMethod');
90
-
91
- /*!
92
- * overwrite Property
93
- */
94
-
95
- exports.overwriteProperty = require('./overwriteProperty');
96
-
97
- /*!
98
- * overwrite Method
99
- */
100
-
101
- exports.overwriteMethod = require('./overwriteMethod');
102
-
103
- /*!
104
- * Add a chainable method
105
- */
106
-
107
- exports.addChainableMethod = require('./addChainableMethod');
108
-
@@ -1,320 +0,0 @@
1
- // This is (almost) directly from Node.js utils
2
- // https://github.com/joyent/node/blob/f8c335d0caf47f16d31413f89aa28eda3878e3aa/lib/util.js
3
-
4
- var getName = require('./getName');
5
- var getProperties = require('./getProperties');
6
- var getEnumerableProperties = require('./getEnumerableProperties');
7
-
8
- module.exports = inspect;
9
-
10
- /**
11
- * Echos the value of a value. Trys to print the value out
12
- * in the best way possible given the different types.
13
- *
14
- * @param {Object} obj The object to print out.
15
- * @param {Boolean} showHidden Flag that shows hidden (not enumerable)
16
- * properties of objects.
17
- * @param {Number} depth Depth in which to descend in object. Default is 2.
18
- * @param {Boolean} colors Flag to turn on ANSI escape codes to color the
19
- * output. Default is false (no coloring).
20
- */
21
- function inspect(obj, showHidden, depth, colors) {
22
- var ctx = {
23
- showHidden: showHidden,
24
- seen: [],
25
- stylize: function (str) { return str; }
26
- };
27
- return formatValue(ctx, obj, (typeof depth === 'undefined' ? 2 : depth));
28
- }
29
-
30
- // https://gist.github.com/1044128/
31
- var getOuterHTML = function(element) {
32
- if ('outerHTML' in element) return element.outerHTML;
33
- var ns = "http://www.w3.org/1999/xhtml";
34
- var container = document.createElementNS(ns, '_');
35
- var elemProto = (window.HTMLElement || window.Element).prototype;
36
- var xmlSerializer = new XMLSerializer();
37
- var html;
38
- if (document.xmlVersion) {
39
- return xmlSerializer.serializeToString(element);
40
- } else {
41
- container.appendChild(element.cloneNode(false));
42
- html = container.innerHTML.replace('><', '>' + element.innerHTML + '<');
43
- container.innerHTML = '';
44
- return html;
45
- }
46
- };
47
-
48
- // Returns true if object is a DOM element.
49
- var isDOMElement = function (object) {
50
- if (typeof HTMLElement === 'object') {
51
- return object instanceof HTMLElement;
52
- } else {
53
- return object &&
54
- typeof object === 'object' &&
55
- object.nodeType === 1 &&
56
- typeof object.nodeName === 'string';
57
- }
58
- };
59
-
60
- function formatValue(ctx, value, recurseTimes) {
61
- // Provide a hook for user-specified inspect functions.
62
- // Check that value is an object with an inspect function on it
63
- if (value && typeof value.inspect === 'function' &&
64
- // Filter out the util module, it's inspect function is special
65
- value.inspect !== exports.inspect &&
66
- // Also filter out any prototype objects using the circular check.
67
- !(value.constructor && value.constructor.prototype === value)) {
68
- var ret = value.inspect(recurseTimes);
69
- if (typeof ret !== 'string') {
70
- ret = formatValue(ctx, ret, recurseTimes);
71
- }
72
- return ret;
73
- }
74
-
75
- // Primitive types cannot have properties
76
- var primitive = formatPrimitive(ctx, value);
77
- if (primitive) {
78
- return primitive;
79
- }
80
-
81
- // If it's DOM elem, get outer HTML.
82
- if (isDOMElement(value)) {
83
- return getOuterHTML(value);
84
- }
85
-
86
- // Look up the keys of the object.
87
- var visibleKeys = getEnumerableProperties(value);
88
- var keys = ctx.showHidden ? getProperties(value) : visibleKeys;
89
-
90
- // Some type of object without properties can be shortcutted.
91
- // In IE, errors have a single `stack` property, or if they are vanilla `Error`,
92
- // a `stack` plus `description` property; ignore those for consistency.
93
- if (keys.length === 0 || (isError(value) && (
94
- (keys.length === 1 && keys[0] === 'stack') ||
95
- (keys.length === 2 && keys[0] === 'description' && keys[1] === 'stack')
96
- ))) {
97
- if (typeof value === 'function') {
98
- var name = getName(value);
99
- var nameSuffix = name ? ': ' + name : '';
100
- return ctx.stylize('[Function' + nameSuffix + ']', 'special');
101
- }
102
- if (isRegExp(value)) {
103
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
104
- }
105
- if (isDate(value)) {
106
- return ctx.stylize(Date.prototype.toUTCString.call(value), 'date');
107
- }
108
- if (isError(value)) {
109
- return formatError(value);
110
- }
111
- }
112
-
113
- var base = '', array = false, braces = ['{', '}'];
114
-
115
- // Make Array say that they are Array
116
- if (isArray(value)) {
117
- array = true;
118
- braces = ['[', ']'];
119
- }
120
-
121
- // Make functions say that they are functions
122
- if (typeof value === 'function') {
123
- var name = getName(value);
124
- var nameSuffix = name ? ': ' + name : '';
125
- base = ' [Function' + nameSuffix + ']';
126
- }
127
-
128
- // Make RegExps say that they are RegExps
129
- if (isRegExp(value)) {
130
- base = ' ' + RegExp.prototype.toString.call(value);
131
- }
132
-
133
- // Make dates with properties first say the date
134
- if (isDate(value)) {
135
- base = ' ' + Date.prototype.toUTCString.call(value);
136
- }
137
-
138
- // Make error with message first say the error
139
- if (isError(value)) {
140
- return formatError(value);
141
- }
142
-
143
- if (keys.length === 0 && (!array || value.length == 0)) {
144
- return braces[0] + base + braces[1];
145
- }
146
-
147
- if (recurseTimes < 0) {
148
- if (isRegExp(value)) {
149
- return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');
150
- } else {
151
- return ctx.stylize('[Object]', 'special');
152
- }
153
- }
154
-
155
- ctx.seen.push(value);
156
-
157
- var output;
158
- if (array) {
159
- output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
160
- } else {
161
- output = keys.map(function(key) {
162
- return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
163
- });
164
- }
165
-
166
- ctx.seen.pop();
167
-
168
- return reduceToSingleString(output, base, braces);
169
- }
170
-
171
-
172
- function formatPrimitive(ctx, value) {
173
- switch (typeof value) {
174
- case 'undefined':
175
- return ctx.stylize('undefined', 'undefined');
176
-
177
- case 'string':
178
- var simple = '\'' + JSON.stringify(value).replace(/^"|"$/g, '')
179
- .replace(/'/g, "\\'")
180
- .replace(/\\"/g, '"') + '\'';
181
- return ctx.stylize(simple, 'string');
182
-
183
- case 'number':
184
- return ctx.stylize('' + value, 'number');
185
-
186
- case 'boolean':
187
- return ctx.stylize('' + value, 'boolean');
188
- }
189
- // For some reason typeof null is "object", so special case here.
190
- if (value === null) {
191
- return ctx.stylize('null', 'null');
192
- }
193
- }
194
-
195
-
196
- function formatError(value) {
197
- return '[' + Error.prototype.toString.call(value) + ']';
198
- }
199
-
200
-
201
- function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
202
- var output = [];
203
- for (var i = 0, l = value.length; i < l; ++i) {
204
- if (Object.prototype.hasOwnProperty.call(value, String(i))) {
205
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
206
- String(i), true));
207
- } else {
208
- output.push('');
209
- }
210
- }
211
- keys.forEach(function(key) {
212
- if (!key.match(/^\d+$/)) {
213
- output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,
214
- key, true));
215
- }
216
- });
217
- return output;
218
- }
219
-
220
-
221
- function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
222
- var name, str;
223
- if (value.__lookupGetter__) {
224
- if (value.__lookupGetter__(key)) {
225
- if (value.__lookupSetter__(key)) {
226
- str = ctx.stylize('[Getter/Setter]', 'special');
227
- } else {
228
- str = ctx.stylize('[Getter]', 'special');
229
- }
230
- } else {
231
- if (value.__lookupSetter__(key)) {
232
- str = ctx.stylize('[Setter]', 'special');
233
- }
234
- }
235
- }
236
- if (visibleKeys.indexOf(key) < 0) {
237
- name = '[' + key + ']';
238
- }
239
- if (!str) {
240
- if (ctx.seen.indexOf(value[key]) < 0) {
241
- if (recurseTimes === null) {
242
- str = formatValue(ctx, value[key], null);
243
- } else {
244
- str = formatValue(ctx, value[key], recurseTimes - 1);
245
- }
246
- if (str.indexOf('\n') > -1) {
247
- if (array) {
248
- str = str.split('\n').map(function(line) {
249
- return ' ' + line;
250
- }).join('\n').substr(2);
251
- } else {
252
- str = '\n' + str.split('\n').map(function(line) {
253
- return ' ' + line;
254
- }).join('\n');
255
- }
256
- }
257
- } else {
258
- str = ctx.stylize('[Circular]', 'special');
259
- }
260
- }
261
- if (typeof name === 'undefined') {
262
- if (array && key.match(/^\d+$/)) {
263
- return str;
264
- }
265
- name = JSON.stringify('' + key);
266
- if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
267
- name = name.substr(1, name.length - 2);
268
- name = ctx.stylize(name, 'name');
269
- } else {
270
- name = name.replace(/'/g, "\\'")
271
- .replace(/\\"/g, '"')
272
- .replace(/(^"|"$)/g, "'");
273
- name = ctx.stylize(name, 'string');
274
- }
275
- }
276
-
277
- return name + ': ' + str;
278
- }
279
-
280
-
281
- function reduceToSingleString(output, base, braces) {
282
- var numLinesEst = 0;
283
- var length = output.reduce(function(prev, cur) {
284
- numLinesEst++;
285
- if (cur.indexOf('\n') >= 0) numLinesEst++;
286
- return prev + cur.length + 1;
287
- }, 0);
288
-
289
- if (length > 60) {
290
- return braces[0] +
291
- (base === '' ? '' : base + '\n ') +
292
- ' ' +
293
- output.join(',\n ') +
294
- ' ' +
295
- braces[1];
296
- }
297
-
298
- return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];
299
- }
300
-
301
- function isArray(ar) {
302
- return Array.isArray(ar) ||
303
- (typeof ar === 'object' && objectToString(ar) === '[object Array]');
304
- }
305
-
306
- function isRegExp(re) {
307
- return typeof re === 'object' && objectToString(re) === '[object RegExp]';
308
- }
309
-
310
- function isDate(d) {
311
- return typeof d === 'object' && objectToString(d) === '[object Date]';
312
- }
313
-
314
- function isError(e) {
315
- return typeof e === 'object' && objectToString(e) === '[object Error]';
316
- }
317
-
318
- function objectToString(o) {
319
- return Object.prototype.toString.call(o);
320
- }
@@ -1,48 +0,0 @@
1
- /*!
2
- * Chai - flag utility
3
- * Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
4
- * MIT Licensed
5
- */
6
-
7
- /*!
8
- * Module dependancies
9
- */
10
-
11
- var inspect = require('./inspect');
12
-
13
- /**
14
- * ### .objDisplay (object)
15
- *
16
- * Determines if an object or an array matches
17
- * criteria to be inspected in-line for error
18
- * messages or should be truncated.
19
- *
20
- * @param {Mixed} javascript object to inspect
21
- * @name objDisplay
22
- * @api public
23
- */
24
-
25
- module.exports = function (obj) {
26
- var str = inspect(obj)
27
- , type = Object.prototype.toString.call(obj);
28
-
29
- if (str.length >= 40) {
30
- if (type === '[object Function]') {
31
- return !obj.name || obj.name === ''
32
- ? '[Function]'
33
- : '[Function: ' + obj.name + ']';
34
- } else if (type === '[object Array]') {
35
- return '[ Array(' + obj.length + ') ]';
36
- } else if (type === '[object Object]') {
37
- var keys = Object.keys(obj)
38
- , kstr = keys.length > 2
39
- ? keys.splice(0, 2).join(', ') + ', ...'
40
- : keys.join(', ');
41
- return '{ Object (' + kstr + ') }';
42
- } else {
43
- return str;
44
- }
45
- } else {
46
- return str;
47
- }
48
- };
@@ -1,51 +0,0 @@
1
- /*!
2
- * Chai - overwriteMethod utility
3
- * Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
4
- * MIT Licensed
5
- */
6
-
7
- /**
8
- * ### overwriteMethod (ctx, name, fn)
9
- *
10
- * Overwites an already existing method and provides
11
- * access to previous function. Must return function
12
- * to be used for name.
13
- *
14
- * utils.overwriteMethod(chai.Assertion.prototype, 'equal', function (_super) {
15
- * return function (str) {
16
- * var obj = utils.flag(this, 'object');
17
- * if (obj instanceof Foo) {
18
- * new chai.Assertion(obj.value).to.equal(str);
19
- * } else {
20
- * _super.apply(this, arguments);
21
- * }
22
- * }
23
- * });
24
- *
25
- * Can also be accessed directly from `chai.Assertion`.
26
- *
27
- * chai.Assertion.overwriteMethod('foo', fn);
28
- *
29
- * Then can be used as any other assertion.
30
- *
31
- * expect(myFoo).to.equal('bar');
32
- *
33
- * @param {Object} ctx object whose method is to be overwritten
34
- * @param {String} name of method to overwrite
35
- * @param {Function} method function that returns a function to be used for name
36
- * @name overwriteMethod
37
- * @api public
38
- */
39
-
40
- module.exports = function (ctx, name, method) {
41
- var _method = ctx[name]
42
- , _super = function () { return this; };
43
-
44
- if (_method && 'function' === typeof _method)
45
- _super = _method;
46
-
47
- ctx[name] = function () {
48
- var result = method(_super).apply(this, arguments);
49
- return result === undefined ? this : result;
50
- }
51
- };
@@ -1,54 +0,0 @@
1
- /*!
2
- * Chai - overwriteProperty utility
3
- * Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
4
- * MIT Licensed
5
- */
6
-
7
- /**
8
- * ### overwriteProperty (ctx, name, fn)
9
- *
10
- * Overwites an already existing property getter and provides
11
- * access to previous value. Must return function to use as getter.
12
- *
13
- * utils.overwriteProperty(chai.Assertion.prototype, 'ok', function (_super) {
14
- * return function () {
15
- * var obj = utils.flag(this, 'object');
16
- * if (obj instanceof Foo) {
17
- * new chai.Assertion(obj.name).to.equal('bar');
18
- * } else {
19
- * _super.call(this);
20
- * }
21
- * }
22
- * });
23
- *
24
- *
25
- * Can also be accessed directly from `chai.Assertion`.
26
- *
27
- * chai.Assertion.overwriteProperty('foo', fn);
28
- *
29
- * Then can be used as any other assertion.
30
- *
31
- * expect(myFoo).to.be.ok;
32
- *
33
- * @param {Object} ctx object whose property is to be overwritten
34
- * @param {String} name of property to overwrite
35
- * @param {Function} getter function that returns a getter function to be used for name
36
- * @name overwriteProperty
37
- * @api public
38
- */
39
-
40
- module.exports = function (ctx, name, getter) {
41
- var _get = Object.getOwnPropertyDescriptor(ctx, name)
42
- , _super = function () {};
43
-
44
- if (_get && 'function' === typeof _get.get)
45
- _super = _get.get
46
-
47
- Object.defineProperty(ctx, name,
48
- { get: function () {
49
- var result = getter(_super).call(this);
50
- return result === undefined ? this : result;
51
- }
52
- , configurable: true
53
- });
54
- };
@@ -1,26 +0,0 @@
1
- /*!
2
- * Chai - test utility
3
- * Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
4
- * MIT Licensed
5
- */
6
-
7
- /*!
8
- * Module dependancies
9
- */
10
-
11
- var flag = require('./flag');
12
-
13
- /**
14
- * # test(object, expression)
15
- *
16
- * Test and object for expression.
17
- *
18
- * @param {Object} object (constructed Assertion)
19
- * @param {Arguments} chai.Assertion.prototype.assert arguments
20
- */
21
-
22
- module.exports = function (obj, args) {
23
- var negate = flag(obj, 'negate')
24
- , expr = args[0];
25
- return negate ? !expr : expr;
26
- };
@@ -1,44 +0,0 @@
1
- /*!
2
- * Chai - transferFlags utility
3
- * Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
4
- * MIT Licensed
5
- */
6
-
7
- /**
8
- * ### transferFlags(assertion, object, includeAll = true)
9
- *
10
- * Transfer all the flags for `assertion` to `object`. If
11
- * `includeAll` is set to `false`, then the base Chai
12
- * assertion flags (namely `object`, `ssfi`, and `message`)
13
- * will not be transferred.
14
- *
15
- *
16
- * var newAssertion = new Assertion();
17
- * utils.transferFlags(assertion, newAssertion);
18
- *
19
- * var anotherAsseriton = new Assertion(myObj);
20
- * utils.transferFlags(assertion, anotherAssertion, false);
21
- *
22
- * @param {Assertion} assertion the assertion to transfer the flags from
23
- * @param {Object} object the object to transfer the flags too; usually a new assertion
24
- * @param {Boolean} includeAll
25
- * @name getAllFlags
26
- * @api private
27
- */
28
-
29
- module.exports = function (assertion, object, includeAll) {
30
- var flags = assertion.__flags || (assertion.__flags = Object.create(null));
31
-
32
- if (!object.__flags) {
33
- object.__flags = Object.create(null);
34
- }
35
-
36
- includeAll = arguments.length === 3 ? includeAll : true;
37
-
38
- for (var flag in flags) {
39
- if (includeAll ||
40
- (flag !== 'object' && flag !== 'ssfi' && flag != 'message')) {
41
- object.__flags[flag] = flags[flag];
42
- }
43
- }
44
- };
@@ -1,45 +0,0 @@
1
- /*!
2
- * Chai - type utility
3
- * Copyright(c) 2012-2013 Jake Luer <jake@alogicalparadox.com>
4
- * MIT Licensed
5
- */
6
-
7
- /*!
8
- * Detectable javascript natives
9
- */
10
-
11
- var natives = {
12
- '[object Arguments]': 'arguments'
13
- , '[object Array]': 'array'
14
- , '[object Date]': 'date'
15
- , '[object Function]': 'function'
16
- , '[object Number]': 'number'
17
- , '[object RegExp]': 'regexp'
18
- , '[object String]': 'string'
19
- };
20
-
21
- /**
22
- * ### type(object)
23
- *
24
- * Better implementation of `typeof` detection that can
25
- * be used cross-browser. Handles the inconsistencies of
26
- * Array, `null`, and `undefined` detection.
27
- *
28
- * utils.type({}) // 'object'
29
- * utils.type(null) // `null'
30
- * utils.type(undefined) // `undefined`
31
- * utils.type([]) // `array`
32
- *
33
- * @param {Mixed} object to detect type of
34
- * @name type
35
- * @api private
36
- */
37
-
38
- module.exports = function (obj) {
39
- var str = Object.prototype.toString.call(obj);
40
- if (natives[str]) return natives[str];
41
- if (obj === null) return 'null';
42
- if (obj === undefined) return 'undefined';
43
- if (obj === Object(obj)) return 'object';
44
- return typeof obj;
45
- };