ende 0.1.14 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (138) hide show
  1. checksums.yaml +4 -4
  2. data/component.json +1 -1
  3. data/lib/assets/javascripts/aura/extensions/devise.js.coffee +5 -2
  4. data/lib/assets/javascripts/aura/extensions/models.js.coffee.erb +4 -3
  5. data/lib/assets/javascripts/value_objects/phone.js.coffee +8 -2
  6. data/lib/assets/javascripts/widgets/viewer/main.js.coffee +18 -21
  7. data/lib/ende/version.rb +1 -1
  8. data/lib/ende.rb +2 -2
  9. data/vendor/assets/javascripts/ende/build.js +485 -4879
  10. data/vendor/components/component-querystring/component.json +18 -0
  11. data/vendor/components/component-querystring/index.js +49 -0
  12. data/vendor/components/component-trim/component.json +13 -0
  13. data/vendor/components/component-trim/index.js +17 -0
  14. data/vendor/components/indefinido-indemma/.gitignore +14 -0
  15. data/vendor/components/indefinido-indemma/.ruby-gemset +1 -0
  16. data/vendor/components/indefinido-indemma/.ruby-version +1 -0
  17. data/vendor/components/indefinido-indemma/Gemfile +13 -0
  18. data/vendor/components/indefinido-indemma/Guardfile +39 -0
  19. data/vendor/components/indefinido-indemma/History.md +0 -0
  20. data/vendor/components/indefinido-indemma/Readme.md +443 -0
  21. data/vendor/components/indefinido-indemma/build/development.js +331 -0
  22. data/vendor/components/indefinido-indemma/build/release.js +21693 -0
  23. data/vendor/components/indefinido-indemma/build/test.js +331 -0
  24. data/vendor/components/indefinido-indemma/component.json +8 -9
  25. data/vendor/components/indefinido-indemma/components/chaijs-assertion-error/component.json +18 -0
  26. data/vendor/components/indefinido-indemma/components/chaijs-assertion-error/index.js +110 -0
  27. data/vendor/components/indefinido-indemma/components/chaijs-chai/component.json +47 -0
  28. data/vendor/components/indefinido-indemma/components/chaijs-chai/index.js +1 -0
  29. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/assertion.js +130 -0
  30. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/core/assertions.js +1270 -0
  31. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/assert.js +1080 -0
  32. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/expect.js +12 -0
  33. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/should.js +76 -0
  34. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addChainableMethod.js +94 -0
  35. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addMethod.js +37 -0
  36. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addProperty.js +40 -0
  37. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/eql.js +129 -0
  38. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/flag.js +32 -0
  39. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getActual.js +19 -0
  40. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js +25 -0
  41. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getMessage.js +49 -0
  42. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getName.js +20 -0
  43. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getPathValue.js +102 -0
  44. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getProperties.js +35 -0
  45. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/index.js +108 -0
  46. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/inspect.js +320 -0
  47. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/objDisplay.js +48 -0
  48. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteMethod.js +51 -0
  49. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteProperty.js +54 -0
  50. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/test.js +26 -0
  51. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/transferFlags.js +44 -0
  52. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/type.js +45 -0
  53. data/vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai.js +80 -0
  54. data/vendor/components/indefinido-indemma/components/component-bind/component.json +14 -0
  55. data/vendor/components/indefinido-indemma/components/component-bind/index.js +24 -0
  56. data/vendor/components/indefinido-indemma/components/component-jquery/component.json +14 -0
  57. data/vendor/components/indefinido-indemma/components/component-jquery/index.js +9601 -0
  58. data/vendor/components/indefinido-indemma/components/component-type/component.json +18 -0
  59. data/vendor/components/indefinido-indemma/components/component-type/index.js +32 -0
  60. data/vendor/components/indefinido-indemma/components/indefinido-advisable/component.json +21 -0
  61. data/vendor/components/indefinido-indemma/components/indefinido-advisable/index.js +1 -0
  62. data/vendor/components/indefinido-indemma/components/indefinido-advisable/lib/advisable.js +60 -0
  63. data/vendor/components/indefinido-indemma/components/indefinido-observable/component.json +25 -0
  64. data/vendor/components/indefinido-indemma/components/indefinido-observable/components/cjohansen-sinon/sinon.js +4290 -0
  65. data/vendor/components/indefinido-indemma/components/indefinido-observable/index.js +1 -0
  66. data/vendor/components/indefinido-indemma/components/indefinido-observable/lib/adapters/rivets.js +26 -0
  67. data/vendor/components/indefinido-indemma/components/indefinido-observable/lib/observable.js +323 -0
  68. data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors-legacy.js +92 -0
  69. data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors.js +173 -0
  70. data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/array.indexOf.js +8 -0
  71. data/vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/object.create.js +77 -0
  72. data/vendor/components/indefinido-indemma/components/kapit-observe-utils/component.json +13 -0
  73. data/vendor/components/indefinido-indemma/components/pluma-assimilate/component.json +25 -0
  74. data/vendor/components/indefinido-indemma/components/pluma-assimilate/dist/assimilate.js +87 -0
  75. data/vendor/components/indefinido-indemma/karma.conf.js +86 -0
  76. data/vendor/components/indefinido-indemma/lib/record/associable.js +6 -6
  77. data/vendor/components/indefinido-indemma/lib/record/errors.js +1 -0
  78. data/vendor/components/indefinido-indemma/lib/record/resource.js +14 -3
  79. data/vendor/components/indefinido-indemma/lib/record/rest.js +7 -4
  80. data/vendor/components/indefinido-indemma/lib/record/restfulable.js +45 -15
  81. data/vendor/components/indefinido-indemma/lib/record/scopable.js +13 -3
  82. data/vendor/components/indefinido-indemma/lib/record/validatable.js +20 -9
  83. data/vendor/components/indefinido-indemma/lib/record/validations/confirmation.js +1 -1
  84. data/vendor/components/indefinido-indemma/lib/record/validations/remote.js +6 -5
  85. data/vendor/components/indefinido-indemma/lib/record/validations/type.js +29 -0
  86. data/vendor/components/indefinido-indemma/lib/record.js +1 -11
  87. data/vendor/components/indefinido-indemma/spec/record/associable_spec.js +76 -0
  88. data/vendor/components/indefinido-indemma/spec/record/resource_spec.js +90 -0
  89. data/vendor/components/indefinido-indemma/spec/record/rest_spec.js +32 -0
  90. data/vendor/components/indefinido-indemma/spec/record/restfulable_spec.js +232 -0
  91. data/vendor/components/indefinido-indemma/spec/record/scopable_spec.js +201 -0
  92. data/vendor/components/indefinido-indemma/spec/record/translationable.js +28 -0
  93. data/vendor/components/indefinido-indemma/spec/record/validatable_spec.js +111 -0
  94. data/vendor/components/indefinido-indemma/spec/record/validations/associated_spec.js +43 -0
  95. data/vendor/components/indefinido-indemma/spec/record/validations/confirmation_spec.js +36 -0
  96. data/vendor/components/indefinido-indemma/spec/record/validations/cpf_spec.js +35 -0
  97. data/vendor/components/indefinido-indemma/spec/record/validations/presence_spec.js +28 -0
  98. data/vendor/components/indefinido-indemma/spec/record/validations/remote_spec.js +86 -0
  99. data/vendor/components/indefinido-indemma/spec/record/validations/type_spec.js +48 -0
  100. data/vendor/components/indefinido-indemma/spec/record_spec.js +37 -0
  101. data/vendor/components/indefinido-indemma/spec/spec_helper.js +11 -0
  102. data/vendor/components/indefinido-indemma/spec/support/value_objects/phone.js +45 -0
  103. data/vendor/components/indefinido-indemma/src/lib/extensions/rivets.coffee +17 -0
  104. data/vendor/components/indefinido-indemma/src/lib/record/associable.coffee +173 -0
  105. data/vendor/components/indefinido-indemma/src/lib/record/errors.coffee +20 -0
  106. data/vendor/components/indefinido-indemma/src/lib/record/maid.coffee +16 -0
  107. data/vendor/components/indefinido-indemma/src/lib/record/resource.coffee +103 -0
  108. data/vendor/components/indefinido-indemma/src/lib/record/rest.coffee +28 -0
  109. data/vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee +314 -0
  110. data/vendor/components/indefinido-indemma/src/lib/record/scopable.coffee +266 -0
  111. data/vendor/components/indefinido-indemma/src/lib/record/translationable.coffee +18 -0
  112. data/vendor/components/indefinido-indemma/src/lib/record/validatable.coffee +209 -0
  113. data/vendor/components/indefinido-indemma/src/lib/record/validations/associated.coffee +32 -0
  114. data/vendor/components/indefinido-indemma/src/lib/record/validations/confirmation.coffee +19 -0
  115. data/vendor/components/indefinido-indemma/src/lib/record/validations/cpf.coffee +58 -0
  116. data/vendor/components/indefinido-indemma/src/lib/record/validations/presence.coffee +19 -0
  117. data/vendor/components/indefinido-indemma/src/lib/record/validations/remote.coffee +65 -0
  118. data/vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee +32 -0
  119. data/vendor/components/indefinido-indemma/src/lib/record.coffee +123 -0
  120. data/vendor/components/indefinido-indemma/src/spec/record/associable_spec.coffee +63 -0
  121. data/vendor/components/indefinido-indemma/src/spec/record/resource_spec.coffee +64 -0
  122. data/vendor/components/indefinido-indemma/src/spec/record/rest_spec.coffee +22 -0
  123. data/vendor/components/indefinido-indemma/src/spec/record/restfulable_spec.coffee +164 -0
  124. data/vendor/components/indefinido-indemma/src/spec/record/scopable_spec.coffee +181 -0
  125. data/vendor/components/indefinido-indemma/src/spec/record/translationable.coffee +19 -0
  126. data/vendor/components/indefinido-indemma/src/spec/record/validatable_spec.coffee +100 -0
  127. data/vendor/components/indefinido-indemma/src/spec/record/validations/associated_spec.coffee +35 -0
  128. data/vendor/components/indefinido-indemma/src/spec/record/validations/confirmation_spec.coffee +25 -0
  129. data/vendor/components/indefinido-indemma/src/spec/record/validations/cpf_spec.coffee +28 -0
  130. data/vendor/components/indefinido-indemma/src/spec/record/validations/presence_spec.coffee +24 -0
  131. data/vendor/components/indefinido-indemma/src/spec/record/validations/remote_spec.coffee +72 -0
  132. data/vendor/components/indefinido-indemma/src/spec/record/validations/type_spec.coffee +33 -0
  133. data/vendor/components/indefinido-indemma/src/spec/record_spec.coffee +23 -0
  134. data/vendor/components/indefinido-indemma/src/spec/spec_helper.coffee +9 -0
  135. data/vendor/components/indefinido-indemma/src/spec/support/value_objects/phone.coffee +30 -0
  136. data/vendor/components/indefinido-indemma/vendor/owl/pluralize.js +190 -0
  137. data/vendor/components/indefinido-observable/lib/observable.js +3 -0
  138. metadata +119 -2
@@ -0,0 +1,33 @@
1
+ root = exports ? window
2
+
3
+ require 'indemma/lib/record/validatable'
4
+
5
+ describe 'model #() validates type of', ->
6
+
7
+ describe 'basic usage', ->
8
+ model = root.model
9
+ person = null
10
+
11
+ beforeEach ->
12
+ person = model.call
13
+ resource : 'person'
14
+ name : String
15
+ phone : Phone
16
+ validates_type_of: ['name', 'phone']
17
+
18
+ afterEach ->
19
+ person.validators.length = 0
20
+
21
+ describe '#validate', ->
22
+
23
+ #it 'should use Phone#valid getter to find out if object is valid'
24
+ it 'should use Phone#validate to find out if attribute is valid'
25
+ it 'should add error to record when phone typed attribute has an non valid phone value', ->
26
+ arthur = person phone: new Phone 'batata'
27
+ arthur.valid.should.be.false
28
+ arthur.errors.messages.should.have.property 'phone'
29
+ expect(arthur.errors.messages.phone).to.match /não está válido/
30
+
31
+ it 'should throw error to when phone typed attribute has an non phone value', ->
32
+ arthur = person phone: 'batata'
33
+ expect( -> arthur.valid).to.throw /invalid attribute value type/i
@@ -0,0 +1,23 @@
1
+ root = exports ? window
2
+
3
+ describe 'record', ->
4
+ record = root.record
5
+
6
+ it 'should create a record', ->
7
+ arthur = record.call resource: 'person'
8
+ arthur.should.be.object
9
+
10
+ describe 'model', ->
11
+ model = root.model
12
+
13
+ describe '#()', ->
14
+
15
+ xit 'should throw exception if no resource is passed'
16
+
17
+ it 'should create a record factory', ->
18
+ person = model.call resource: 'person'
19
+ person.should.be.object
20
+
21
+ john = person()
22
+ john.should.be.object
23
+ john.resource.should.have.property 'name', 'person'
@@ -0,0 +1,9 @@
1
+ root = exports ? window
2
+
3
+ indemma = require 'indemma'
4
+ chai = require 'chaijs-chai'
5
+
6
+ # sinon is included on karma.conf.js
7
+
8
+ root.expect = chai.expect
9
+ root.should = chai.should()
@@ -0,0 +1,30 @@
1
+ # TODO locales support
2
+ class @Phone
3
+
4
+ constructor: (@area_code, @number) ->
5
+ {@area_code, @number} = @area_code if typeof @area_code == 'object'
6
+
7
+
8
+ # TODO parse argument types to validate value object domain
9
+ # constraints
10
+
11
+ unless @number
12
+ @number = @area_code
13
+ @area_code = null
14
+
15
+ Object.defineProperty @, 'valid', get: @validate
16
+
17
+ # TODO move type validation to indemma files
18
+ validate: -> @area_code? && @number?
19
+
20
+ toString: ->
21
+ formatted_number = @number.substr(0, 4) + '-' + @number.substr(4) if @number?
22
+
23
+ if @area_code?
24
+ "(#{@area_code}) #{formatted_number}"
25
+ else
26
+ formatted_number
27
+
28
+ toJSON: ->
29
+ area_code: @area_code
30
+ number: @number
@@ -0,0 +1,190 @@
1
+ /* This file is part of OWL Pluralization.
2
+
3
+ OWL Pluralization is free software: you can redistribute it and/or
4
+ modify it under the terms of the GNU Lesser General Public License
5
+ as published by the Free Software Foundation, either version 3 of
6
+ the License, or (at your option) any later version.
7
+
8
+ OWL Pluralization is distributed in the hope that it will be useful,
9
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
10
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
+ GNU Lesser General Public License for more details.
12
+
13
+ You should have received a copy of the GNU Lesser General Public
14
+ License along with OWL Pluralization. If not, see
15
+ <http://www.gnu.org/licenses/>.
16
+ */
17
+
18
+ // prepare the owl namespace.
19
+ if ( typeof owl === 'undefined' ) owl = {};
20
+
21
+ owl.pluralize = (function() {
22
+ var userDefined = {};
23
+
24
+ function capitalizeSame(word, sampleWord) {
25
+ if ( sampleWord.match(/^[A-Z]/) ) {
26
+ return word.charAt(0).toUpperCase() + word.slice(1);
27
+ } else {
28
+ return word;
29
+ }
30
+ }
31
+
32
+ // returns a plain Object having the given keys,
33
+ // all with value 1, which can be used for fast lookups.
34
+ function toKeys(keys) {
35
+ keys = keys.split(',');
36
+ var keysLength = keys.length;
37
+ var table = {};
38
+ for ( var i=0; i < keysLength; i++ ) {
39
+ table[ keys[i] ] = 1;
40
+ }
41
+ return table;
42
+ }
43
+
44
+ // words that are always singular, always plural, or the same in both forms.
45
+ var uninflected = toKeys("aircraft,advice,blues,corn,molasses,equipment,gold,information,cotton,jewelry,kin,legislation,luck,luggage,moose,music,offspring,rice,silver,trousers,wheat,bison,bream,breeches,britches,carp,chassis,clippers,cod,contretemps,corps,debris,diabetes,djinn,eland,elk,flounder,gallows,graffiti,headquarters,herpes,high,homework,innings,jackanapes,mackerel,measles,mews,mumps,news,pincers,pliers,proceedings,rabies,salmon,scissors,sea,series,shears,species,swine,trout,tuna,whiting,wildebeest,pike,oats,tongs,dregs,snuffers,victuals,tweezers,vespers,pinchers,bellows,cattle");
46
+
47
+ var irregular = {
48
+ // pronouns
49
+ I: 'we',
50
+ you: 'you',
51
+ he: 'they',
52
+ it: 'they', // or them
53
+ me: 'us',
54
+ you: 'you',
55
+ him: 'them',
56
+ them: 'them',
57
+ myself: 'ourselves',
58
+ yourself: 'yourselves',
59
+ himself: 'themselves',
60
+ herself: 'themselves',
61
+ itself: 'themselves',
62
+ themself: 'themselves',
63
+ oneself: 'oneselves',
64
+
65
+ child: 'children',
66
+ dwarf: 'dwarfs', // dwarfs are real; dwarves are fantasy.
67
+ mongoose: 'mongooses',
68
+ mythos: 'mythoi',
69
+ ox: 'oxen',
70
+ soliloquy: 'soliloquies',
71
+ trilby: 'trilbys',
72
+ person: 'people',
73
+ forum: 'forums', // fora is ok but uncommon.
74
+
75
+ // latin plural in popular usage.
76
+ syllabus: 'syllabi',
77
+ alumnus: 'alumni',
78
+ genus: 'genera',
79
+ viscus: 'viscera',
80
+ stigma: 'stigmata'
81
+ };
82
+
83
+ var suffixRules = [
84
+ // common suffixes
85
+ [ /man$/i, 'men' ],
86
+ [ /([lm])ouse$/i, '$1ice' ],
87
+ [ /tooth$/i, 'teeth' ],
88
+ [ /goose$/i, 'geese' ],
89
+ [ /foot$/i, 'feet' ],
90
+ [ /zoon$/i, 'zoa' ],
91
+ [ /([tcsx])is$/i, '$1es' ],
92
+
93
+ // fully assimilated suffixes
94
+ [ /ix$/i, 'ices' ],
95
+ [ /^(cod|mur|sil|vert)ex$/i, '$1ices' ],
96
+ [ /^(agend|addend|memorand|millenni|dat|extrem|bacteri|desiderat|strat|candelabr|errat|ov|symposi)um$/i, '$1a' ],
97
+ [ /^(apheli|hyperbat|periheli|asyndet|noumen|phenomen|criteri|organ|prolegomen|\w+hedr)on$/i, '$1a' ],
98
+ [ /^(alumn|alg|vertebr)a$/i, '$1ae' ],
99
+
100
+ // churches, classes, boxes, etc.
101
+ [ /([cs]h|ss|x)$/i, '$1es' ],
102
+
103
+ // words with -ves plural form
104
+ [ /([aeo]l|[^d]ea|ar)f$/i, '$1ves' ],
105
+ [ /([nlw]i)fe$/i, '$1ves' ],
106
+
107
+ // -y
108
+ [ /([aeiou])y$/i, '$1ys' ],
109
+ [ /(^[A-Z][a-z]*)y$/, '$1ys' ], // case sensitive!
110
+ [ /y$/i, 'ies' ],
111
+
112
+ // -o
113
+ [ /([aeiou])o$/i, '$1os' ],
114
+ [ /^(pian|portic|albin|generalissim|manifest|archipelag|ghett|medic|armadill|guan|octav|command|infern|phot|ditt|jumb|pr|dynam|ling|quart|embry|lumbag|rhin|fiasc|magnet|styl|alt|contralt|sopran|bass|crescend|temp|cant|sol|kimon)o$/i, '$1os' ],
115
+ [ /o$/i, 'oes' ],
116
+
117
+ // words ending in s...
118
+ [ /s$/i, 'ses' ]
119
+ ];
120
+
121
+ // pluralizes the given singular noun. There are three ways to call it:
122
+ // pluralize(noun) -> pluralNoun
123
+ // Returns the plural of the given noun.
124
+ // Example:
125
+ // pluralize("person") -> "people"
126
+ // pluralize("me") -> "us"
127
+ //
128
+ // pluralize(noun, count) -> plural or singular noun
129
+ // Inflect the noun according to the count, returning the singular noun
130
+ // if the count is 1.
131
+ // Examples:
132
+ // pluralize("person", 3) -> "people"
133
+ // pluralize("person", 1) -> "person"
134
+ // pluralize("person", 0) -> "people"
135
+ //
136
+ // pluralize(noun, count, plural) -> plural or singular noun
137
+ // you can provide an irregular plural yourself as the 3rd argument.
138
+ // Example:
139
+ // pluralize("château", 2 "châteaux") -> "châteaux"
140
+ function pluralize(word, count, plural) {
141
+ // handle the empty string reasonably.
142
+ if ( word === '' ) return '';
143
+
144
+ // singular case.
145
+ if ( count === 1 ) return word;
146
+
147
+ // life is very easy if an explicit plural was provided.
148
+ if ( typeof plural === 'string' ) return plural;
149
+
150
+ var lowerWord = word.toLowerCase();
151
+
152
+ // user defined rules have the highest priority.
153
+ if ( lowerWord in userDefined ) {
154
+ return capitalizeSame(userDefined[lowerWord], word);
155
+ }
156
+
157
+ // single letters are pluralized with 's, "I got five A's on
158
+ // my report card."
159
+ if ( word.match(/^[A-Z]$/) ) return word + "'s";
160
+
161
+ // some word don't change form when plural.
162
+ if ( word.match(/fish$|ois$|sheep$|deer$|pox$|itis$/i) ) return word;
163
+ if ( word.match(/^[A-Z][a-z]*ese$/) ) return word; // Nationalities.
164
+ if ( lowerWord in uninflected ) return word;
165
+
166
+ // there's a known set of words with irregular plural forms.
167
+ if ( lowerWord in irregular ) {
168
+ return capitalizeSame(irregular[lowerWord], word);
169
+ }
170
+
171
+ // try to pluralize the word depending on its suffix.
172
+ var suffixRulesLength = suffixRules.length;
173
+ for ( var i=0; i < suffixRulesLength; i++ ) {
174
+ var rule = suffixRules[i];
175
+ if ( word.match(rule[0]) ) {
176
+ return word.replace(rule[0], rule[1]);
177
+ }
178
+ }
179
+
180
+ // if all else fails, just add s.
181
+ return word + 's';
182
+ }
183
+
184
+ pluralize.define = function(word, plural) {
185
+ userDefined[word.toLowerCase()] = plural;
186
+ }
187
+
188
+ return pluralize;
189
+
190
+ })();
@@ -164,6 +164,9 @@ observable.unobserve = function (object) {
164
164
 
165
165
  check = function (keypath, value) {
166
166
  this.observed[keypath] = value;
167
+
168
+ // TODO implement subscription
169
+ (this.dirty === false) && (this.dirty = true);
167
170
  return true;
168
171
  };
169
172
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ende
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.14
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Heitor Salazar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-11-14 00:00:00.000000000 Z
11
+ date: 2013-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -268,6 +268,10 @@ files:
268
268
  - vendor/components/component-matches-selector/index.js
269
269
  - vendor/components/component-query/component.json
270
270
  - vendor/components/component-query/index.js
271
+ - vendor/components/component-querystring/component.json
272
+ - vendor/components/component-querystring/index.js
273
+ - vendor/components/component-trim/component.json
274
+ - vendor/components/component-trim/index.js
271
275
  - vendor/components/component-type/component.json
272
276
  - vendor/components/component-type/index.js
273
277
  - vendor/components/component-url/component.json
@@ -279,11 +283,73 @@ files:
279
283
  - vendor/components/indefinido-advisable/component.json
280
284
  - vendor/components/indefinido-advisable/index.js
281
285
  - vendor/components/indefinido-advisable/lib/advisable.js
286
+ - vendor/components/indefinido-indemma/.gitignore
287
+ - vendor/components/indefinido-indemma/.ruby-gemset
288
+ - vendor/components/indefinido-indemma/.ruby-version
289
+ - vendor/components/indefinido-indemma/Gemfile
290
+ - vendor/components/indefinido-indemma/Guardfile
291
+ - vendor/components/indefinido-indemma/History.md
292
+ - vendor/components/indefinido-indemma/Readme.md
293
+ - vendor/components/indefinido-indemma/build/development.js
294
+ - vendor/components/indefinido-indemma/build/release.js
295
+ - vendor/components/indefinido-indemma/build/test.js
282
296
  - vendor/components/indefinido-indemma/component.json
297
+ - vendor/components/indefinido-indemma/components/chaijs-assertion-error/component.json
298
+ - vendor/components/indefinido-indemma/components/chaijs-assertion-error/index.js
299
+ - vendor/components/indefinido-indemma/components/chaijs-chai/component.json
300
+ - vendor/components/indefinido-indemma/components/chaijs-chai/index.js
301
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai.js
302
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/assertion.js
303
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/core/assertions.js
304
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/assert.js
305
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/expect.js
306
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/interface/should.js
307
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addChainableMethod.js
308
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addMethod.js
309
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/addProperty.js
310
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/eql.js
311
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/flag.js
312
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getActual.js
313
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getEnumerableProperties.js
314
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getMessage.js
315
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getName.js
316
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getPathValue.js
317
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/getProperties.js
318
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/index.js
319
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/inspect.js
320
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/objDisplay.js
321
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteMethod.js
322
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/overwriteProperty.js
323
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/test.js
324
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/transferFlags.js
325
+ - vendor/components/indefinido-indemma/components/chaijs-chai/lib/chai/utils/type.js
326
+ - vendor/components/indefinido-indemma/components/component-bind/component.json
327
+ - vendor/components/indefinido-indemma/components/component-bind/index.js
328
+ - vendor/components/indefinido-indemma/components/component-jquery/component.json
329
+ - vendor/components/indefinido-indemma/components/component-jquery/index.js
330
+ - vendor/components/indefinido-indemma/components/component-type/component.json
331
+ - vendor/components/indefinido-indemma/components/component-type/index.js
332
+ - vendor/components/indefinido-indemma/components/indefinido-advisable/component.json
333
+ - vendor/components/indefinido-indemma/components/indefinido-advisable/index.js
334
+ - vendor/components/indefinido-indemma/components/indefinido-advisable/lib/advisable.js
335
+ - vendor/components/indefinido-indemma/components/indefinido-observable/component.json
336
+ - vendor/components/indefinido-indemma/components/indefinido-observable/components/cjohansen-sinon/sinon.js
337
+ - vendor/components/indefinido-indemma/components/indefinido-observable/index.js
338
+ - vendor/components/indefinido-indemma/components/indefinido-observable/lib/adapters/rivets.js
339
+ - vendor/components/indefinido-indemma/components/indefinido-observable/lib/observable.js
340
+ - vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors-legacy.js
341
+ - vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/accessors.js
342
+ - vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/array.indexOf.js
343
+ - vendor/components/indefinido-indemma/components/indefinido-observable/vendor/shims/object.create.js
344
+ - vendor/components/indefinido-indemma/components/kapit-observe-utils/component.json
345
+ - vendor/components/indefinido-indemma/components/pluma-assimilate/component.json
346
+ - vendor/components/indefinido-indemma/components/pluma-assimilate/dist/assimilate.js
283
347
  - vendor/components/indefinido-indemma/index.js
348
+ - vendor/components/indefinido-indemma/karma.conf.js
284
349
  - vendor/components/indefinido-indemma/lib/extensions/rivets.js
285
350
  - vendor/components/indefinido-indemma/lib/record.js
286
351
  - vendor/components/indefinido-indemma/lib/record/associable.js
352
+ - vendor/components/indefinido-indemma/lib/record/errors.js
287
353
  - vendor/components/indefinido-indemma/lib/record/maid.js
288
354
  - vendor/components/indefinido-indemma/lib/record/resource.js
289
355
  - vendor/components/indefinido-indemma/lib/record/rest.js
@@ -296,6 +362,57 @@ files:
296
362
  - vendor/components/indefinido-indemma/lib/record/validations/cpf.js
297
363
  - vendor/components/indefinido-indemma/lib/record/validations/presence.js
298
364
  - vendor/components/indefinido-indemma/lib/record/validations/remote.js
365
+ - vendor/components/indefinido-indemma/lib/record/validations/type.js
366
+ - vendor/components/indefinido-indemma/spec/record/associable_spec.js
367
+ - vendor/components/indefinido-indemma/spec/record/resource_spec.js
368
+ - vendor/components/indefinido-indemma/spec/record/rest_spec.js
369
+ - vendor/components/indefinido-indemma/spec/record/restfulable_spec.js
370
+ - vendor/components/indefinido-indemma/spec/record/scopable_spec.js
371
+ - vendor/components/indefinido-indemma/spec/record/translationable.js
372
+ - vendor/components/indefinido-indemma/spec/record/validatable_spec.js
373
+ - vendor/components/indefinido-indemma/spec/record/validations/associated_spec.js
374
+ - vendor/components/indefinido-indemma/spec/record/validations/confirmation_spec.js
375
+ - vendor/components/indefinido-indemma/spec/record/validations/cpf_spec.js
376
+ - vendor/components/indefinido-indemma/spec/record/validations/presence_spec.js
377
+ - vendor/components/indefinido-indemma/spec/record/validations/remote_spec.js
378
+ - vendor/components/indefinido-indemma/spec/record/validations/type_spec.js
379
+ - vendor/components/indefinido-indemma/spec/record_spec.js
380
+ - vendor/components/indefinido-indemma/spec/spec_helper.js
381
+ - vendor/components/indefinido-indemma/spec/support/value_objects/phone.js
382
+ - vendor/components/indefinido-indemma/src/lib/extensions/rivets.coffee
383
+ - vendor/components/indefinido-indemma/src/lib/record.coffee
384
+ - vendor/components/indefinido-indemma/src/lib/record/associable.coffee
385
+ - vendor/components/indefinido-indemma/src/lib/record/errors.coffee
386
+ - vendor/components/indefinido-indemma/src/lib/record/maid.coffee
387
+ - vendor/components/indefinido-indemma/src/lib/record/resource.coffee
388
+ - vendor/components/indefinido-indemma/src/lib/record/rest.coffee
389
+ - vendor/components/indefinido-indemma/src/lib/record/restfulable.coffee
390
+ - vendor/components/indefinido-indemma/src/lib/record/scopable.coffee
391
+ - vendor/components/indefinido-indemma/src/lib/record/translationable.coffee
392
+ - vendor/components/indefinido-indemma/src/lib/record/validatable.coffee
393
+ - vendor/components/indefinido-indemma/src/lib/record/validations/associated.coffee
394
+ - vendor/components/indefinido-indemma/src/lib/record/validations/confirmation.coffee
395
+ - vendor/components/indefinido-indemma/src/lib/record/validations/cpf.coffee
396
+ - vendor/components/indefinido-indemma/src/lib/record/validations/presence.coffee
397
+ - vendor/components/indefinido-indemma/src/lib/record/validations/remote.coffee
398
+ - vendor/components/indefinido-indemma/src/lib/record/validations/type.coffee
399
+ - vendor/components/indefinido-indemma/src/spec/record/associable_spec.coffee
400
+ - vendor/components/indefinido-indemma/src/spec/record/resource_spec.coffee
401
+ - vendor/components/indefinido-indemma/src/spec/record/rest_spec.coffee
402
+ - vendor/components/indefinido-indemma/src/spec/record/restfulable_spec.coffee
403
+ - vendor/components/indefinido-indemma/src/spec/record/scopable_spec.coffee
404
+ - vendor/components/indefinido-indemma/src/spec/record/translationable.coffee
405
+ - vendor/components/indefinido-indemma/src/spec/record/validatable_spec.coffee
406
+ - vendor/components/indefinido-indemma/src/spec/record/validations/associated_spec.coffee
407
+ - vendor/components/indefinido-indemma/src/spec/record/validations/confirmation_spec.coffee
408
+ - vendor/components/indefinido-indemma/src/spec/record/validations/cpf_spec.coffee
409
+ - vendor/components/indefinido-indemma/src/spec/record/validations/presence_spec.coffee
410
+ - vendor/components/indefinido-indemma/src/spec/record/validations/remote_spec.coffee
411
+ - vendor/components/indefinido-indemma/src/spec/record/validations/type_spec.coffee
412
+ - vendor/components/indefinido-indemma/src/spec/record_spec.coffee
413
+ - vendor/components/indefinido-indemma/src/spec/spec_helper.coffee
414
+ - vendor/components/indefinido-indemma/src/spec/support/value_objects/phone.coffee
415
+ - vendor/components/indefinido-indemma/vendor/owl/pluralize.js
299
416
  - vendor/components/indefinido-indemma/vendor/sinon.js
300
417
  - vendor/components/indefinido-indemma/vendor/stampit.js
301
418
  - vendor/components/indefinido-observable/component.json