extjs-mvc 0.4.0.j → 0.4.0.k

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. data/Rakefile +1 -1
  2. data/VERSION +1 -1
  3. data/lib/extjs-mvc.rb +0 -14
  4. data/lib/extjs-mvc/api.rb +14 -27
  5. data/lib/extjs-mvc/src/App.js +219 -0
  6. data/lib/extjs-mvc/src/MVC.js +260 -0
  7. data/lib/extjs-mvc/src/Presenter.js +52 -0
  8. data/lib/extjs-mvc/src/README.rdoc +69 -0
  9. data/lib/extjs-mvc/src/controller/Controller.js +278 -0
  10. data/lib/extjs-mvc/src/controller/CrudController.js +460 -0
  11. data/lib/extjs-mvc/src/lib/Array.js +26 -0
  12. data/lib/extjs-mvc/src/lib/Booter.js +417 -0
  13. data/lib/extjs-mvc/src/lib/ClassManager.js +191 -0
  14. data/lib/extjs-mvc/src/lib/ControllerClassManager.js +95 -0
  15. data/lib/extjs-mvc/src/lib/Dependencies.js +44 -0
  16. data/lib/extjs-mvc/src/lib/DispatchMatcher.js +98 -0
  17. data/lib/extjs-mvc/src/lib/Dispatcher.js +129 -0
  18. data/lib/extjs-mvc/src/lib/Environment.js +43 -0
  19. data/lib/extjs-mvc/src/lib/Inflector.js +155 -0
  20. data/lib/extjs-mvc/src/lib/ModelClassManager.js +19 -0
  21. data/lib/extjs-mvc/src/lib/Route.js +139 -0
  22. data/lib/extjs-mvc/src/lib/Router.js +282 -0
  23. data/lib/extjs-mvc/src/lib/String.js +94 -0
  24. data/lib/extjs-mvc/src/lib/ViewClassManager.js +229 -0
  25. data/lib/extjs-mvc/src/lib/notes.txt +32 -0
  26. data/lib/extjs-mvc/src/model/AdapterManager.js +30 -0
  27. data/lib/extjs-mvc/src/model/Association.js +26 -0
  28. data/lib/extjs-mvc/src/model/Base.js +63 -0
  29. data/lib/extjs-mvc/src/model/BelongsToAssociation.js +116 -0
  30. data/lib/extjs-mvc/src/model/Cache.js +131 -0
  31. data/lib/extjs-mvc/src/model/HasManyAssociation.js +160 -0
  32. data/lib/extjs-mvc/src/model/Model.js +331 -0
  33. data/lib/extjs-mvc/src/model/UrlBuilder.js +106 -0
  34. data/lib/extjs-mvc/src/model/adapters/AbstractAdapter.js +296 -0
  35. data/lib/extjs-mvc/src/model/adapters/MemoryAdapter.js +103 -0
  36. data/lib/extjs-mvc/src/model/adapters/RESTAdapter.js +345 -0
  37. data/lib/extjs-mvc/src/model/adapters/RESTJSONAdapter.js +68 -0
  38. data/lib/extjs-mvc/src/model/adapters/notes.txt +42 -0
  39. data/lib/extjs-mvc/src/model/associations/Association.js +192 -0
  40. data/lib/extjs-mvc/src/model/associations/notes.txt +87 -0
  41. data/lib/extjs-mvc/src/model/validations/Errors.js +136 -0
  42. data/lib/extjs-mvc/src/model/validations/Plugin.js +139 -0
  43. data/lib/extjs-mvc/src/model/validations/Validations.js +276 -0
  44. data/lib/extjs-mvc/src/notes/Charts.graffle +0 -0
  45. data/lib/extjs-mvc/src/overrides/Ext.Component.js +21 -0
  46. data/lib/extjs-mvc/src/overrides/Ext.extend.js +142 -0
  47. data/lib/extjs-mvc/src/spec/Array.spec.js +15 -0
  48. data/lib/extjs-mvc/src/spec/ExtMVC.spec.js +65 -0
  49. data/lib/extjs-mvc/src/spec/Model.spec.js +370 -0
  50. data/lib/extjs-mvc/src/spec/OS.spec.js +83 -0
  51. data/lib/extjs-mvc/src/spec/Router.spec.js +99 -0
  52. data/lib/extjs-mvc/src/spec/SpecHelper.js +106 -0
  53. data/lib/extjs-mvc/src/spec/String.spec.js +83 -0
  54. data/lib/extjs-mvc/src/spec/model/AbstractAdapter.spec.js +49 -0
  55. data/lib/extjs-mvc/src/spec/model/Associations.spec.js +99 -0
  56. data/lib/extjs-mvc/src/spec/model/Cache.spec.js +5 -0
  57. data/lib/extjs-mvc/src/spec/model/RESTAdapter.spec.js +19 -0
  58. data/lib/extjs-mvc/src/spec/model/ValidationErrors.spec.js +64 -0
  59. data/lib/extjs-mvc/src/spec/model/Validations.spec.js +166 -0
  60. data/lib/extjs-mvc/src/spec/model/ValidationsPlugin.spec.js +108 -0
  61. data/lib/extjs-mvc/src/spec/suite.html +60 -0
  62. data/lib/extjs-mvc/src/specs-old/JSSpec.css +216 -0
  63. data/lib/extjs-mvc/src/specs-old/JSSpec.js +1512 -0
  64. data/lib/extjs-mvc/src/specs-old/all.html +66 -0
  65. data/lib/extjs-mvc/src/specs-old/base.js +14 -0
  66. data/lib/extjs-mvc/src/specs-old/controller.js +17 -0
  67. data/lib/extjs-mvc/src/specs-old/diff_match_patch.js +1 -0
  68. data/lib/extjs-mvc/src/specs-old/model.js +70 -0
  69. data/lib/extjs-mvc/src/specs-old/route.js +38 -0
  70. data/lib/extjs-mvc/src/specs-old/router.js +59 -0
  71. data/lib/extjs-mvc/src/specs-old/string.js +22 -0
  72. data/lib/extjs-mvc/src/testrunner/JSpecFormatter.js +111 -0
  73. data/lib/extjs-mvc/src/testrunner/TestClient.js +181 -0
  74. data/lib/extjs-mvc/src/testrunner/TestGrid.js +351 -0
  75. data/lib/extjs-mvc/src/testrunner/TestRunner.js +110 -0
  76. data/lib/extjs-mvc/src/testrunner/TestViewport.js +94 -0
  77. data/lib/extjs-mvc/src/vendor.yml +30 -0
  78. data/lib/extjs-mvc/src/vendor/ext-3.1.1/vendor.yml +16 -0
  79. data/lib/extjs-mvc/src/view/FormWindow.js +184 -0
  80. data/lib/extjs-mvc/src/view/HasManyEditorGridPanel.js +211 -0
  81. data/lib/extjs-mvc/src/view/scaffold/Edit.js +46 -0
  82. data/lib/extjs-mvc/src/view/scaffold/Index.js +561 -0
  83. data/lib/extjs-mvc/src/view/scaffold/New.js +20 -0
  84. data/lib/extjs-mvc/src/view/scaffold/ScaffoldFormPanel.js +255 -0
  85. data/lib/{vendor.yml → extjs-mvc/vendor.yml} +0 -0
  86. data/test/app/vendor/extjs-mvc/App.js +219 -0
  87. data/test/app/vendor/extjs-mvc/MVC.js +260 -0
  88. data/test/app/vendor/extjs-mvc/Presenter.js +52 -0
  89. data/test/app/vendor/extjs-mvc/README.rdoc +69 -0
  90. data/test/app/vendor/extjs-mvc/controller/Controller.js +278 -0
  91. data/test/app/vendor/extjs-mvc/controller/CrudController.js +460 -0
  92. data/test/app/vendor/extjs-mvc/lib/Array.js +26 -0
  93. data/test/app/vendor/extjs-mvc/lib/Booter.js +417 -0
  94. data/test/app/vendor/extjs-mvc/lib/ClassManager.js +191 -0
  95. data/test/app/vendor/extjs-mvc/lib/ControllerClassManager.js +95 -0
  96. data/test/app/vendor/extjs-mvc/lib/Dependencies.js +44 -0
  97. data/test/app/vendor/extjs-mvc/lib/DispatchMatcher.js +98 -0
  98. data/test/app/vendor/extjs-mvc/lib/Dispatcher.js +129 -0
  99. data/test/app/vendor/extjs-mvc/lib/Environment.js +43 -0
  100. data/test/app/vendor/extjs-mvc/lib/Inflector.js +155 -0
  101. data/test/app/vendor/extjs-mvc/lib/ModelClassManager.js +19 -0
  102. data/test/app/vendor/extjs-mvc/lib/Route.js +139 -0
  103. data/test/app/vendor/extjs-mvc/lib/Router.js +282 -0
  104. data/test/app/vendor/extjs-mvc/lib/String.js +94 -0
  105. data/test/app/vendor/extjs-mvc/lib/ViewClassManager.js +229 -0
  106. data/test/app/vendor/extjs-mvc/lib/notes.txt +32 -0
  107. data/test/app/vendor/extjs-mvc/model/AdapterManager.js +30 -0
  108. data/test/app/vendor/extjs-mvc/model/Association.js +26 -0
  109. data/test/app/vendor/extjs-mvc/model/Base.js +63 -0
  110. data/test/app/vendor/extjs-mvc/model/BelongsToAssociation.js +116 -0
  111. data/test/app/vendor/extjs-mvc/model/Cache.js +131 -0
  112. data/test/app/vendor/extjs-mvc/model/HasManyAssociation.js +160 -0
  113. data/test/app/vendor/extjs-mvc/model/Model.js +331 -0
  114. data/test/app/vendor/extjs-mvc/model/UrlBuilder.js +106 -0
  115. data/test/app/vendor/extjs-mvc/model/adapters/AbstractAdapter.js +296 -0
  116. data/test/app/vendor/extjs-mvc/model/adapters/MemoryAdapter.js +103 -0
  117. data/test/app/vendor/extjs-mvc/model/adapters/RESTAdapter.js +345 -0
  118. data/test/app/vendor/extjs-mvc/model/adapters/RESTJSONAdapter.js +68 -0
  119. data/test/app/vendor/extjs-mvc/model/adapters/notes.txt +42 -0
  120. data/test/app/vendor/extjs-mvc/model/associations/Association.js +192 -0
  121. data/test/app/vendor/extjs-mvc/model/associations/notes.txt +87 -0
  122. data/test/app/vendor/extjs-mvc/model/validations/Errors.js +136 -0
  123. data/test/app/vendor/extjs-mvc/model/validations/Plugin.js +139 -0
  124. data/test/app/vendor/extjs-mvc/model/validations/Validations.js +276 -0
  125. data/test/app/vendor/extjs-mvc/notes/Charts.graffle +0 -0
  126. data/test/app/vendor/extjs-mvc/overrides/Ext.Component.js +21 -0
  127. data/test/app/vendor/extjs-mvc/overrides/Ext.extend.js +142 -0
  128. data/test/app/vendor/extjs-mvc/spec/Array.spec.js +15 -0
  129. data/test/app/vendor/extjs-mvc/spec/ExtMVC.spec.js +65 -0
  130. data/test/app/vendor/extjs-mvc/spec/Model.spec.js +370 -0
  131. data/test/app/vendor/extjs-mvc/spec/OS.spec.js +83 -0
  132. data/test/app/vendor/extjs-mvc/spec/Router.spec.js +99 -0
  133. data/test/app/vendor/extjs-mvc/spec/SpecHelper.js +106 -0
  134. data/test/app/vendor/extjs-mvc/spec/String.spec.js +83 -0
  135. data/test/app/vendor/extjs-mvc/spec/model/AbstractAdapter.spec.js +49 -0
  136. data/test/app/vendor/extjs-mvc/spec/model/Associations.spec.js +99 -0
  137. data/test/app/vendor/extjs-mvc/spec/model/Cache.spec.js +5 -0
  138. data/test/app/vendor/extjs-mvc/spec/model/RESTAdapter.spec.js +19 -0
  139. data/test/app/vendor/extjs-mvc/spec/model/ValidationErrors.spec.js +64 -0
  140. data/test/app/vendor/extjs-mvc/spec/model/Validations.spec.js +166 -0
  141. data/test/app/vendor/extjs-mvc/spec/model/ValidationsPlugin.spec.js +108 -0
  142. data/test/app/vendor/extjs-mvc/spec/suite.html +60 -0
  143. data/test/app/vendor/extjs-mvc/specs-old/JSSpec.css +216 -0
  144. data/test/app/vendor/extjs-mvc/specs-old/JSSpec.js +1512 -0
  145. data/test/app/vendor/extjs-mvc/specs-old/all.html +66 -0
  146. data/test/app/vendor/extjs-mvc/specs-old/base.js +14 -0
  147. data/test/app/vendor/extjs-mvc/specs-old/controller.js +17 -0
  148. data/test/app/vendor/extjs-mvc/specs-old/diff_match_patch.js +1 -0
  149. data/test/app/vendor/extjs-mvc/specs-old/model.js +70 -0
  150. data/test/app/vendor/extjs-mvc/specs-old/route.js +38 -0
  151. data/test/app/vendor/extjs-mvc/specs-old/router.js +59 -0
  152. data/test/app/vendor/extjs-mvc/specs-old/string.js +22 -0
  153. data/test/app/vendor/extjs-mvc/testrunner/JSpecFormatter.js +111 -0
  154. data/test/app/vendor/extjs-mvc/testrunner/TestClient.js +181 -0
  155. data/test/app/vendor/extjs-mvc/testrunner/TestGrid.js +351 -0
  156. data/test/app/vendor/extjs-mvc/testrunner/TestRunner.js +110 -0
  157. data/test/app/vendor/extjs-mvc/testrunner/TestViewport.js +94 -0
  158. data/test/app/vendor/extjs-mvc/vendor.yml +30 -0
  159. data/test/app/vendor/extjs-mvc/vendor/ext-3.1.1/vendor.yml +16 -0
  160. data/test/app/vendor/extjs-mvc/view/FormWindow.js +184 -0
  161. data/test/app/vendor/extjs-mvc/view/HasManyEditorGridPanel.js +211 -0
  162. data/test/app/vendor/extjs-mvc/view/scaffold/Edit.js +46 -0
  163. data/test/app/vendor/extjs-mvc/view/scaffold/Index.js +561 -0
  164. data/test/app/vendor/extjs-mvc/view/scaffold/New.js +20 -0
  165. data/test/app/vendor/extjs-mvc/view/scaffold/ScaffoldFormPanel.js +255 -0
  166. data/test/helper.rb +7 -1
  167. data/test/test_extjs-mvc.rb +46 -0
  168. metadata +167 -7
  169. data/test/test_extjs-mvc-gem.rb +0 -7
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @class ExtMVC.view.scaffold.New
3
+ * @extends ExtMVC.view.scaffold.ScaffoldFormPanel
4
+ * Shows a generic new form for a given model
5
+ */
6
+ ExtMVC.registerView('scaffold', 'new', {
7
+ xtype : 'scaffold_form',
8
+ registerXType: 'scaffold_new',
9
+
10
+ /**
11
+ * Sets this panel's title, if not already set. Also specifies the save handler to use
12
+ */
13
+ initComponent: function() {
14
+ Ext.applyIf(this, {
15
+ title: 'New ' + this.model.prototype.singularHumanName
16
+ });
17
+
18
+ ExtMVC.getView('scaffold', 'form').prototype.initComponent.apply(this, arguments);
19
+ }
20
+ });
@@ -0,0 +1,255 @@
1
+ /**
2
+ * @class ExtMVC.view.scaffold.ScaffoldFormPanel
3
+ * @extends Ext.form.FormPanel
4
+ * Base class for any scaffold form panel (e.g. new and edit forms)
5
+ */
6
+ ExtMVC.registerView('scaffold', 'form', {
7
+ xtype : 'form',
8
+ registerXType: 'scaffold_form',
9
+
10
+ autoScroll: true,
11
+
12
+ /**
13
+ * Sets up the FormPanel, adds default configuration and items
14
+ */
15
+ constructor: function(config) {
16
+ var config = config || {};
17
+
18
+ this.model = config.model;
19
+
20
+ if (this.model == undefined) {
21
+ throw new Ext.Error(String.format("No model supplied to scaffold Form {0}", config.title), config);
22
+ }
23
+
24
+ Ext.form.FormPanel.prototype.constructor.call(this, config);
25
+ },
26
+
27
+ /**
28
+ * Adds default items, keys and buttons to the form
29
+ */
30
+ initComponent: function() {
31
+ Ext.applyIf(this, {
32
+ items : this.buildItems(),
33
+ monitorPoll : 500,
34
+ keys : [
35
+ {
36
+ key: Ext.EventObject.ESC,
37
+ scope: this,
38
+ handler: this.onCancel
39
+ },
40
+ {
41
+ key: 's',
42
+ ctrl: true,
43
+ scope: this,
44
+ stopEvent: true,
45
+ handler: this.onSave
46
+ }
47
+ ],
48
+
49
+ /**
50
+ * @property hasSaveButton
51
+ * @type Boolean
52
+ * True to include a save button (defaults to true)
53
+ */
54
+ hasSaveButton: true,
55
+
56
+ /**
57
+ * @property hasCancelButton
58
+ * @type Boolean
59
+ * True to include a cancel button (defaults to true)
60
+ */
61
+ hasCancelButton: true
62
+ });
63
+
64
+ //applyIf applies when buttons: [] is passed, which meant there was no way to
65
+ //specify any empty set of buttons before
66
+ if (!Ext.isArray(this.buttons)) {
67
+ Ext.apply(this, {
68
+ buttons: this.buildButtons()
69
+ });
70
+ }
71
+
72
+ Ext.form.FormPanel.prototype.initComponent.apply(this, arguments);
73
+
74
+ this.initEvents();
75
+ this.initListeners();
76
+ },
77
+
78
+ /**
79
+ * Sets up any listeners on related objects. By default this just listens to update-failed and create-failed
80
+ * events on the related controller and marks fields as invalid as appropriate
81
+ */
82
+ initListeners: function() {
83
+ if (this.controller) {
84
+ this.controller.on({
85
+ scope : this,
86
+ 'create-failed': this.showErrorsFromInstance,
87
+ 'update-failed': this.showErrorsFromInstance
88
+ });
89
+ }
90
+ },
91
+
92
+ /**
93
+ * Reads errors from a model instance and marks the relevant fields as invalid
94
+ * @param {ExtMVC.Model.Base} instance The model instance
95
+ */
96
+ showErrorsFromInstance: function(instance) {
97
+ this.getForm().markInvalid(instance.errors.forForm());
98
+ },
99
+
100
+ /**
101
+ * Sets up events emitted by this component
102
+ */
103
+ initEvents: function() {
104
+ this.addEvents(
105
+ /**
106
+ * @event save
107
+ * Fired when the user clicks the save button, or presses ctrl + s
108
+ * @param {Object} values The values entered into the form
109
+ * @param {ExtMVC.view.scaffold.ScaffoldFormPanel} this The form panel
110
+ */
111
+ 'save',
112
+
113
+ /**
114
+ * @event cancel
115
+ * Fired when the user clicks the cancel button, or presses the esc key
116
+ * @param {ExtMVC.Model.Base|Null} instance If editing an existing instance, this is a reference to that instance
117
+ */
118
+ 'cancel'
119
+ );
120
+
121
+ //taken from default Ext.FormPanel.initEvents - used to listen to the current validation of the form
122
+ //and fire off events
123
+ if (this.monitorValid) this.startMonitoring();
124
+ },
125
+
126
+ /**
127
+ * @property formItemConfig
128
+ * @type Object
129
+ * Default config which will be passed to all form items
130
+ */
131
+ formItemConfig: {
132
+ anchor: '-40',
133
+ xtype: 'textfield'
134
+ },
135
+
136
+ /**
137
+ * @property ignoreFields
138
+ * @type Array
139
+ * An array of fields not to show in the form (defaults to empty)
140
+ */
141
+ ignoreFields: ['id', 'created_at', 'updated_at'],
142
+
143
+ /**
144
+ * Builds the buttons added to this form. By default this returns an array containing
145
+ * a Save button and a Cancel button, which fire the 'save' and 'cancel' events respectively
146
+ * @return {Array} An array of Ext.Button objects or configs
147
+ */
148
+ buildButtons: function() {
149
+ var buttons = [];
150
+
151
+ if (this.hasSaveButton === true) buttons.push(this.buildSaveButton());
152
+ if (this.hasCancelButton === true) buttons.push(this.buildCancelButton());
153
+
154
+ return buttons;
155
+ },
156
+
157
+ /**
158
+ * Builds the Save button config. Override this to provide your own
159
+ * @return {Object/Ext.Button} The button config or object
160
+ */
161
+ buildSaveButton: function() {
162
+ return {
163
+ text: 'Save',
164
+ scope: this,
165
+ iconCls: 'save',
166
+ handler: this.onSave,
167
+ formBind: (this.monitorValid) ? true : false
168
+ };
169
+ },
170
+
171
+ /**
172
+ * Builds the Cancel button config. Override this to provide your own
173
+ * @return {Object/Ext.Button} The button config or object
174
+ */
175
+ buildCancelButton: function() {
176
+ return {
177
+ text: 'Cancel',
178
+ scope: this,
179
+ iconCls: 'cancel',
180
+ handler: this.onCancel
181
+ };
182
+ },
183
+
184
+ /**
185
+ * Builds an array of form items for the given model
186
+ * @param {ExtMVC.Model} model The model to build form items for
187
+ * @return {Array} An array of auto-generated form items
188
+ */
189
+ buildItems: function() {
190
+ items = [];
191
+
192
+ //check to see if FormFields have been created for this model
193
+ //e.g. for a MyApp.models.User model, checks for existence of MyApp.views.users.FormFields
194
+ if (this.viewsPackage && this.viewsPackage.FormFields) {
195
+ items = this.viewsPackage.FormFields;
196
+ } else {
197
+ //no user defined form fields, generate them automatically
198
+ var model = this.model,
199
+ proto = model.prototype,
200
+ fields = proto.fields;
201
+
202
+ fields.each(function(field) {
203
+
204
+ //add if it's not a field to be ignored
205
+ if (this.ignoreFields.indexOf(field.name) == -1) {
206
+ items.push(Ext.applyIf({
207
+ name: field.name,
208
+ fieldLabel: (field.name.replace(/_/g, " ")).capitalize()
209
+ }));
210
+ }
211
+ }, this);
212
+ }
213
+
214
+ //apply defaults to each item
215
+ for (var i=0; i < items.length; i++) {
216
+ if (items[i].layout === undefined) Ext.applyIf(items[i], this.formItemConfig);
217
+ }
218
+
219
+ return items;
220
+ },
221
+
222
+ /**
223
+ * Called when the save button is clicked or CTRL + s pressed. By default this simply fires
224
+ * the 'save' event, passing this.getForm().getValues() as the sole argument
225
+ */
226
+ onSave: function() {
227
+ this.fireEvent('save', this.getFormValues(), this);
228
+ },
229
+
230
+ /**
231
+ * Gets form values in a nicer way than getForm.getValues() does - calls getValue on each field.
232
+ * See http://www.diloc.de/blog/2008/03/05/how-to-submit-ext-forms-the-right-way/
233
+ * @return {Object} key: value pairings of form values
234
+ */
235
+ getFormValues: function() {
236
+ var form = this.getForm(),
237
+ values = {};
238
+
239
+ form.items.each(function(item) {
240
+ var func = (typeof item.getSubmitValue == "function") ? 'getSubmitValue' : 'getValue';
241
+
242
+ values[item.getName()] = item[func]();
243
+ }, this);
244
+
245
+ return values;
246
+ },
247
+
248
+ /**
249
+ * Called when the cancel button is clicked or ESC pressed. Fires the 'cancel' event. If this is
250
+ * an edit form the cancel event will be called with a single argument - the current instance
251
+ */
252
+ onCancel: function() {
253
+ this.fireEvent('cancel', this.instance, this);
254
+ }
255
+ });
@@ -4,7 +4,13 @@ require 'shoulda'
4
4
 
5
5
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
6
6
  $LOAD_PATH.unshift(File.dirname(__FILE__))
7
- require 'extjs-mvc-gem'
7
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), "lib"))
8
+
9
+
10
+ require 'xmvc'
11
+ require 'xmvc/cli'
12
+ require 'extjs-mvc'
8
13
 
9
14
  class Test::Unit::TestCase
15
+
10
16
  end
@@ -0,0 +1,46 @@
1
+ require 'helper'
2
+
3
+ class TestVendorInstaller < Test::Unit::TestCase
4
+ VENDOR_ROOT = "test/app/vendor"
5
+
6
+ context "ExtJS Vendor" do
7
+ should "install" do
8
+ path = "test/app/vendor/#{ExtJS::MVC::API.vendor_name}"
9
+ FileUtils.rm_rf(path) if File.exists? path
10
+ vendor = ExtJS::MVC::API.install({
11
+ :root => VENDOR_ROOT
12
+ })
13
+ assert File.exists?(File.join(VENDOR_ROOT, "#{ExtJS::MVC::API.vendor_name}/vendor.yml"))
14
+ end
15
+
16
+ should "load" do
17
+ vendor = ExtJS::MVC::API.load({
18
+ :root => VENDOR_ROOT
19
+ })
20
+ assert vendor.config.kind_of?(Hash) and vendor.config["name"] == ExtJS::MVC::API.vendor_name
21
+ end
22
+
23
+ should "return secretary" do
24
+ vendor = ExtJS::MVC::API.load({
25
+ :root => VENDOR_ROOT
26
+ })
27
+ secretary = vendor.invoke(:secretary)
28
+ assert secretary.instance_of?(Sprockets::Secretary)
29
+ end
30
+
31
+ should "secretary should contain files" do
32
+ vendor = ExtJS::MVC::API.load({
33
+ :root => "test/app/vendor"
34
+ })
35
+ secretary = vendor.invoke(:secretary)
36
+ assert secretary.preprocessor.source_files.length > 0
37
+ end
38
+
39
+ should "Have host default to 'public' when not defined in vendor.yml" do
40
+ vendor = ExtJS::MVC::API.load({
41
+ :root => "test/app/vendor"
42
+ })
43
+ assert vendor.config['host'] == "public"
44
+ end
45
+ end
46
+ end
metadata CHANGED
@@ -6,8 +6,8 @@ version: !ruby/object:Gem::Version
6
6
  - 0
7
7
  - 4
8
8
  - 0
9
- - j
10
- version: 0.4.0.j
9
+ - k
10
+ version: 0.4.0.k
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ed Spencer and Chris Scott
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-03-16 00:00:00 -04:00
18
+ date: 2010-03-19 00:00:00 -04:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -73,7 +73,7 @@ dependencies:
73
73
  type: :runtime
74
74
  version_requirements: *id004
75
75
  - !ruby/object:Gem::Dependency
76
- name: thoughtbot-shoulda
76
+ name: shoulda
77
77
  prerelease: false
78
78
  requirement: &id005 !ruby/object:Gem::Requirement
79
79
  requirements:
@@ -103,9 +103,169 @@ files:
103
103
  - bin/run
104
104
  - lib/extjs-mvc.rb
105
105
  - lib/extjs-mvc/api.rb
106
- - lib/vendor.yml
106
+ - lib/extjs-mvc/src/App.js
107
+ - lib/extjs-mvc/src/MVC.js
108
+ - lib/extjs-mvc/src/Presenter.js
109
+ - lib/extjs-mvc/src/README.rdoc
110
+ - lib/extjs-mvc/src/controller/Controller.js
111
+ - lib/extjs-mvc/src/controller/CrudController.js
112
+ - lib/extjs-mvc/src/lib/Array.js
113
+ - lib/extjs-mvc/src/lib/Booter.js
114
+ - lib/extjs-mvc/src/lib/ClassManager.js
115
+ - lib/extjs-mvc/src/lib/ControllerClassManager.js
116
+ - lib/extjs-mvc/src/lib/Dependencies.js
117
+ - lib/extjs-mvc/src/lib/DispatchMatcher.js
118
+ - lib/extjs-mvc/src/lib/Dispatcher.js
119
+ - lib/extjs-mvc/src/lib/Environment.js
120
+ - lib/extjs-mvc/src/lib/Inflector.js
121
+ - lib/extjs-mvc/src/lib/ModelClassManager.js
122
+ - lib/extjs-mvc/src/lib/Route.js
123
+ - lib/extjs-mvc/src/lib/Router.js
124
+ - lib/extjs-mvc/src/lib/String.js
125
+ - lib/extjs-mvc/src/lib/ViewClassManager.js
126
+ - lib/extjs-mvc/src/lib/notes.txt
127
+ - lib/extjs-mvc/src/model/AdapterManager.js
128
+ - lib/extjs-mvc/src/model/Association.js
129
+ - lib/extjs-mvc/src/model/Base.js
130
+ - lib/extjs-mvc/src/model/BelongsToAssociation.js
131
+ - lib/extjs-mvc/src/model/Cache.js
132
+ - lib/extjs-mvc/src/model/HasManyAssociation.js
133
+ - lib/extjs-mvc/src/model/Model.js
134
+ - lib/extjs-mvc/src/model/UrlBuilder.js
135
+ - lib/extjs-mvc/src/model/adapters/AbstractAdapter.js
136
+ - lib/extjs-mvc/src/model/adapters/MemoryAdapter.js
137
+ - lib/extjs-mvc/src/model/adapters/RESTAdapter.js
138
+ - lib/extjs-mvc/src/model/adapters/RESTJSONAdapter.js
139
+ - lib/extjs-mvc/src/model/adapters/notes.txt
140
+ - lib/extjs-mvc/src/model/associations/Association.js
141
+ - lib/extjs-mvc/src/model/associations/notes.txt
142
+ - lib/extjs-mvc/src/model/validations/Errors.js
143
+ - lib/extjs-mvc/src/model/validations/Plugin.js
144
+ - lib/extjs-mvc/src/model/validations/Validations.js
145
+ - lib/extjs-mvc/src/notes/Charts.graffle
146
+ - lib/extjs-mvc/src/overrides/Ext.Component.js
147
+ - lib/extjs-mvc/src/overrides/Ext.extend.js
148
+ - lib/extjs-mvc/src/spec/Array.spec.js
149
+ - lib/extjs-mvc/src/spec/ExtMVC.spec.js
150
+ - lib/extjs-mvc/src/spec/Model.spec.js
151
+ - lib/extjs-mvc/src/spec/OS.spec.js
152
+ - lib/extjs-mvc/src/spec/Router.spec.js
153
+ - lib/extjs-mvc/src/spec/SpecHelper.js
154
+ - lib/extjs-mvc/src/spec/String.spec.js
155
+ - lib/extjs-mvc/src/spec/model/AbstractAdapter.spec.js
156
+ - lib/extjs-mvc/src/spec/model/Associations.spec.js
157
+ - lib/extjs-mvc/src/spec/model/Cache.spec.js
158
+ - lib/extjs-mvc/src/spec/model/RESTAdapter.spec.js
159
+ - lib/extjs-mvc/src/spec/model/ValidationErrors.spec.js
160
+ - lib/extjs-mvc/src/spec/model/Validations.spec.js
161
+ - lib/extjs-mvc/src/spec/model/ValidationsPlugin.spec.js
162
+ - lib/extjs-mvc/src/spec/suite.html
163
+ - lib/extjs-mvc/src/specs-old/JSSpec.css
164
+ - lib/extjs-mvc/src/specs-old/JSSpec.js
165
+ - lib/extjs-mvc/src/specs-old/all.html
166
+ - lib/extjs-mvc/src/specs-old/base.js
167
+ - lib/extjs-mvc/src/specs-old/controller.js
168
+ - lib/extjs-mvc/src/specs-old/diff_match_patch.js
169
+ - lib/extjs-mvc/src/specs-old/model.js
170
+ - lib/extjs-mvc/src/specs-old/route.js
171
+ - lib/extjs-mvc/src/specs-old/router.js
172
+ - lib/extjs-mvc/src/specs-old/string.js
173
+ - lib/extjs-mvc/src/testrunner/JSpecFormatter.js
174
+ - lib/extjs-mvc/src/testrunner/TestClient.js
175
+ - lib/extjs-mvc/src/testrunner/TestGrid.js
176
+ - lib/extjs-mvc/src/testrunner/TestRunner.js
177
+ - lib/extjs-mvc/src/testrunner/TestViewport.js
178
+ - lib/extjs-mvc/src/vendor.yml
179
+ - lib/extjs-mvc/src/vendor/ext-3.1.1/vendor.yml
180
+ - lib/extjs-mvc/src/view/FormWindow.js
181
+ - lib/extjs-mvc/src/view/HasManyEditorGridPanel.js
182
+ - lib/extjs-mvc/src/view/scaffold/Edit.js
183
+ - lib/extjs-mvc/src/view/scaffold/Index.js
184
+ - lib/extjs-mvc/src/view/scaffold/New.js
185
+ - lib/extjs-mvc/src/view/scaffold/ScaffoldFormPanel.js
186
+ - lib/extjs-mvc/vendor.yml
187
+ - test/app/vendor/extjs-mvc/App.js
188
+ - test/app/vendor/extjs-mvc/MVC.js
189
+ - test/app/vendor/extjs-mvc/Presenter.js
190
+ - test/app/vendor/extjs-mvc/README.rdoc
191
+ - test/app/vendor/extjs-mvc/controller/Controller.js
192
+ - test/app/vendor/extjs-mvc/controller/CrudController.js
193
+ - test/app/vendor/extjs-mvc/lib/Array.js
194
+ - test/app/vendor/extjs-mvc/lib/Booter.js
195
+ - test/app/vendor/extjs-mvc/lib/ClassManager.js
196
+ - test/app/vendor/extjs-mvc/lib/ControllerClassManager.js
197
+ - test/app/vendor/extjs-mvc/lib/Dependencies.js
198
+ - test/app/vendor/extjs-mvc/lib/DispatchMatcher.js
199
+ - test/app/vendor/extjs-mvc/lib/Dispatcher.js
200
+ - test/app/vendor/extjs-mvc/lib/Environment.js
201
+ - test/app/vendor/extjs-mvc/lib/Inflector.js
202
+ - test/app/vendor/extjs-mvc/lib/ModelClassManager.js
203
+ - test/app/vendor/extjs-mvc/lib/Route.js
204
+ - test/app/vendor/extjs-mvc/lib/Router.js
205
+ - test/app/vendor/extjs-mvc/lib/String.js
206
+ - test/app/vendor/extjs-mvc/lib/ViewClassManager.js
207
+ - test/app/vendor/extjs-mvc/lib/notes.txt
208
+ - test/app/vendor/extjs-mvc/model/AdapterManager.js
209
+ - test/app/vendor/extjs-mvc/model/Association.js
210
+ - test/app/vendor/extjs-mvc/model/Base.js
211
+ - test/app/vendor/extjs-mvc/model/BelongsToAssociation.js
212
+ - test/app/vendor/extjs-mvc/model/Cache.js
213
+ - test/app/vendor/extjs-mvc/model/HasManyAssociation.js
214
+ - test/app/vendor/extjs-mvc/model/Model.js
215
+ - test/app/vendor/extjs-mvc/model/UrlBuilder.js
216
+ - test/app/vendor/extjs-mvc/model/adapters/AbstractAdapter.js
217
+ - test/app/vendor/extjs-mvc/model/adapters/MemoryAdapter.js
218
+ - test/app/vendor/extjs-mvc/model/adapters/RESTAdapter.js
219
+ - test/app/vendor/extjs-mvc/model/adapters/RESTJSONAdapter.js
220
+ - test/app/vendor/extjs-mvc/model/adapters/notes.txt
221
+ - test/app/vendor/extjs-mvc/model/associations/Association.js
222
+ - test/app/vendor/extjs-mvc/model/associations/notes.txt
223
+ - test/app/vendor/extjs-mvc/model/validations/Errors.js
224
+ - test/app/vendor/extjs-mvc/model/validations/Plugin.js
225
+ - test/app/vendor/extjs-mvc/model/validations/Validations.js
226
+ - test/app/vendor/extjs-mvc/notes/Charts.graffle
227
+ - test/app/vendor/extjs-mvc/overrides/Ext.Component.js
228
+ - test/app/vendor/extjs-mvc/overrides/Ext.extend.js
229
+ - test/app/vendor/extjs-mvc/spec/Array.spec.js
230
+ - test/app/vendor/extjs-mvc/spec/ExtMVC.spec.js
231
+ - test/app/vendor/extjs-mvc/spec/Model.spec.js
232
+ - test/app/vendor/extjs-mvc/spec/OS.spec.js
233
+ - test/app/vendor/extjs-mvc/spec/Router.spec.js
234
+ - test/app/vendor/extjs-mvc/spec/SpecHelper.js
235
+ - test/app/vendor/extjs-mvc/spec/String.spec.js
236
+ - test/app/vendor/extjs-mvc/spec/model/AbstractAdapter.spec.js
237
+ - test/app/vendor/extjs-mvc/spec/model/Associations.spec.js
238
+ - test/app/vendor/extjs-mvc/spec/model/Cache.spec.js
239
+ - test/app/vendor/extjs-mvc/spec/model/RESTAdapter.spec.js
240
+ - test/app/vendor/extjs-mvc/spec/model/ValidationErrors.spec.js
241
+ - test/app/vendor/extjs-mvc/spec/model/Validations.spec.js
242
+ - test/app/vendor/extjs-mvc/spec/model/ValidationsPlugin.spec.js
243
+ - test/app/vendor/extjs-mvc/spec/suite.html
244
+ - test/app/vendor/extjs-mvc/specs-old/JSSpec.css
245
+ - test/app/vendor/extjs-mvc/specs-old/JSSpec.js
246
+ - test/app/vendor/extjs-mvc/specs-old/all.html
247
+ - test/app/vendor/extjs-mvc/specs-old/base.js
248
+ - test/app/vendor/extjs-mvc/specs-old/controller.js
249
+ - test/app/vendor/extjs-mvc/specs-old/diff_match_patch.js
250
+ - test/app/vendor/extjs-mvc/specs-old/model.js
251
+ - test/app/vendor/extjs-mvc/specs-old/route.js
252
+ - test/app/vendor/extjs-mvc/specs-old/router.js
253
+ - test/app/vendor/extjs-mvc/specs-old/string.js
254
+ - test/app/vendor/extjs-mvc/testrunner/JSpecFormatter.js
255
+ - test/app/vendor/extjs-mvc/testrunner/TestClient.js
256
+ - test/app/vendor/extjs-mvc/testrunner/TestGrid.js
257
+ - test/app/vendor/extjs-mvc/testrunner/TestRunner.js
258
+ - test/app/vendor/extjs-mvc/testrunner/TestViewport.js
259
+ - test/app/vendor/extjs-mvc/vendor.yml
260
+ - test/app/vendor/extjs-mvc/vendor/ext-3.1.1/vendor.yml
261
+ - test/app/vendor/extjs-mvc/view/FormWindow.js
262
+ - test/app/vendor/extjs-mvc/view/HasManyEditorGridPanel.js
263
+ - test/app/vendor/extjs-mvc/view/scaffold/Edit.js
264
+ - test/app/vendor/extjs-mvc/view/scaffold/Index.js
265
+ - test/app/vendor/extjs-mvc/view/scaffold/New.js
266
+ - test/app/vendor/extjs-mvc/view/scaffold/ScaffoldFormPanel.js
107
267
  - test/helper.rb
108
- - test/test_extjs-mvc-gem.rb
268
+ - test/test_extjs-mvc.rb
109
269
  has_rdoc: true
110
270
  homepage: http://github.com/christocracy/extjs-mvc
111
271
  licenses: []
@@ -140,4 +300,4 @@ specification_version: 3
140
300
  summary: A Rails-like, full-stack MVC framework for the Ext JS javascript framework
141
301
  test_files:
142
302
  - test/helper.rb
143
- - test/test_extjs-mvc-gem.rb
303
+ - test/test_extjs-mvc.rb