spiderfw 0.5.15 → 0.5.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. data/CHANGELOG +7 -0
  2. data/VERSION +1 -1
  3. data/apps/core/auth/data/locale/it/LC_MESSAGES/spider_auth.mo +0 -0
  4. data/apps/core/auth/po/it/spider_auth.po +8 -5
  5. data/apps/core/auth/po/spider_auth.pot +2 -2
  6. data/apps/core/components/data/locale/it/LC_MESSAGES/spider_components.mo +0 -0
  7. data/apps/core/components/po/it/spider_components.po +11 -7
  8. data/apps/core/components/po/spider_components.pot +9 -5
  9. data/apps/core/components/public/js/spider.js +19 -0
  10. data/apps/core/components/widgets/month_calendar/month_calendar.rb +16 -9
  11. data/apps/core/forms/data/locale/it/LC_MESSAGES/spider_forms.mo +0 -0
  12. data/apps/core/forms/po/it/spider_forms.po +18 -5
  13. data/apps/core/forms/po/spider_forms.pot +16 -4
  14. data/apps/master/po/master.pot +400 -0
  15. data/apps/messenger/data/locale/it/LC_MESSAGES/spider_messenger.mo +0 -0
  16. data/apps/messenger/po/it/spider_messenger.po +48 -8
  17. data/apps/messenger/po/spider_messenger.pot +39 -3
  18. data/data/locale/it/LC_MESSAGES/spider.mo +0 -0
  19. data/lib/spiderfw/app.rb +16 -15
  20. data/lib/spiderfw/cmd/commands/app.rb +60 -0
  21. data/lib/spiderfw/controller/controller.rb +5 -1
  22. data/lib/spiderfw/controller/controller_mixin.rb +1 -0
  23. data/lib/spiderfw/controller/dispatcher.rb +1 -0
  24. data/lib/spiderfw/controller/mixins/visual.rb +16 -8
  25. data/lib/spiderfw/home.rb +3 -2
  26. data/lib/spiderfw/i18n/javascript_parser.rb +1 -1
  27. data/lib/spiderfw/model/base_model.rb +16 -6
  28. data/lib/spiderfw/model/mappers/db_mapper.rb +2 -2
  29. data/lib/spiderfw/model/mappers/mapper.rb +7 -2
  30. data/lib/spiderfw/model/query.rb +11 -1
  31. data/lib/spiderfw/setup/app_manager.rb +60 -0
  32. data/lib/spiderfw/templates/blocks/widget.rb +1 -1
  33. data/lib/spiderfw/utils/annotations.rb +1 -1
  34. data/lib/spiderfw/widget/widget.rb +12 -1
  35. data/lib/spiderfw/widget/widget_plugin.rb +15 -1
  36. data/lib/spiderfw.rb +46 -51
  37. metadata +8 -4
@@ -0,0 +1,400 @@
1
+ # SOME DESCRIPTIVE TITLE.
2
+ # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
+ # This file is distributed under the same license as the PACKAGE package.
4
+ # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
+ #
6
+ #, fuzzy
7
+ msgid ""
8
+ msgstr ""
9
+ "Project-Id-Version: Spider::Master 0.1\n"
10
+ "POT-Creation-Date: 2010-11-29 12:48+0100\n"
11
+ "PO-Revision-Date: 2010-11-29 12:48+0100\n"
12
+ "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
+ "Language-Team: LANGUAGE <LL@li.org>\n"
14
+ "MIME-Version: 1.0\n"
15
+ "Content-Type: text/plain; charset=UTF-8\n"
16
+ "Content-Transfer-Encoding: 8bit\n"
17
+ "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
18
+
19
+ #: controllers/master_controller.rb:50 views/customers.shtml:3 views/index.shtml:2
20
+ #: views/master.layout.shtml:20
21
+ msgid "Customers"
22
+ msgstr ""
23
+
24
+ #: controllers/master_controller.rb:81
25
+ msgid "No customer"
26
+ msgstr ""
27
+
28
+ #: controllers/master_controller.rb:83
29
+ msgid "User can't access this customer"
30
+ msgstr ""
31
+
32
+ #: controllers/master_controller.rb:102
33
+ msgid "User can't list customers"
34
+ msgstr ""
35
+
36
+ #: models/scout_plugin_instance.rb:21
37
+ msgid "Ok"
38
+ msgstr ""
39
+
40
+ #: models/scout_plugin_instance.rb:22
41
+ msgid "Error"
42
+ msgstr ""
43
+
44
+ #: models/scout_plugin_instance.rb:23
45
+ msgid "Alert"
46
+ msgstr ""
47
+
48
+ #: models/scout_plugin_trigger.rb:8
49
+ msgid "Peak trigger"
50
+ msgstr ""
51
+
52
+ #: models/scout_plugin_trigger.rb:9
53
+ msgid "Plateau trigger"
54
+ msgstr ""
55
+
56
+ #: models/scout_plugin_trigger.rb:10
57
+ msgid "Trend trigger"
58
+ msgstr ""
59
+
60
+ #: models/scout_plugin_trigger.rb:15
61
+ msgid "Up"
62
+ msgstr ""
63
+
64
+ #: models/scout_plugin_trigger.rb:16
65
+ msgid "Down"
66
+ msgstr ""
67
+
68
+ #: models/scout_plugin_trigger.rb:17
69
+ msgid "Either"
70
+ msgstr ""
71
+
72
+ #: models/scout_plugin_trigger.rb:22 views/trigger_edit.shtml:76
73
+ msgid "yesterday's average"
74
+ msgstr ""
75
+
76
+ #: models/scout_plugin_trigger.rb:23 views/trigger_edit.shtml:79
77
+ msgid "previous 7-day average"
78
+ msgstr ""
79
+
80
+ #: models/scout_plugin_trigger.rb:24 views/trigger_edit.shtml:82
81
+ msgid "preceding window"
82
+ msgstr ""
83
+
84
+ #: models/scout_plugin_trigger.rb:27
85
+ msgid "normal"
86
+ msgstr ""
87
+
88
+ #: models/scout_plugin_trigger.rb:28
89
+ msgid "fired"
90
+ msgstr ""
91
+
92
+ #: models/scout_plugin_trigger.rb:93 models/scout_plugin_trigger.rb:101
93
+ #: models/scout_plugin_trigger.rb:230
94
+ msgid "%d minutes"
95
+ msgstr ""
96
+
97
+ #: models/scout_plugin_trigger.rb:111
98
+ msgid "Alert me when %s exceeds %s"
99
+ msgstr ""
100
+
101
+ #: models/scout_plugin_trigger.rb:113
102
+ msgid "Alert me when %s goes %s more than %s over the preceding %s (relative to %s), \n as long as the value is at least %s"
103
+ msgstr ""
104
+
105
+ #: models/scout_plugin_trigger.rb:119
106
+ msgid "Alert me when %s stays above %s for %s or more"
107
+ msgstr ""
108
+
109
+ #: models/scout_plugin_trigger.rb:224
110
+ msgid "%s exceeded %s, increasing to %s at %s"
111
+ msgstr ""
112
+
113
+ #: models/scout_plugin_trigger.rb:232
114
+ msgid "%s went %s more than %s over the preceding %s minutes with respect to %s, and is now %s"
115
+ msgstr ""
116
+
117
+ #: models/scout_plugin_trigger.rb:241
118
+ msgid "%s exceeded %s, increasing to %s at %s, and is still continuing at %s as of %s"
119
+ msgstr ""
120
+
121
+ #: views/admin.layout.shtml:5
122
+ msgid "\"Administration\""
123
+ msgstr ""
124
+
125
+ #: views/customer.shtml:6
126
+ msgid "New customer"
127
+ msgstr ""
128
+
129
+ #: views/customer.shtml:8 views/servant.shtml:6
130
+ msgid "Edit"
131
+ msgstr ""
132
+
133
+ #: views/customer.shtml:21 views/index.shtml:3 views/master.layout.shtml:21
134
+ msgid "Servants"
135
+ msgstr ""
136
+
137
+ #: views/customer.shtml:21 views/customer.shtml:32 views/customers.shtml:3
138
+ #: views/plugin_instance.shtml:33
139
+ msgid "Add"
140
+ msgstr ""
141
+
142
+ #: views/customer.shtml:32
143
+ msgid "Installations"
144
+ msgstr ""
145
+
146
+ #: views/installation.shtml:3
147
+ msgid "Back to customer"
148
+ msgstr ""
149
+
150
+ #: views/installation.shtml:6
151
+ msgid "New installation for %s"
152
+ msgstr ""
153
+
154
+ #: views/installation.shtml:9 views/plugin_edit.shtml:10
155
+ msgid "Name"
156
+ msgstr ""
157
+
158
+ #: views/installation.shtml:16
159
+ msgid "Installation \"%s\" for %s"
160
+ msgstr ""
161
+
162
+ #: views/installation.shtml:18
163
+ msgid "Edit installation"
164
+ msgstr ""
165
+
166
+ #: views/installation.shtml:20
167
+ msgid "Apps"
168
+ msgstr ""
169
+
170
+ #: views/installation.shtml:28
171
+ msgid "Save"
172
+ msgstr ""
173
+
174
+ #: views/installation.shtml:32
175
+ msgid "Targets"
176
+ msgstr ""
177
+
178
+ #: views/master.layout.shtml:19
179
+ msgid "Home"
180
+ msgstr ""
181
+
182
+ #: views/plugin_data.shtml:13
183
+ msgid "Compare"
184
+ msgstr ""
185
+
186
+ #: views/plugin_data.shtml:22
187
+ msgid "Show in same scale"
188
+ msgstr ""
189
+
190
+ #: views/plugin_edit.shtml:3
191
+ msgid "Edit plugin \"%s\""
192
+ msgstr ""
193
+
194
+ #: views/plugin_edit.shtml:4
195
+ msgid "Back to plugin details"
196
+ msgstr ""
197
+
198
+ #: views/plugin_edit.shtml:15
199
+ msgid "Settings"
200
+ msgstr ""
201
+
202
+ #: views/plugin_edit.shtml:28
203
+ msgid "Advanced options"
204
+ msgstr ""
205
+
206
+ #: views/plugin_edit.shtml:30
207
+ msgid "Interval"
208
+ msgstr ""
209
+
210
+ #: views/plugin_edit.shtml:34
211
+ msgid "Timeout"
212
+ msgstr ""
213
+
214
+ #: views/plugin_edit.shtml:38
215
+ msgid "Update"
216
+ msgstr ""
217
+
218
+ #: views/plugin_instance.shtml:5
219
+ msgid "Edit settings"
220
+ msgstr ""
221
+
222
+ #: views/plugin_instance.shtml:8
223
+ msgid "Last report"
224
+ msgstr ""
225
+
226
+ #: views/plugin_instance.shtml:19
227
+ msgid "Field"
228
+ msgstr ""
229
+
230
+ #: views/plugin_instance.shtml:20
231
+ msgid "Value"
232
+ msgstr ""
233
+
234
+ #: views/plugin_instance.shtml:24
235
+ msgid "@labels[key]"
236
+ msgstr ""
237
+
238
+ #: views/plugin_instance.shtml:33
239
+ msgid "Triggers"
240
+ msgstr ""
241
+
242
+ #: views/plugin_instance.shtml:38
243
+ msgid "edit"
244
+ msgstr ""
245
+
246
+ #: views/servant.shtml:14 views/trigger_edit.shtml:8
247
+ msgid "Customer"
248
+ msgstr ""
249
+
250
+ #: views/servant.shtml:23 views/servants.shtml:4
251
+ msgid "New servant"
252
+ msgstr ""
253
+
254
+ #: views/servant.shtml:23
255
+ msgid "for customer %s"
256
+ msgstr ""
257
+
258
+ #: views/servant.shtml:31
259
+ msgid "Sites"
260
+ msgstr ""
261
+
262
+ #: views/servant.shtml:32
263
+ msgid "New site"
264
+ msgstr ""
265
+
266
+ #: views/servant.shtml:33
267
+ msgid "Add existing site"
268
+ msgstr ""
269
+
270
+ #: views/servant.shtml:39 views/servant.shtml:62
271
+ msgid "Remove"
272
+ msgstr ""
273
+
274
+ #: views/servant.shtml:44
275
+ msgid "Plugins"
276
+ msgstr ""
277
+
278
+ #: views/servant.shtml:47
279
+ msgid "Add plugin"
280
+ msgstr ""
281
+
282
+ #: views/servant.shtml:70
283
+ msgid "Servant %s"
284
+ msgstr ""
285
+
286
+ #: views/servant.shtml:73
287
+ msgid "Last check"
288
+ msgstr ""
289
+
290
+ #: views/servant.shtml:78
291
+ msgid "Manage resources"
292
+ msgstr ""
293
+
294
+ #: views/servant.shtml:81
295
+ msgid "Resources"
296
+ msgstr ""
297
+
298
+ #: views/servant.shtml:94
299
+ msgid "System details"
300
+ msgstr ""
301
+
302
+ #: views/site_edit.shtml:3
303
+ msgid "Edit Site %s"
304
+ msgstr ""
305
+
306
+ #: views/site_edit.shtml:4
307
+ msgid "Create new Site for %s"
308
+ msgstr ""
309
+
310
+ #: views/site_edit.shtml:7
311
+ msgid "Choose site type"
312
+ msgstr ""
313
+
314
+ #: views/trigger_edit.shtml:3
315
+ msgid "Edit Trigger %s"
316
+ msgstr ""
317
+
318
+ #: views/trigger_edit.shtml:4
319
+ msgid "New Trigger for plugin %s"
320
+ msgstr ""
321
+
322
+ #: views/trigger_edit.shtml:12
323
+ msgid "Servant"
324
+ msgstr ""
325
+
326
+ #: views/trigger_edit.shtml:16
327
+ msgid "Plugin"
328
+ msgstr ""
329
+
330
+ #: views/trigger_edit.shtml:20 views/trigger_edit.shtml:24
331
+ msgid "Data series"
332
+ msgstr ""
333
+
334
+ #: views/trigger_edit.shtml:30
335
+ msgid "Trigger type"
336
+ msgstr ""
337
+
338
+ #: views/trigger_edit.shtml:32
339
+ msgid "peak"
340
+ msgstr ""
341
+
342
+ #: views/trigger_edit.shtml:33
343
+ msgid "plateau"
344
+ msgstr ""
345
+
346
+ #: views/trigger_edit.shtml:34
347
+ msgid "trend"
348
+ msgstr ""
349
+
350
+ #: views/trigger_edit.shtml:42 views/trigger_edit.shtml:52
351
+ msgid "Max Value"
352
+ msgstr ""
353
+
354
+ #: views/trigger_edit.shtml:48
355
+ msgid "Duration"
356
+ msgstr ""
357
+
358
+ #: views/trigger_edit.shtml:49
359
+ msgid "minutes"
360
+ msgstr ""
361
+
362
+ #: views/trigger_edit.shtml:58
363
+ msgid "Trigger"
364
+ msgstr ""
365
+
366
+ #: views/trigger_edit.shtml:61
367
+ msgid "Alert me to changes going"
368
+ msgstr ""
369
+
370
+ #: views/trigger_edit.shtml:63
371
+ msgid "up"
372
+ msgstr ""
373
+
374
+ #: views/trigger_edit.shtml:64
375
+ msgid "down"
376
+ msgstr ""
377
+
378
+ #: views/trigger_edit.shtml:65
379
+ msgid "up or down"
380
+ msgstr ""
381
+
382
+ #: views/trigger_edit.shtml:69
383
+ msgid "during the span of"
384
+ msgstr ""
385
+
386
+ #: views/trigger_edit.shtml:73
387
+ msgid "relative to"
388
+ msgstr ""
389
+
390
+ #: views/trigger_edit.shtml:89
391
+ msgid "when change is at least"
392
+ msgstr ""
393
+
394
+ #: views/trigger_edit.shtml:93
395
+ msgid "Minimum Value"
396
+ msgstr ""
397
+
398
+ #: views/trigger_edit.shtml:98
399
+ msgid "Submit"
400
+ msgstr ""
@@ -3,13 +3,12 @@
3
3
  # This file is distributed under the same license as the PACKAGE package.
4
4
  # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
5
  #
6
- #, fuzzy
7
6
  msgid ""
8
7
  msgstr ""
9
8
  "Project-Id-Version: Spider::Messenger 0.1\n"
10
- "POT-Creation-Date: 2010-03-24 16:27+0100\n"
11
- "PO-Revision-Date: 2009-06-30 16:44+0200\n"
12
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
9
+ "POT-Creation-Date: 2010-11-29 12:48+0100\n"
10
+ "PO-Revision-Date: 2010-11-29 12:53+0100\n"
11
+ "Last-Translator: Ivan Pirlik <ivan.pirlik@soluzionipa.it>\n"
13
12
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
13
  "MIME-Version: 1.0\n"
15
14
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -21,6 +20,7 @@ msgid "From"
21
20
  msgstr "Mittente"
22
21
 
23
22
  #: models/email.rb:8
23
+ #: models/sms.rb:7
24
24
  msgid "To"
25
25
  msgstr "Destinatario"
26
26
 
@@ -53,25 +53,65 @@ msgid "Attempts"
53
53
  msgstr "Tentativi"
54
54
 
55
55
  #: models/message.rb:10
56
+ msgid "Backend"
57
+ msgstr "Backend"
58
+
59
+ #: models/message.rb:11
60
+ msgid "Backend id"
61
+ msgstr "Id del backend"
62
+
63
+ #: models/message.rb:12
56
64
  msgid "Last status"
57
65
  msgstr "Ultimo stato"
58
66
 
59
- #: models/message.rb:11
67
+ #: models/message.rb:13
60
68
  msgid "Sent at"
61
69
  msgstr "Inviato il"
62
70
 
71
+ #: models/message.rb:15
72
+ msgid "Retry"
73
+ msgstr "Riprova"
74
+
75
+ #: models/message.rb:16
76
+ msgid "Queued"
77
+ msgstr "In coda"
78
+
79
+ #: models/message.rb:17
80
+ msgid "Failed"
81
+ msgstr "Fallito"
82
+
83
+ #: models/message.rb:18
84
+ msgid "Handed to backend"
85
+ msgstr "Passato al backend"
86
+
87
+ #: models/message.rb:19
88
+ msgid "Sent"
89
+ msgstr "Inviato"
90
+
91
+ #: models/message.rb:20
92
+ msgid "Delivered"
93
+ msgstr "Consegnato"
94
+
95
+ #: models/sms.rb:8
96
+ msgid "Text"
97
+ msgstr "Testo"
98
+
63
99
  #: views/index.shtml:2
64
100
  msgid "Queues"
65
101
  msgstr "Code"
66
102
 
67
- #: views/index.shtml:7 views/queue.shtml:2
103
+ #: views/index.shtml:7
104
+ #: views/queue.shtml:2
68
105
  msgid "Sent messages"
69
106
  msgstr "Messaggi inviati"
70
107
 
71
- #: views/index.shtml:8 views/queue.shtml:4
108
+ #: views/index.shtml:8
109
+ #: views/queue.shtml:4
72
110
  msgid "Queued messages"
73
111
  msgstr "Messaggi in coda"
74
112
 
75
- #: views/index.shtml:9 views/queue.shtml:6
113
+ #: views/index.shtml:9
114
+ #: views/queue.shtml:6
76
115
  msgid "Failed messages"
77
116
  msgstr "Messaggi falliti"
117
+
@@ -7,7 +7,7 @@
7
7
  msgid ""
8
8
  msgstr ""
9
9
  "Project-Id-Version: Spider::Messenger 0.1\n"
10
- "POT-Creation-Date: 2010-03-24 16:27+0100\n"
10
+ "POT-Creation-Date: 2010-11-29 12:48+0100\n"
11
11
  "PO-Revision-Date: 2009-06-30 16:44+0200\n"
12
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -20,7 +20,7 @@ msgstr ""
20
20
  msgid "From"
21
21
  msgstr ""
22
22
 
23
- #: models/email.rb:8
23
+ #: models/email.rb:8 models/sms.rb:7
24
24
  msgid "To"
25
25
  msgstr ""
26
26
 
@@ -53,13 +53,49 @@ msgid "Attempts"
53
53
  msgstr ""
54
54
 
55
55
  #: models/message.rb:10
56
- msgid "Last status"
56
+ msgid "Backend"
57
57
  msgstr ""
58
58
 
59
59
  #: models/message.rb:11
60
+ msgid "Backend id"
61
+ msgstr ""
62
+
63
+ #: models/message.rb:12
64
+ msgid "Last status"
65
+ msgstr ""
66
+
67
+ #: models/message.rb:13
60
68
  msgid "Sent at"
61
69
  msgstr ""
62
70
 
71
+ #: models/message.rb:15
72
+ msgid "Retry"
73
+ msgstr ""
74
+
75
+ #: models/message.rb:16
76
+ msgid "Queued"
77
+ msgstr ""
78
+
79
+ #: models/message.rb:17
80
+ msgid "Failed"
81
+ msgstr ""
82
+
83
+ #: models/message.rb:18
84
+ msgid "Handed to backend"
85
+ msgstr ""
86
+
87
+ #: models/message.rb:19
88
+ msgid "Sent"
89
+ msgstr ""
90
+
91
+ #: models/message.rb:20
92
+ msgid "Delivered"
93
+ msgstr ""
94
+
95
+ #: models/sms.rb:8
96
+ msgid "Text"
97
+ msgstr ""
98
+
63
99
  #: views/index.shtml:2
64
100
  msgid "Queues"
65
101
  msgstr ""
Binary file
data/lib/spiderfw/app.rb CHANGED
@@ -19,21 +19,22 @@ module Spider
19
19
 
20
20
  def init
21
21
  unless @path
22
- file = caller[1].split(':')[0]
23
- dir = File.expand_path(File.dirname(file))
24
- @path = dir
22
+ file = caller[1].split(':')[0]
23
+ dir = File.dirname(file)
24
+ @path = dir
25
25
  end
26
- @short_name ||= Inflector.underscore(self.name).gsub('/', '_')
27
- @dotted_name = Inflector.underscore(self.name).gsub('/', '.')
28
- @pub_path ||= @path+'/public'
29
- @test_path ||= @path+'/test'
30
- @setup_path ||= @path+'/setup'
31
- @models_path ||= @path+'/models'
32
- @widgets_path ||= @path+'/widgets'
33
- @views_path ||= @path+'/views'
34
- @tags_path ||= @path+'/tags'
26
+ @path = File.expand_path(@path)
27
+ @short_name ||= Inflector.underscore(self.name).gsub(File::SEPARATOR, '_')
28
+ @dotted_name = Inflector.underscore(self.name).gsub(File::SEPARATOR, '.')
29
+ @pub_path ||= File.join(@path, 'public')
30
+ @test_path ||= File.join(@path, 'test')
31
+ @setup_path ||= File.join(@path, 'setup')
32
+ @models_path ||= File.join(@path, 'models')
33
+ @widgets_path ||= File.join(@path, 'widgets')
34
+ @views_path ||= File.join(@path, '/views')
35
+ @tags_path ||= File.join(@path, 'tags')
35
36
  @version = Gem::Version.new(@version.to_s) if @version && !@version.is_a?(Gem::Version)
36
- spec_path = "#{@path}/#{@short_name}.appspec"
37
+ spec_path = File.join(@path, "#{@short_name}.appspec")
37
38
  load_spec(spec_path) if File.exists?(spec_path)
38
39
  @route_url ||= Inflector.underscore(self.name)
39
40
  @label ||= @short_name.split('_').each{ |p| p[0] = p[0].chr.upcase }.join(' ')
@@ -174,7 +175,7 @@ module Spider
174
175
  next if entry[0].chr == '.'
175
176
  next unless File.extname(entry) == '.erb'
176
177
  name = File.basename(entry, '.erb')
177
- klass = Spider::Tag.new_class(@tags_path+'/'+entry)
178
+ klass = Spider::Tag.new_class(File.join(@tags_path, entry))
178
179
  const_set(Spider::Inflector.camelize(name).to_sym, klass)
179
180
  #Spider::Logger.debug("REGISTERED TAG #{name}, #{klass}")
180
181
  register_tag(name, klass)
@@ -192,7 +193,7 @@ module Spider
192
193
  end
193
194
 
194
195
  def installed_version_path
195
- "#{Spider.paths[:var]}/apps/#{self.name}/installed_version"
196
+ File.join(Spider.paths[:var], 'apps', self.name, 'installed_version')
196
197
  end
197
198
 
198
199
  def installed_version
@@ -155,5 +155,65 @@ class AppCommand < CmdParse::Command
155
155
  end
156
156
  self.add_command(install)
157
157
 
158
+ update = CmdParse::Command.new( 'update', false )
159
+ update.short_desc = _("Update an app")
160
+ update.options = CmdParse::OptionParserWrapper.new do |opt|
161
+ opt.on("--all", _("Update all apps"), "-a"){ |a| @all = true }
162
+ opt.on("--no-git", _("Don't use git for updating apps"), "-g"){ |r| @no_git = true }
163
+ opt.on("--no-dependencies", _("Don't install other apps this one depends on"), "-d"){ |d|
164
+ @no_deps = true
165
+ }
166
+ opt.on("--no-gems", _("Don't install ruby gems this app depends on"), "-g"){ |g| @no_gems = true }
167
+ opt.on("--no-optional", _("Don't install optional app dependencies"), "-D"){ |o| @no_optional = true }
168
+ opt.on("--no-optional-gems", _("Don't install optional gem dependencies"), "-G"){ |g|
169
+ @no_optional_gems = true
170
+ }
171
+ end
172
+ update.set_execution_block do |args|
173
+ unless File.exist?('init.rb') && File.directory?('apps')
174
+ puts _("Please execute this command from the home folder")
175
+ exit
176
+ end
177
+ require 'spiderfw/setup/app_server_client'
178
+ use_git = false
179
+ unless @no_git
180
+ begin
181
+ require 'grit'
182
+ use_git = true
183
+ rescue
184
+ puts "Grit not available; install Grit for Git support"
185
+ end
186
+ end
187
+ apps = args
188
+ if @all
189
+ require 'spiderfw/home'
190
+ home = Spider::Home.new(Dir.pwd)
191
+ apps = home.list_apps
192
+ end
193
+ if apps.empty?
194
+ puts _("No app to update")
195
+ exit
196
+ end
197
+ require 'spiderfw/setup/app_manager'
198
+ specs = []
199
+ client = Spider::AppServerClient.new(@server_url)
200
+ if @no_deps
201
+ specs = client.get_specs(apps)
202
+ else
203
+ specs = client.get_deps(apps, :no_optional => @no_optional)
204
+ end
205
+ deps = specs.map{ |s| s.app_id }
206
+ unless (deps - apps).empty?
207
+ puts _("The following apps will be updated as a dependency:")
208
+ puts (deps - apps).inspect
209
+ end
210
+ Spider::AppManager.update(specs, Dir.pwd, {
211
+ :use_git => use_git,
212
+ :no_gems => @no_gems,
213
+ :no_optional_gems => @no_optional_gems
214
+ })
215
+ end
216
+ self.add_command(update)
217
+
158
218
  end
159
219
  end
@@ -301,13 +301,17 @@ module Spider
301
301
  # obj.dispatch_path = @dispatch_path + route.path
302
302
  return obj
303
303
  end
304
+
305
+ def controller_action?(method)
306
+ self.class.controller_action?(method)
307
+ end
304
308
 
305
309
  def set_action(action)
306
310
  @executed_method = nil
307
311
  @executed_method_arguments = nil
308
312
  if !can_dispatch?(:execute, action)
309
313
  method, additional_arguments = get_action_method(action)
310
- if (method && self.class.controller_action?(method))
314
+ if (method && controller_action?(method))
311
315
  @executed_method = method.to_sym
312
316
  @executed_method_arguments = additional_arguments || []
313
317
  end