spiderfw 0.5.15 → 0.5.16

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