spiderfw 0.6.14 → 0.6.15
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.
- 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
|