ende 0.1.14 → 0.2.0

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 (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