spiderfw 0.6.23 → 0.6.24
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +10 -1
- data/README.rdoc +1 -1
- data/VERSION +1 -1
- data/apps/config_editor/_init.rb +1 -2
- data/apps/config_editor/controllers/config_editor_controller.rb +1 -7
- data/apps/core/admin/controllers/admin_controller.rb +1 -1
- data/apps/core/admin/public/css/sass/admin.css +35 -31
- data/apps/core/admin/public/sass/admin.scss +6 -1
- data/apps/core/components/widgets/crud/crud.shtml +2 -2
- data/apps/core/components/widgets/table/table.rb +5 -5
- data/apps/core/forms/tags/element_row.erb +15 -10
- data/apps/core/forms/widgets/form/form.rb +35 -22
- data/apps/core/forms/widgets/inputs/checkbox/checkbox.shtml +2 -2
- data/apps/core/forms/widgets/inputs/date_time/date_time.shtml +2 -2
- data/apps/core/forms/widgets/inputs/file_input/file_input.shtml +2 -2
- data/apps/core/forms/widgets/inputs/html_area/html_area.shtml +2 -2
- data/apps/core/forms/widgets/inputs/input/input.shtml +2 -2
- data/apps/core/forms/widgets/inputs/password/password.shtml +2 -2
- data/apps/core/forms/widgets/inputs/search_select/search_select.shtml +1 -1
- data/apps/core/forms/widgets/inputs/select/select.shtml +2 -2
- data/apps/core/forms/widgets/inputs/text/text.shtml +2 -2
- data/apps/core/forms/widgets/inputs/text_area/text_area.shtml +2 -2
- data/apps/core/forms/widgets/inputs/time_span/time_span.shtml +1 -1
- data/blueprints/home/config.ru +8 -0
- data/lib/spiderfw/app.rb +416 -224
- data/lib/spiderfw/cmd/commands/app.rb +243 -239
- data/lib/spiderfw/cmd/commands/cert.rb +421 -417
- data/lib/spiderfw/cmd/commands/config.rb +85 -82
- data/lib/spiderfw/cmd/commands/console.rb +64 -40
- data/lib/spiderfw/cmd/commands/content.rb +29 -25
- data/lib/spiderfw/cmd/commands/create.rb +58 -54
- data/lib/spiderfw/cmd/commands/model.rb +118 -114
- data/lib/spiderfw/cmd/commands/setup.rb +55 -51
- data/lib/spiderfw/cmd/commands/test.rb +63 -59
- data/lib/spiderfw/cmd/commands/webserver.rb +56 -51
- data/lib/spiderfw/config/options/spider.rb +4 -3
- data/lib/spiderfw/controller/controller.rb +2 -0
- data/lib/spiderfw/controller/http_controller.rb +1 -2
- data/lib/spiderfw/controller/mixins/static_content.rb +3 -3
- data/lib/spiderfw/controller/mixins/visual.rb +30 -15
- data/lib/spiderfw/controller/response.rb +84 -0
- data/lib/spiderfw/controller/session/file_session.rb +2 -2
- data/lib/spiderfw/http/adapters/rack.rb +12 -13
- data/lib/spiderfw/http/server.rb +80 -46
- data/lib/spiderfw/i18n/cldr.rb +6 -9
- data/lib/spiderfw/model/base_model.rb +103 -23
- data/lib/spiderfw/model/condition.rb +110 -25
- data/lib/spiderfw/model/mappers/db_mapper.rb +14 -6
- data/lib/spiderfw/model/mappers/mapper.rb +440 -197
- data/lib/spiderfw/model/model.rb +105 -21
- data/lib/spiderfw/model/model_hash.rb +9 -1
- data/lib/spiderfw/model/query.rb +50 -9
- data/lib/spiderfw/model/query_set.rb +211 -44
- data/lib/spiderfw/model/request.rb +28 -21
- data/lib/spiderfw/model/storage/base_storage.rb +125 -10
- data/lib/spiderfw/model/storage/db/db_storage.rb +7 -4
- data/lib/spiderfw/model/storage.rb +8 -1
- data/lib/spiderfw/setup/spider_setup_wizard.rb +9 -7
- data/lib/spiderfw/spider.rb +270 -43
- data/lib/spiderfw/templates/layout.rb +9 -4
- data/lib/spiderfw/templates/resources/sass.rb +3 -2
- data/lib/spiderfw/templates/template.rb +1 -0
- data/lib/spiderfw/utils/annotations.rb +3 -1
- data/lib/spiderfw/utils/logger.rb +1 -1
- data/lib/spiderfw/utils/monkey/symbol.rb +4 -2
- data/lib/spiderfw/utils/shared_store/file_shared_store.rb +2 -2
- data/lib/spiderfw/utils/thread_out.rb +3 -1
- data/public/css/error_page.css +83 -0
- data/public/js/error_page.js +5 -0
- data/spider.gemspec +4 -1
- data/templates/email/error.erb +9 -0
- metadata +28 -12
- data/apps/config_editor/widgets/edit_bool/edit_bool.rb +0 -8
- data/apps/config_editor/widgets/edit_bool/edit_bool.shtml +0 -5
@@ -1,89 +1,92 @@
|
|
1
|
-
|
1
|
+
module Spider::CommandLine
|
2
2
|
|
3
|
+
class ConfigCommand < CmdParse::Command
|
3
4
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
choices = choices
|
54
|
-
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
super( 'config', true, true )
|
8
|
+
@short_desc = _("Manage configuration")
|
9
|
+
|
10
|
+
list = CmdParse::Command.new( 'list', false )
|
11
|
+
list.short_desc = _("List configuration options")
|
12
|
+
list.options = CmdParse::OptionParserWrapper.new do |opt|
|
13
|
+
opt.on("--info", _("Show info"), "-i"){ |i|
|
14
|
+
@info = true
|
15
|
+
}
|
16
|
+
end
|
17
|
+
|
18
|
+
list.set_execution_block do |args|
|
19
|
+
require 'spiderfw/spider'
|
20
|
+
Spider.init_base
|
21
|
+
search = args.first
|
22
|
+
max_len = 0
|
23
|
+
opts = Spider.config.options_list
|
24
|
+
opts.each{ |o| max_len = o.length if o.length > max_len }
|
25
|
+
opts.sort.each{ |o|
|
26
|
+
next if search && o.index(search) != 0
|
27
|
+
str = o.ljust(max_len + 2)
|
28
|
+
if @info
|
29
|
+
option = Spider.config.option(o)
|
30
|
+
str += " #{option[:description]}" if option
|
31
|
+
end
|
32
|
+
puts str
|
33
|
+
}
|
34
|
+
end
|
35
|
+
|
36
|
+
self.add_command(list)
|
37
|
+
|
38
|
+
info = CmdParse::Command.new('info', false)
|
39
|
+
info.short_desc = _("Get information about a configuration option")
|
40
|
+
info.set_execution_block do |args|
|
41
|
+
require 'spiderfw/spider'
|
42
|
+
Spider.init_base
|
43
|
+
option = Spider.config.option(args.first)
|
44
|
+
if option && option[:params]
|
45
|
+
print args[0]
|
46
|
+
print ":\n"+option[:description]+"\n" if option[:description] && !option[:description].empty?
|
47
|
+
puts
|
48
|
+
puts "#{( _('Type') +':').ljust(10)} #{option[:params][:type]}" if option[:params][:type]
|
49
|
+
default_str = nil
|
50
|
+
if default = option[:params][:default]
|
51
|
+
default_str = default.is_a?(Proc) ? _('Dynamic') : default
|
52
|
+
end
|
53
|
+
puts "#{( _('Default') +':').ljust(10)} #{default_str}" if default_str
|
54
|
+
if choices = option[:params][:choices]
|
55
|
+
choices = choices.call if choices.is_a?(Proc)
|
56
|
+
puts "#{( _('Choices') +':').ljust(10)} #{choices.join(', ')}"
|
57
|
+
end
|
58
|
+
else
|
59
|
+
puts _("Configuration option not found")
|
55
60
|
end
|
56
|
-
else
|
57
|
-
puts _("Configuration option not found")
|
58
61
|
end
|
62
|
+
|
63
|
+
self.add_command(info)
|
64
|
+
|
65
|
+
get = CmdParse::Command.new('get', false)
|
66
|
+
get.short_desc = _("Get the current value of a configuration option")
|
67
|
+
get.set_execution_block do |args|
|
68
|
+
require 'spiderfw/spider'
|
69
|
+
Spider.init_base
|
70
|
+
puts Spider.conf.get(args.first)
|
71
|
+
end
|
72
|
+
|
73
|
+
self.add_command(get)
|
74
|
+
|
75
|
+
set = CmdParse::Command.new('set', false)
|
76
|
+
set.short_desc = _("Set the value of a configuration option")
|
77
|
+
set.set_execution_block do |args|
|
78
|
+
require 'spiderfw/spider'
|
79
|
+
require 'lib/spiderfw/config/configuration_editor'
|
80
|
+
Spider.init_base
|
81
|
+
editor = Spider.config.get_editor
|
82
|
+
editor.set(*args)
|
83
|
+
editor.save
|
84
|
+
end
|
85
|
+
|
86
|
+
self.add_command(set)
|
87
|
+
|
59
88
|
end
|
60
89
|
|
61
|
-
self.add_command(info)
|
62
|
-
|
63
|
-
get = CmdParse::Command.new('get', false)
|
64
|
-
get.short_desc = _("Get the current value of a configuration option")
|
65
|
-
get.set_execution_block do |args|
|
66
|
-
require 'spiderfw/spider'
|
67
|
-
Spider.init_base
|
68
|
-
puts Spider.conf.get(args.first)
|
69
|
-
end
|
70
|
-
|
71
|
-
self.add_command(get)
|
72
|
-
|
73
|
-
set = CmdParse::Command.new('set', false)
|
74
|
-
set.short_desc = _("Set the value of a configuration option")
|
75
|
-
set.set_execution_block do |args|
|
76
|
-
require 'spiderfw/spider'
|
77
|
-
require 'lib/spiderfw/config/configuration_editor'
|
78
|
-
Spider.init_base
|
79
|
-
editor = Spider.config.get_editor
|
80
|
-
editor.set(*args)
|
81
|
-
editor.save
|
82
|
-
end
|
83
|
-
|
84
|
-
self.add_command(set)
|
85
|
-
|
86
90
|
end
|
87
|
-
|
88
|
-
end
|
89
|
-
|
91
|
+
|
92
|
+
end
|
@@ -1,47 +1,71 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
set_execution_block do
|
19
|
-
unless @opts[:irb]
|
20
|
-
begin
|
21
|
-
require 'rubygems'
|
22
|
-
require 'ripl'
|
23
|
-
rescue LoadError
|
24
|
-
@opts[:irb] = 'irb'
|
25
|
-
end
|
1
|
+
module Spider::CommandLine
|
2
|
+
|
3
|
+
class ConsoleCommand < CmdParse::Command
|
4
|
+
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
super( 'console', false )
|
8
|
+
@short_desc = _("Open a console")
|
9
|
+
# @description = _("")
|
10
|
+
@opts = {}
|
11
|
+
|
12
|
+
self.options = CmdParse::OptionParserWrapper.new do |opt|
|
13
|
+
opt.on("--irb [IRB]", _("Use irb (you can specify the executable to use)"), "-i"){ |irb|
|
14
|
+
@opts[:irb] = irb ? irb : 'irb'
|
15
|
+
}
|
16
|
+
opt.on('--ripl' ,_("User ripl"), "-r"){ |ripl| @opts[:ripl] = true }
|
17
|
+
opt.on('--pry', _("Use Pry if available (the default)"))
|
26
18
|
end
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
19
|
+
|
20
|
+
set_execution_block do
|
21
|
+
if @opts[:ripl]
|
22
|
+
begin
|
23
|
+
require 'rubygems'
|
24
|
+
require 'ripl'
|
25
|
+
rescue LoadError
|
26
|
+
@opts[:irb] = 'irb'
|
27
|
+
end
|
28
|
+
end
|
29
|
+
unless @opts[:irb]
|
30
|
+
begin
|
31
|
+
require 'rubygems'
|
32
|
+
require 'pry'
|
33
|
+
rescue LoadError
|
34
|
+
@opts[:irb] = 'irb'
|
35
|
+
end
|
36
|
+
end
|
37
|
+
if @opts[:irb]
|
38
|
+
ENV['SPIDER_RUNMODE'] = $SPIDER_RUNMODE if ($SPIDER_RUNMODE)
|
39
|
+
ENV['SPIDER_CONFIG_SETS'] = $SPIDER_CONFIG_SETS.join(',') if ($SPIDER_CONFIG_SETS)
|
40
|
+
exec("#{@opts[:irb]} -I #{$SPIDER_LIB} -r spiderfw")
|
41
|
+
elsif @opts[:ripl]
|
42
|
+
require 'ripl/irb'
|
43
|
+
require 'ripl/multi_line'
|
44
|
+
|
45
|
+
Ripl.config[:irb_verbose] = false
|
46
|
+
Ripl::Runner.load_rc(Ripl.config[:riplrc])
|
47
|
+
|
48
|
+
require 'spiderfw/init'
|
49
|
+
Object.send(:remove_const, :IRB) if Object.const_defined?(:IRB)
|
50
|
+
Ripl.shell.loop
|
51
|
+
else
|
52
|
+
try_require 'pry-nav'
|
53
|
+
try_require 'pry-stack_explorer'
|
54
|
+
require 'spiderfw/init'
|
55
|
+
Pry.start
|
56
|
+
end
|
41
57
|
end
|
58
|
+
|
59
|
+
|
42
60
|
end
|
43
61
|
|
62
|
+
def try_require(lib)
|
63
|
+
begin
|
64
|
+
require lib
|
65
|
+
rescue LoadError => e
|
66
|
+
end
|
67
|
+
end
|
44
68
|
|
45
69
|
end
|
46
70
|
|
47
|
-
end
|
71
|
+
end
|
@@ -1,33 +1,37 @@
|
|
1
1
|
require 'fileutils'
|
2
2
|
|
3
|
-
|
3
|
+
module Spider::CommandLine
|
4
4
|
|
5
|
+
class ContentCommand < CmdParse::Command
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
7
|
+
|
8
|
+
def initialize
|
9
|
+
super( 'content', true, true )
|
10
|
+
@short_desc = _("Manage static content")
|
11
|
+
|
12
|
+
publish = CmdParse::Command.new( 'publish', false )
|
13
|
+
publish.short_desc = _("Publish apps static content to home public folder")
|
14
|
+
publish.options = CmdParse::OptionParserWrapper.new do |opt|
|
15
|
+
end
|
16
|
+
|
17
|
+
publish.set_execution_block do |args|
|
18
|
+
require 'spiderfw/init'
|
19
|
+
Spider::StaticContent.publish
|
20
|
+
end
|
21
|
+
|
22
|
+
self.add_command(publish)
|
23
|
+
|
24
|
+
compress = CmdParse::Command.new('compress', false)
|
25
|
+
compress.short_desc = _("Compress Javascript files")
|
26
|
+
compress.set_execution_block do |args|
|
27
|
+
require 'spiderfw/init'
|
28
|
+
Spider::ContentUtils.compress(*args)
|
29
|
+
end
|
30
|
+
|
31
|
+
self.add_command(compress)
|
32
|
+
|
27
33
|
end
|
28
34
|
|
29
|
-
self.add_command(compress)
|
30
|
-
|
31
35
|
end
|
32
|
-
|
36
|
+
|
33
37
|
end
|
@@ -1,69 +1,73 @@
|
|
1
1
|
require 'spiderfw/spider'
|
2
2
|
require 'spiderfw/create'
|
3
3
|
|
4
|
-
|
4
|
+
module Spider::CommandLine
|
5
5
|
|
6
|
+
class CreateCommand < CmdParse::Command
|
6
7
|
|
7
|
-
def initialize
|
8
|
-
super( 'create', true, true )
|
9
|
-
@short_desc = _("Create a working dir for development or installation")
|
10
|
-
# @description = _("")
|
11
8
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
Spider.output "Created app #{name} at #{@path}/#{name}" if ($verbose)
|
9
|
+
def initialize
|
10
|
+
super( 'create', true, true )
|
11
|
+
@short_desc = _("Create a working dir for development or installation")
|
12
|
+
# @description = _("")
|
13
|
+
|
14
|
+
app = CmdParse::Command.new( 'app', false )
|
15
|
+
app.short_desc = _("Create a new application")
|
16
|
+
app.options = CmdParse::OptionParserWrapper.new do |opt|
|
17
|
+
opt.on("--path",
|
18
|
+
_("The path where to create the app (defaults to the app folder under the current path)"),
|
19
|
+
"-p"){ |path|
|
20
|
+
@path = path
|
21
|
+
}
|
22
|
+
opt.on("--module", _("The module name; by default, the app name will be camelized"), "-m"){ |module_name|
|
23
|
+
@module_name = module_name
|
24
|
+
}
|
29
25
|
end
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
26
|
+
app.set_execution_block do |names|
|
27
|
+
@path ||= Dir.pwd+'/apps'
|
28
|
+
names.each do |name|
|
29
|
+
Spider::Create.app(name, @path, @module_name)
|
30
|
+
Spider.output "Created app #{name} at #{@path}/#{name}" if ($verbose)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
self.add_command(app, false)
|
34
|
+
|
35
|
+
install = CmdParse::Command.new('home', false)
|
36
|
+
install.short_desc = _("Create an installation")
|
37
|
+
install.options = CmdParse::OptionParserWrapper.new do |opt|
|
38
|
+
opt.on("--path [PATH]",
|
39
|
+
_("The path where to create the installation (defaults to the path)"),
|
40
|
+
"-p"){ |path|
|
41
|
+
@path = path
|
42
|
+
}
|
43
|
+
opt.on("--no-wizard", _("Don't launch wizard"), "-W"){ |w| @no_wizard = true }
|
44
|
+
opt.on("--non-interactive", _("Non interactive"), "-i"){ |i|
|
45
|
+
@no_wizard = true
|
46
|
+
}
|
47
|
+
end
|
48
|
+
install.set_execution_block do |installs|
|
49
|
+
@path ||= Dir.pwd
|
50
|
+
installs.each do |inst|
|
51
|
+
Spider::Create.home(inst, @path)
|
52
|
+
unless @no_wizard
|
53
|
+
Dir.chdir(inst) do
|
54
|
+
$SPIDER_RUN_PATH = Dir.pwd
|
55
|
+
$:.push($SPIDER_RUN_PATH)
|
56
|
+
require 'spiderfw/init'
|
57
|
+
require 'lib/spiderfw/setup/spider_setup_wizard'
|
58
|
+
wizard = Spider::SpiderSetupWizard.new
|
59
|
+
wizard.first_run = true
|
60
|
+
wizard.implementation(Spider::ConsoleWizard)
|
61
|
+
wizard.run
|
62
|
+
end
|
60
63
|
end
|
61
64
|
end
|
62
65
|
end
|
63
|
-
|
64
|
-
self.add_command(install, false)
|
66
|
+
self.add_command(install, false)
|
65
67
|
|
66
68
|
|
69
|
+
end
|
70
|
+
|
67
71
|
end
|
68
72
|
|
69
73
|
end
|