spiderfw 0.6.14 → 0.6.15
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +4 -0
- data/VERSION +1 -1
- data/apps/config_editor/_init.rb +2 -1
- data/apps/config_editor/controllers/config_editor_controller.rb +7 -1
- data/apps/config_editor/widgets/edit_bool/edit_bool.rb +8 -0
- data/apps/config_editor/widgets/edit_bool/edit_bool.shtml +5 -0
- data/apps/core/components/public/js/spider.js +23 -3
- data/apps/master/controllers/master_controller.rb +6 -0
- data/apps/master/models/installation.rb +2 -0
- data/apps/master/views/installation.shtml +9 -4
- data/blueprints/app/views/__APP__.layout.shtml +5 -2
- data/lib/spiderfw/app.rb +1 -1
- data/lib/spiderfw/cmd/commands/config.rb +22 -4
- data/lib/spiderfw/cmd/commands/test.rb +16 -0
- data/lib/spiderfw/config/configuration.rb +1 -1
- data/lib/spiderfw/model/base_model.rb +9 -1
- data/lib/spiderfw/model/mappers/db_mapper.rb +4 -1
- data/lib/spiderfw/model/mappers/mapper.rb +1 -0
- data/lib/spiderfw/model/storage/base_storage.rb +1 -1
- data/lib/spiderfw/setup/app_manager.rb +16 -4
- data/lib/spiderfw/spider.rb +7 -5
- data/lib/spiderfw/templates/blocks/html.rb +1 -1
- data/lib/spiderfw/templates/blocks/layout_meta.rb +20 -0
- data/lib/spiderfw/templates/layout.rb +8 -0
- data/lib/spiderfw/templates/template.rb +1 -1
- data/lib/spiderfw/templates/template_blocks.rb +4 -1
- data/lib/spiderfw/test/extensions/db_storage.rb +16 -0
- data/lib/spiderfw/test.rb +24 -1
- metadata +40 -5
data/CHANGELOG
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.6.
|
1
|
+
0.6.15
|
data/apps/config_editor/_init.rb
CHANGED
@@ -11,4 +11,5 @@ Spider::Template.register_namespace('config_editor', Spider::ConfigEditor)
|
|
11
11
|
|
12
12
|
|
13
13
|
require 'apps/config_editor/controllers/config_editor_controller'
|
14
|
-
require 'apps/config_editor/widgets/edit/edit'
|
14
|
+
require 'apps/config_editor/widgets/edit/edit'
|
15
|
+
require 'apps/config_editor/widgets/edit_bool/edit_bool'
|
@@ -75,7 +75,13 @@ module Spider; module ConfigEditor
|
|
75
75
|
end
|
76
76
|
|
77
77
|
def create_edit_widget(key, option)
|
78
|
-
|
78
|
+
wclass = case option[:params][:type].name
|
79
|
+
when 'Spider::Bool', 'Spider::DataTypes::Bool'
|
80
|
+
EditBool
|
81
|
+
else
|
82
|
+
Edit
|
83
|
+
end
|
84
|
+
w = wclass.new(@request, @response, @scene)
|
79
85
|
w.attributes[:name] = key
|
80
86
|
w.attributes[:option] = option
|
81
87
|
w.widget_init
|
@@ -492,9 +492,16 @@ Spider.defineWidget = function(name, parent, w){
|
|
492
492
|
Spider.Controller = Class.extend({
|
493
493
|
|
494
494
|
init: function(){
|
495
|
-
|
496
|
-
|
497
|
-
|
495
|
+
var loc = $('link[rel=index]').attr('href');
|
496
|
+
if (loc){
|
497
|
+
if (loc.substr(loc.length - 5) == 'index') loc = loc.substr(0, loc.length - 5);
|
498
|
+
url = loc;
|
499
|
+
}
|
500
|
+
else{
|
501
|
+
var loc = ''+document.location;
|
502
|
+
var slashPos = loc.lastIndexOf('/');
|
503
|
+
url = loc.substr(0, slashPos);
|
504
|
+
}
|
498
505
|
this.setUrl(url);
|
499
506
|
this.currentAction = loc.substr(slashPos+1);
|
500
507
|
|
@@ -508,6 +515,11 @@ Spider.Controller = Class.extend({
|
|
508
515
|
|
509
516
|
remote: function(method, params, callback, options){
|
510
517
|
var args = Array.prototype.slice.call(arguments);
|
518
|
+
if ($.isFunction(params)){
|
519
|
+
options = callback;
|
520
|
+
callback = params;
|
521
|
+
params = null;
|
522
|
+
}
|
511
523
|
if (!callback) callback = function(){};
|
512
524
|
var url = this.url+'/'+method+'.json';
|
513
525
|
var defaults = {
|
@@ -764,3 +776,11 @@ if(!window.console) {
|
|
764
776
|
this.dir = function(str) {};
|
765
777
|
};
|
766
778
|
}
|
779
|
+
|
780
|
+
function basename(path){
|
781
|
+
return path.replace(/\\/g, '/').replace(/.*\//, '');
|
782
|
+
}
|
783
|
+
|
784
|
+
function dirname(path){
|
785
|
+
return path.replace(/\\/g, '/').replace(/\/[^\/]*$/, '');
|
786
|
+
}
|
@@ -1,6 +1,7 @@
|
|
1
1
|
require 'apps/master/controllers/server_controller'
|
2
2
|
require 'apps/master/controllers/login_controller'
|
3
3
|
require 'json'
|
4
|
+
require 'socket'
|
4
5
|
|
5
6
|
|
6
7
|
module Spider; module Master
|
@@ -342,6 +343,11 @@ module Spider; module Master
|
|
342
343
|
install.apps = @request.params['apps']
|
343
344
|
install.interval = @request.params['interval']
|
344
345
|
install.configuration = decompress_string(@request.params['configuration'])
|
346
|
+
curr_ip = install.ip_address
|
347
|
+
install.ip_address = @request.env['REMOTE_ADDR']
|
348
|
+
if install.ip_address != curr_ip
|
349
|
+
install.hostname = Socket::getaddrinfo(install.ip_address,nil)[0][2]
|
350
|
+
end
|
345
351
|
install.save
|
346
352
|
log_lines = JSON.parse(@request.params['log'])
|
347
353
|
log_lines.each do |log|
|
@@ -5,6 +5,8 @@ module Spider; module Master
|
|
5
5
|
element :name, String, :label => _('Name')
|
6
6
|
choice :customer, Customer, :add_multiple_reverse => :installations
|
7
7
|
element :apps, Text, :hidden => true
|
8
|
+
element :ip_address, String
|
9
|
+
element :hostname, String
|
8
10
|
element :configuration, Text, :hidden => true
|
9
11
|
element :last_check, DateTime, :hidden => true
|
10
12
|
element :interval, Fixnum, :hidden => true
|
@@ -21,10 +21,15 @@
|
|
21
21
|
<a href="?edit" class="manage edit">_(Edit)</a>
|
22
22
|
</div>
|
23
23
|
<div class="details">
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
<div id="last-check-in">
|
25
|
+
_(Last check-in): { @installation.last_check.lformat(:short) }
|
26
|
+
<tpl:pass sp:if="@installation.interval">
|
27
|
+
_(Next check-in): { (@installation.last_check + @installation.interval).lformat(:short) }
|
28
|
+
</tpl:pass>
|
29
|
+
</div>
|
30
|
+
<div id="host-info">
|
31
|
+
IP: { @installation.ip_address } ({ @installation.hostname })
|
32
|
+
</div>
|
28
33
|
</div>
|
29
34
|
<core:tabs id="tabs">
|
30
35
|
<tab label="_(Apps)" id="apps">
|
@@ -1,11 +1,14 @@
|
|
1
|
+
<!DOCTYPE html>
|
1
2
|
<html>
|
2
3
|
<head>
|
3
|
-
<
|
4
|
-
<
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
5
|
+
<tpl:output-meta />
|
6
|
+
<tpl:output-assets type="css" />
|
5
7
|
</head>
|
6
8
|
<body>
|
7
9
|
<div id="content">
|
8
10
|
<sp:yield />
|
9
11
|
</div>
|
12
|
+
<tpl:output-assets type="js" />
|
10
13
|
</body>
|
11
14
|
</html>
|
data/lib/spiderfw/app.rb
CHANGED
@@ -37,7 +37,7 @@ module Spider
|
|
37
37
|
@version = Gem::Version.new(@version.to_s) if @version && !@version.is_a?(Gem::Version)
|
38
38
|
spec_path = File.join(@path, "#{@short_name}.appspec")
|
39
39
|
load_spec(spec_path) if File.exists?(spec_path)
|
40
|
-
@route_url ||= Inflector.underscore(self.
|
40
|
+
@route_url ||= Inflector.underscore(self.short_name)
|
41
41
|
@label ||= @short_name.split('_').each{ |p| p[0] = p[0].chr.upcase }.join(' ')
|
42
42
|
@gettext_parsers ||= []
|
43
43
|
@gettext_dirs ||= ['lib','bin','controllers','models','views','widgets','public']
|
@@ -8,11 +8,27 @@ class ConfigCommand < CmdParse::Command
|
|
8
8
|
list = CmdParse::Command.new( 'list', false )
|
9
9
|
list.short_desc = _("List configuration options")
|
10
10
|
list.options = CmdParse::OptionParserWrapper.new do |opt|
|
11
|
+
opt.on("--info", _("Show info"), "-i"){ |i|
|
12
|
+
@info = true
|
13
|
+
}
|
11
14
|
end
|
12
15
|
|
13
16
|
list.set_execution_block do |args|
|
14
|
-
require 'spiderfw'
|
15
|
-
Spider.
|
17
|
+
require 'spiderfw/spider'
|
18
|
+
Spider.init_base
|
19
|
+
search = args.first
|
20
|
+
max_len = 0
|
21
|
+
opts = Spider.config.options_list
|
22
|
+
opts.each{ |o| max_len = o.length if o.length > max_len }
|
23
|
+
opts.sort.each{ |o|
|
24
|
+
next if search && o.index(search) != 0
|
25
|
+
str = o.ljust(max_len + 2)
|
26
|
+
if @info
|
27
|
+
option = Spider.config.option(o)
|
28
|
+
str += " #{option[:description]}" if option
|
29
|
+
end
|
30
|
+
puts str
|
31
|
+
}
|
16
32
|
end
|
17
33
|
|
18
34
|
self.add_command(list)
|
@@ -20,7 +36,8 @@ class ConfigCommand < CmdParse::Command
|
|
20
36
|
info = CmdParse::Command.new('info', false)
|
21
37
|
info.short_desc = _("Get information about a configuration option")
|
22
38
|
info.set_execution_block do |args|
|
23
|
-
require 'spiderfw'
|
39
|
+
require 'spiderfw/spider'
|
40
|
+
Spider.init_base
|
24
41
|
option = Spider.config.option(args.first)
|
25
42
|
if option && option[:params]
|
26
43
|
print args[0]
|
@@ -43,7 +60,8 @@ class ConfigCommand < CmdParse::Command
|
|
43
60
|
get = CmdParse::Command.new('get', false)
|
44
61
|
get.short_desc = _("Get the current value of a configuration option")
|
45
62
|
get.set_execution_block do |args|
|
46
|
-
require 'spiderfw'
|
63
|
+
require 'spiderfw/spider'
|
64
|
+
Spider.init_base
|
47
65
|
puts Spider.conf.get(args.first)
|
48
66
|
end
|
49
67
|
|
@@ -50,6 +50,22 @@ class TestCommand < CmdParse::Command
|
|
50
50
|
end
|
51
51
|
self.add_command(self_cmd)
|
52
52
|
|
53
|
+
issue = CmdParse::Command.new('issue', false)
|
54
|
+
issue.short_desc = _("Test for an issue")
|
55
|
+
issue.set_execution_block do |args|
|
56
|
+
id = args.first
|
57
|
+
require 'spiderfw/spider'
|
58
|
+
require 'spiderfw/test'
|
59
|
+
|
60
|
+
test_path = File.join($SPIDER_PATH, 'test', 'issues')
|
61
|
+
issue_no = id.rjust(5, "0")
|
62
|
+
Dir.glob(File.join(test_path, "#{issue_no}-*")).each do |f|
|
63
|
+
require f
|
64
|
+
end
|
65
|
+
|
66
|
+
end
|
67
|
+
self.add_command(issue)
|
68
|
+
|
53
69
|
|
54
70
|
end
|
55
71
|
|
@@ -120,7 +120,7 @@ module Spider; module Model
|
|
120
120
|
def self.app
|
121
121
|
return @app if @app
|
122
122
|
app = self
|
123
|
-
while !app.include?(Spider::App)
|
123
|
+
while app && !app.include?(Spider::App)
|
124
124
|
app = app.parent_module
|
125
125
|
end
|
126
126
|
@app = app
|
@@ -1061,6 +1061,10 @@ module Spider; module Model
|
|
1061
1061
|
st = self.use_storage
|
1062
1062
|
return st ? get_storage(st) : get_storage
|
1063
1063
|
end
|
1064
|
+
|
1065
|
+
def self.storage=(val)
|
1066
|
+
@storage = val
|
1067
|
+
end
|
1064
1068
|
|
1065
1069
|
# Returns an instancethe storage corresponding to the storage_string if it is given,
|
1066
1070
|
# or of the default storage otherwise.
|
@@ -2154,6 +2158,10 @@ module Spider; module Model
|
|
2154
2158
|
yield
|
2155
2159
|
end
|
2156
2160
|
end
|
2161
|
+
|
2162
|
+
def saving?
|
2163
|
+
!@_saving.nil?
|
2164
|
+
end
|
2157
2165
|
|
2158
2166
|
# Loads the object from the storage
|
2159
2167
|
# Acceptable arguments are:
|
@@ -994,7 +994,10 @@ module Spider; module Model; module Mappers
|
|
994
994
|
had_schema = schema ? true : false
|
995
995
|
schema ||= DbSchema.new
|
996
996
|
n = @model.name.sub('::Models', '')
|
997
|
-
|
997
|
+
app = @model.app
|
998
|
+
app_name = app.name if app
|
999
|
+
short_prefix = app.short_prefix if app
|
1000
|
+
n.sub!(app_name, short_prefix) if short_prefix
|
998
1001
|
schema.table ||= @model.attributes[:db_table] || @storage.table_name(n)
|
999
1002
|
integrated_pks = []
|
1000
1003
|
@model.each_element do |element|
|
@@ -311,6 +311,7 @@ module Spider; module Model
|
|
311
311
|
def save_element_associations(obj, element, mode)
|
312
312
|
our_element = element.attributes[:reverse]
|
313
313
|
val = obj.get(element)
|
314
|
+
return if !element.multiple? && val.saving?
|
314
315
|
if element.attributes[:junction]
|
315
316
|
their_element = element.attributes[:junction_their_element]
|
316
317
|
if val.model != element.model # dereferenced junction
|
@@ -140,8 +140,9 @@ module Spider
|
|
140
140
|
return
|
141
141
|
end
|
142
142
|
repo = Git.open(home_path)
|
143
|
-
|
144
|
-
|
143
|
+
repo_url = spec.git_repo_rw || spec.git_repo
|
144
|
+
Spider.output _("Fetching %s from %s") % [spec.app_id, repo_url]
|
145
|
+
|
145
146
|
if options[:ssh_user] && repo_url =~ /ssh:\/\/([^@]+@)?(.+)/
|
146
147
|
repo_url = "ssh://#{options[:ssh_user]}@#{$2}"
|
147
148
|
end
|
@@ -304,8 +305,19 @@ module Spider
|
|
304
305
|
app_path = File.join(home_path, "apps/#{spec.id}")
|
305
306
|
tmp_path = File.join(home_path, 'tmp')
|
306
307
|
FileUtils.mkdir_p(tmp_path)
|
307
|
-
tmp_app_path = File.join(tmp_path, "#{spec.id}-update-#{DateTime.now}")
|
308
|
-
|
308
|
+
tmp_app_path = File.join(tmp_path, "#{spec.id}-update-#{DateTime.now.strftime('%Y%m%d-%H%M')}")
|
309
|
+
begin
|
310
|
+
FileUtils.mv(app_path, tmp_app_path)
|
311
|
+
rescue Errno::EACCESS
|
312
|
+
if RUBY_PLATFORM =~ /win32|mingw/
|
313
|
+
Spider.output(
|
314
|
+
_("Can't update #{spec.id} app: ensure you have no files or folders of this app open"),
|
315
|
+
:ERROR
|
316
|
+
)
|
317
|
+
else
|
318
|
+
Spider.output exc, :ERROR
|
319
|
+
end
|
320
|
+
end
|
309
321
|
begin
|
310
322
|
pack_install(spec, home_path)
|
311
323
|
FileUtils.rm_rf(tmp_app_path)
|
data/lib/spiderfw/spider.rb
CHANGED
@@ -559,7 +559,7 @@ module Spider
|
|
559
559
|
extensions.each do |ext|
|
560
560
|
full = path
|
561
561
|
full += '.'+ext if ext
|
562
|
-
return full if
|
562
|
+
return full if File.file?(full)
|
563
563
|
end
|
564
564
|
return nil
|
565
565
|
end
|
@@ -605,7 +605,7 @@ module Spider
|
|
605
605
|
else
|
606
606
|
app = owner_class.app if (owner_class && owner_class.app)
|
607
607
|
end
|
608
|
-
return Resource.new(cur_path+'/'+path, owner_class) if cur_path && File.
|
608
|
+
return Resource.new(cur_path+'/'+path, owner_class) if cur_path && File.file?(cur_path+'/'+path) # !app
|
609
609
|
raise "Can't find owner app for resource #{path}" unless app
|
610
610
|
search_locations = resource_search_locations(resource_type, app)
|
611
611
|
search_paths.each do |p|
|
@@ -777,14 +777,16 @@ module Spider
|
|
777
777
|
end
|
778
778
|
|
779
779
|
def locale
|
780
|
-
|
781
|
-
|
780
|
+
unless Thread.current[:current_languages] # Locale sets this
|
781
|
+
c_l = Spider.conf.get('locale')
|
782
|
+
return c_l if c_l
|
783
|
+
end
|
782
784
|
begin
|
783
785
|
@current_locale = Locale.current[0]
|
784
786
|
rescue
|
785
787
|
# There are problems with subsequent requests on Windows,
|
786
788
|
# so use cached locale if Locale.current fails
|
787
|
-
@current_locale || 'en'
|
789
|
+
@current_locale || Locale::Tag.parse('en')
|
788
790
|
end
|
789
791
|
end
|
790
792
|
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spiderfw/templates/template_blocks'
|
2
|
+
|
3
|
+
module Spider; module TemplateBlocks
|
4
|
+
|
5
|
+
class LayoutMeta < Block
|
6
|
+
|
7
|
+
def compile(options={})
|
8
|
+
init = ""
|
9
|
+
c = ""
|
10
|
+
type = @el.get_attribute('type')
|
11
|
+
c += "output_meta"
|
12
|
+
c+= "(:#{type})" if type
|
13
|
+
c += "\n"
|
14
|
+
return CompiledBlock.new(init, c)
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
end; end
|
@@ -345,6 +345,14 @@ module Spider
|
|
345
345
|
|
346
346
|
module LayoutScene
|
347
347
|
|
348
|
+
def output_meta(type=nil)
|
349
|
+
type ||= :default
|
350
|
+
case type
|
351
|
+
when :default
|
352
|
+
$out << "<link rel=\"index\" href=\"#{self.controller[:request_url]}\">"
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
348
356
|
def output_assets(type=nil)
|
349
357
|
types = type ? [type] : self.assets.keys
|
350
358
|
use_cdn = Spider.conf.get('assets.use_cdn')
|
@@ -28,7 +28,9 @@ module Spider
|
|
28
28
|
elsif el.name == 'tpl:output'
|
29
29
|
block = :Output
|
30
30
|
elsif el.name == 'tpl:output-assets'
|
31
|
-
block = :LayoutAssets
|
31
|
+
block = :LayoutAssets
|
32
|
+
elsif el.name == 'tpl:output-meta'
|
33
|
+
block = :LayoutMeta
|
32
34
|
elsif el.name == 'sp:render'
|
33
35
|
block = :Render
|
34
36
|
elsif el.name == 'sp:run'
|
@@ -212,6 +214,7 @@ require 'spiderfw/templates/blocks/debugger'
|
|
212
214
|
require 'spiderfw/templates/blocks/parent_context'
|
213
215
|
require 'spiderfw/templates/blocks/output'
|
214
216
|
require 'spiderfw/templates/blocks/layout_assets'
|
217
|
+
require 'spiderfw/templates/blocks/layout_meta'
|
215
218
|
require 'spiderfw/templates/blocks/lambda'
|
216
219
|
require 'spiderfw/templates/blocks/recurse'
|
217
220
|
|
data/lib/spiderfw/test.rb
CHANGED
@@ -1,6 +1,20 @@
|
|
1
|
+
require 'tmpdir'
|
2
|
+
require 'fileutils'
|
1
3
|
require 'spiderfw/test/page_object'
|
2
4
|
|
5
|
+
|
3
6
|
module Spider; module Test
|
7
|
+
|
8
|
+
def self.setup_env
|
9
|
+
@tmpdir = File.join(Dir.tmpdir, 'spider_test')
|
10
|
+
FileUtils.rm_rf(@tmpdir) if File.exists?(@tmpdir)
|
11
|
+
FileUtils.mkdir(@tmpdir)
|
12
|
+
Spider.setup_paths(@tmpdir)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.teardown_env
|
16
|
+
FileUtils.rm_rf(@tmpdir)
|
17
|
+
end
|
4
18
|
|
5
19
|
def self.env
|
6
20
|
@env ||= {}
|
@@ -80,10 +94,19 @@ module Spider; module Test
|
|
80
94
|
models = [app_or_model]
|
81
95
|
end
|
82
96
|
models.each do |m|
|
83
|
-
m.use_storage 'stub://stub'
|
97
|
+
m.use_storage 'stub:stub://stub'
|
84
98
|
end
|
85
99
|
end
|
86
100
|
|
87
101
|
|
88
102
|
end; end
|
89
103
|
|
104
|
+
require 'spiderfw/controller/controller'
|
105
|
+
require 'spiderfw/config/options/spider'
|
106
|
+
begin
|
107
|
+
require 'ruby-debug'
|
108
|
+
Debugger.start
|
109
|
+
rescue
|
110
|
+
end
|
111
|
+
require 'spiderfw/test/extensions/db_storage'
|
112
|
+
Spider::Test.setup_env
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spiderfw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
4
|
+
hash: 25
|
5
|
+
prerelease:
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 6
|
8
|
-
-
|
9
|
-
version: 0.6.
|
9
|
+
- 15
|
10
|
+
version: 0.6.15
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Ivan Pirlik
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2011-08-
|
18
|
+
date: 2011-08-09 00:00:00 +02:00
|
18
19
|
default_executable: spider
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: cmdparse
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">"
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 15
|
27
30
|
segments:
|
28
31
|
- 2
|
29
32
|
- 0
|
@@ -35,9 +38,11 @@ dependencies:
|
|
35
38
|
name: fast_gettext
|
36
39
|
prerelease: false
|
37
40
|
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
38
42
|
requirements:
|
39
43
|
- - ">="
|
40
44
|
- !ruby/object:Gem::Version
|
45
|
+
hash: 17
|
41
46
|
segments:
|
42
47
|
- 0
|
43
48
|
- 5
|
@@ -49,9 +54,11 @@ dependencies:
|
|
49
54
|
name: hpricot
|
50
55
|
prerelease: false
|
51
56
|
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
52
58
|
requirements:
|
53
59
|
- - ">"
|
54
60
|
- !ruby/object:Gem::Version
|
61
|
+
hash: 27
|
55
62
|
segments:
|
56
63
|
- 0
|
57
64
|
- 8
|
@@ -62,9 +69,11 @@ dependencies:
|
|
62
69
|
name: json_pure
|
63
70
|
prerelease: false
|
64
71
|
requirement: &id004 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
65
73
|
requirements:
|
66
74
|
- - ">"
|
67
75
|
- !ruby/object:Gem::Version
|
76
|
+
hash: 13
|
68
77
|
segments:
|
69
78
|
- 1
|
70
79
|
- 1
|
@@ -75,9 +84,11 @@ dependencies:
|
|
75
84
|
name: uuidtools
|
76
85
|
prerelease: false
|
77
86
|
requirement: &id005 !ruby/object:Gem::Requirement
|
87
|
+
none: false
|
78
88
|
requirements:
|
79
89
|
- - ">"
|
80
90
|
- !ruby/object:Gem::Version
|
91
|
+
hash: 1
|
81
92
|
segments:
|
82
93
|
- 2
|
83
94
|
- 1
|
@@ -88,9 +99,11 @@ dependencies:
|
|
88
99
|
name: rufus-scheduler
|
89
100
|
prerelease: false
|
90
101
|
requirement: &id006 !ruby/object:Gem::Requirement
|
102
|
+
none: false
|
91
103
|
requirements:
|
92
104
|
- - ">"
|
93
105
|
- !ruby/object:Gem::Version
|
106
|
+
hash: 15
|
94
107
|
segments:
|
95
108
|
- 1
|
96
109
|
- 0
|
@@ -101,9 +114,11 @@ dependencies:
|
|
101
114
|
name: mime-types
|
102
115
|
prerelease: false
|
103
116
|
requirement: &id007 !ruby/object:Gem::Requirement
|
117
|
+
none: false
|
104
118
|
requirements:
|
105
119
|
- - ">"
|
106
120
|
- !ruby/object:Gem::Version
|
121
|
+
hash: 15
|
107
122
|
segments:
|
108
123
|
- 1
|
109
124
|
- 0
|
@@ -114,9 +129,11 @@ dependencies:
|
|
114
129
|
name: locale
|
115
130
|
prerelease: false
|
116
131
|
requirement: &id008 !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
117
133
|
requirements:
|
118
134
|
- - ">"
|
119
135
|
- !ruby/object:Gem::Version
|
136
|
+
hash: 3
|
120
137
|
segments:
|
121
138
|
- 2
|
122
139
|
- 0
|
@@ -127,9 +144,11 @@ dependencies:
|
|
127
144
|
name: builder
|
128
145
|
prerelease: false
|
129
146
|
requirement: &id009 !ruby/object:Gem::Requirement
|
147
|
+
none: false
|
130
148
|
requirements:
|
131
149
|
- - ">"
|
132
150
|
- !ruby/object:Gem::Version
|
151
|
+
hash: 1
|
133
152
|
segments:
|
134
153
|
- 2
|
135
154
|
- 1
|
@@ -140,9 +159,11 @@ dependencies:
|
|
140
159
|
name: macaddr
|
141
160
|
prerelease: false
|
142
161
|
requirement: &id010 !ruby/object:Gem::Requirement
|
162
|
+
none: false
|
143
163
|
requirements:
|
144
164
|
- - ">="
|
145
165
|
- !ruby/object:Gem::Version
|
166
|
+
hash: 23
|
146
167
|
segments:
|
147
168
|
- 1
|
148
169
|
- 0
|
@@ -154,9 +175,11 @@ dependencies:
|
|
154
175
|
name: bundler
|
155
176
|
prerelease: false
|
156
177
|
requirement: &id011 !ruby/object:Gem::Requirement
|
178
|
+
none: false
|
157
179
|
requirements:
|
158
180
|
- - ">="
|
159
181
|
- !ruby/object:Gem::Version
|
182
|
+
hash: 3
|
160
183
|
segments:
|
161
184
|
- 0
|
162
185
|
version: "0"
|
@@ -166,9 +189,11 @@ dependencies:
|
|
166
189
|
name: rake
|
167
190
|
prerelease: false
|
168
191
|
requirement: &id012 !ruby/object:Gem::Requirement
|
192
|
+
none: false
|
169
193
|
requirements:
|
170
194
|
- - ">"
|
171
195
|
- !ruby/object:Gem::Version
|
196
|
+
hash: 5
|
172
197
|
segments:
|
173
198
|
- 0
|
174
199
|
- 7
|
@@ -180,9 +205,11 @@ dependencies:
|
|
180
205
|
name: ruby-debug
|
181
206
|
prerelease: false
|
182
207
|
requirement: &id013 !ruby/object:Gem::Requirement
|
208
|
+
none: false
|
183
209
|
requirements:
|
184
210
|
- - ">"
|
185
211
|
- !ruby/object:Gem::Version
|
212
|
+
hash: 61
|
186
213
|
segments:
|
187
214
|
- 0
|
188
215
|
- 9
|
@@ -232,6 +259,8 @@ files:
|
|
232
259
|
- apps/config_editor/views/index.shtml
|
233
260
|
- apps/config_editor/widgets/edit/edit.rb
|
234
261
|
- apps/config_editor/widgets/edit/edit.shtml
|
262
|
+
- apps/config_editor/widgets/edit_bool/edit_bool.rb
|
263
|
+
- apps/config_editor/widgets/edit_bool/edit_bool.shtml
|
235
264
|
- apps/core/admin/_init.rb
|
236
265
|
- apps/core/admin/admin.rb
|
237
266
|
- apps/core/admin/controllers/admin_controller.rb
|
@@ -1121,6 +1150,7 @@ files:
|
|
1121
1150
|
- lib/spiderfw/templates/blocks/if.rb
|
1122
1151
|
- lib/spiderfw/templates/blocks/lambda.rb
|
1123
1152
|
- lib/spiderfw/templates/blocks/layout_assets.rb
|
1153
|
+
- lib/spiderfw/templates/blocks/layout_meta.rb
|
1124
1154
|
- lib/spiderfw/templates/blocks/output.rb
|
1125
1155
|
- lib/spiderfw/templates/blocks/parent_context.rb
|
1126
1156
|
- lib/spiderfw/templates/blocks/pass.rb
|
@@ -1138,6 +1168,7 @@ files:
|
|
1138
1168
|
- lib/spiderfw/templates/template_blocks.rb
|
1139
1169
|
- lib/spiderfw/test/capybara.rb
|
1140
1170
|
- lib/spiderfw/test/cucumber.rb
|
1171
|
+
- lib/spiderfw/test/extensions/db_storage.rb
|
1141
1172
|
- lib/spiderfw/test/page_object.rb
|
1142
1173
|
- lib/spiderfw/test/spec.rb
|
1143
1174
|
- lib/spiderfw/test/stubs/mapper_stub.rb
|
@@ -1200,23 +1231,27 @@ rdoc_options: []
|
|
1200
1231
|
require_paths:
|
1201
1232
|
- lib
|
1202
1233
|
required_ruby_version: !ruby/object:Gem::Requirement
|
1234
|
+
none: false
|
1203
1235
|
requirements:
|
1204
1236
|
- - ">="
|
1205
1237
|
- !ruby/object:Gem::Version
|
1238
|
+
hash: 3
|
1206
1239
|
segments:
|
1207
1240
|
- 0
|
1208
1241
|
version: "0"
|
1209
1242
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1243
|
+
none: false
|
1210
1244
|
requirements:
|
1211
1245
|
- - ">="
|
1212
1246
|
- !ruby/object:Gem::Version
|
1247
|
+
hash: 3
|
1213
1248
|
segments:
|
1214
1249
|
- 0
|
1215
1250
|
version: "0"
|
1216
1251
|
requirements:
|
1217
1252
|
- "Optional dependencies: ripl, ripl-irb, ripl-multi_line, json, openssl, sqlite3, webrick, mongrel, ruby-oci8 >2.0, mysql, yui-compressor, home_run, cldr"
|
1218
1253
|
rubyforge_project:
|
1219
|
-
rubygems_version: 1.
|
1254
|
+
rubygems_version: 1.4.2
|
1220
1255
|
signing_key:
|
1221
1256
|
specification_version: 3
|
1222
1257
|
summary: A (web) framework
|