rbbt-util 5.14.23 → 5.14.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/etc/app.d/base.rb +0 -15
- data/etc/app.d/foundation.rb +5 -0
- data/etc/app.d/grid_system.rb +1 -0
- data/etc/app.d/init.rb +0 -2
- data/etc/app.d/resources.rb +11 -7
- data/etc/app.d/workflows.rb +7 -0
- data/lib/rbbt/knowledge_base.rb +1 -1
- data/lib/rbbt/util/misc/math.rb +12 -1
- data/lib/rbbt/workflow/accessor.rb +6 -0
- data/lib/rbbt/workflow/task.rb +22 -0
- data/lib/rbbt/workflow/usage.rb +2 -7
- data/share/config.ru +12 -5
- data/share/rbbt_commands/app/start +1 -1
- data/share/rbbt_commands/workflow/server +10 -38
- data/test/rbbt/util/test_misc.rb +0 -4
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfd34ace1726633f7431a3929e2c035a192ee874
|
4
|
+
data.tar.gz: b2d9f37f496e89c256ce74b5e4b2d543f473dd1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b59fcb177f41b692077052ce358c40bedcbb47fd205ab4d6aea4abe498f4eea895e823159aefbc73e28ab652099b73bf15d11a91e0169b8122887ce93caba070
|
7
|
+
data.tar.gz: cdad69d36ef4306145ff97f8785dd5716ff2fd19a17d48c0dd18f30f7ce7d9b456fe71bff37741d17ce0289d452adab61986e802c51e797c6de520899404312e
|
data/etc/app.d/base.rb
CHANGED
@@ -1,13 +1,5 @@
|
|
1
1
|
#{{{ MODULES AND HELPERS
|
2
2
|
|
3
|
-
register Sinatra::RbbtRESTWorkflow
|
4
|
-
|
5
|
-
Rbbt.etc.workflows.find.read.split("\n").each do |workflow|
|
6
|
-
next if workflow.empty?
|
7
|
-
Workflow.require_workflow workflow
|
8
|
-
add_workflow Kernel.const_get(workflow), true
|
9
|
-
end if Rbbt.etc.workflows.find.exists?
|
10
|
-
|
11
3
|
register Sinatra::RbbtRESTMain
|
12
4
|
register Sinatra::RbbtRESTEntity
|
13
5
|
register Sinatra::RbbtRESTFileServer # Remove to prevent serving files
|
@@ -21,7 +13,6 @@ use Rack::Session::Cookie, :key => 'rack.session',
|
|
21
13
|
:expire_after => 2592000,
|
22
14
|
:secret => "#{self.to_s} secret!!"
|
23
15
|
|
24
|
-
|
25
16
|
#{{{ DIRECTORIES
|
26
17
|
global_var = Rbbt.var.sinatra
|
27
18
|
local_var = Rbbt.var.sinatra.app[$class_name]
|
@@ -35,9 +26,3 @@ set :favourites_dir , local_var.favourites
|
|
35
26
|
set :favourite_lists_dir , local_var.favourite_lists
|
36
27
|
set :favourite_maps_dir , local_var.favourite_maps
|
37
28
|
|
38
|
-
#set :finder, nil
|
39
|
-
|
40
|
-
#{{{ WORKFLOWS
|
41
|
-
|
42
|
-
|
43
|
-
|
@@ -0,0 +1,5 @@
|
|
1
|
+
require 'zurb-foundation'
|
2
|
+
|
3
|
+
#RbbtRESTHelpers.add_sass_load_path "#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/scss/"
|
4
|
+
#RbbtRESTHelpers.javascript_resources << Path.setup("#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/js/foundation")
|
5
|
+
#RbbtRESTHelpers.javascript_resources << Path.setup("#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/js/vendor")
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'zen-grids'
|
data/etc/app.d/init.rb
CHANGED
data/etc/app.d/resources.rb
CHANGED
@@ -1,9 +1,13 @@
|
|
1
|
-
EntityRESTHelpers.entity_resources.unshift Rbbt.www.views.find
|
2
|
-
RbbtRESTHelpers.template_resources.unshift Rbbt.www.views.find
|
3
|
-
RbbtRESTHelpers.add_sass_load_path "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
|
4
|
-
RbbtRESTHelpers.add_sass_load_path "#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/scss/"
|
5
|
-
RbbtRESTHelpers.add_sass_load_path "#{Gem.loaded_specs['modular-scale'].full_gem_path}/stylesheets/"
|
6
|
-
RbbtRESTHelpers.javascript_resources << Path.setup("#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/js/foundation")
|
7
|
-
RbbtRESTHelpers.javascript_resources << Path.setup("#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/js/vendor")
|
8
1
|
|
2
|
+
EntityRESTHelpers.entity_resources.unshift Rbbt.www.views.find if Rbbt.www.views.exists?
|
3
|
+
RbbtRESTHelpers.template_resources.unshift Rbbt.www.views.find if Rbbt.www.views.exists?
|
4
|
+
|
5
|
+
#load Rbbt.etc['app.d']['foundation.rb'].find if Rbbt.etc['app.d']['foundation.rb'].exists?
|
6
|
+
load Rbbt.etc['app.d']['grid_system.rb'].find if Rbbt.etc['app.d']['grid_system.rb'].exists?
|
7
|
+
|
8
|
+
Compass::Frameworks::ALL.each do |importer|
|
9
|
+
next unless importer.respond_to? :path
|
10
|
+
path = importer.stylesheets_directory
|
11
|
+
RbbtRESTHelpers.add_sass_load_path path
|
12
|
+
end
|
9
13
|
|
data/lib/rbbt/knowledge_base.rb
CHANGED
@@ -192,7 +192,7 @@ class KnowledgeBase
|
|
192
192
|
file, registered_options = registry[name]
|
193
193
|
|
194
194
|
options = Misc.add_defaults options, :persist_file => persist_file, :namespace => namespace, :format => format
|
195
|
-
options = Misc.add_defaults options, registered_options
|
195
|
+
options = Misc.add_defaults options, registered_options if registered_options and registered_options.any?
|
196
196
|
|
197
197
|
persist_options = Misc.pull_keys options, :persist
|
198
198
|
|
data/lib/rbbt/util/misc/math.rb
CHANGED
@@ -26,7 +26,18 @@ module Misc
|
|
26
26
|
def self.sd(list)
|
27
27
|
return nil if list.length < 3
|
28
28
|
mean = mean(list)
|
29
|
-
|
29
|
+
list = list.compact
|
30
|
+
list_length = list.length
|
31
|
+
|
32
|
+
total_square_distance = 0
|
33
|
+
list.each do |value|
|
34
|
+
distance = value - mean
|
35
|
+
total_square_distance += distance * distance
|
36
|
+
end
|
37
|
+
|
38
|
+
variance = total_square_distance / (list_length - 1)
|
39
|
+
Math.sqrt(variance)
|
40
|
+
#Math.sqrt(list.compact.inject(0.0){|acc,e| d = e - mean; acc += d * d; acc}) / (list.compact.length - 1)
|
30
41
|
end
|
31
42
|
|
32
43
|
def self.counts(array)
|
@@ -461,6 +461,12 @@ module Workflow
|
|
461
461
|
[taskname].concat(rec_dependencies(taskname)).inject([]){|acc, tn| acc.concat(task_from_dep(tn).inputs) }.uniq
|
462
462
|
end
|
463
463
|
|
464
|
+
def rec_inputs(taskname)
|
465
|
+
task = task_from_dep(taskname)
|
466
|
+
dep_inputs = task.dep_inputs rec_dependencies(taskname), self
|
467
|
+
task.inputs + dep_inputs.values.flatten
|
468
|
+
end
|
469
|
+
|
464
470
|
def rec_input_defaults(taskname)
|
465
471
|
[taskname].concat(rec_dependencies(taskname)).inject(IndiferentHash.setup({})){|acc, tn|
|
466
472
|
new = (Array === tn ? tn.first.tasks[tn[1].to_sym] : tasks[tn.to_sym]).input_defaults
|
data/lib/rbbt/workflow/task.rb
CHANGED
@@ -70,4 +70,26 @@ module Task
|
|
70
70
|
exec_in *args
|
71
71
|
end
|
72
72
|
end
|
73
|
+
|
74
|
+
def self.dep_inputs(deps, workflow = nil)
|
75
|
+
seen = []
|
76
|
+
task_inputs = {}
|
77
|
+
deps.each do |dep|
|
78
|
+
wf, task = (Array === dep ? [dep.first, dep.first.tasks[dep[1].to_sym]] : [workflow, workflow.tasks[dep.to_sym]])
|
79
|
+
maps = (Array === dep and Hash === dep.last) ? dep.last.keys : []
|
80
|
+
next if seen.include? [wf, task.name]
|
81
|
+
seen << [wf, task.name]
|
82
|
+
new_inputs = task.inputs - maps
|
83
|
+
next unless new_inputs.any?
|
84
|
+
task_inputs[task] = new_inputs
|
85
|
+
end
|
86
|
+
task_inputs
|
87
|
+
end
|
88
|
+
|
89
|
+
def dep_inputs(deps, workflow = nil)
|
90
|
+
task_inputs = Task.dep_inputs deps, workflow
|
91
|
+
task_inputs.each do |task, inputs|
|
92
|
+
inputs.replace (inputs - self.inputs)
|
93
|
+
end
|
94
|
+
end
|
73
95
|
end
|
data/lib/rbbt/workflow/usage.rb
CHANGED
@@ -28,13 +28,8 @@ module Task
|
|
28
28
|
puts Log.color(:magenta, "Inputs from dependencies:")
|
29
29
|
puts
|
30
30
|
seen = []
|
31
|
-
deps
|
32
|
-
|
33
|
-
maps = (Array === dep and Hash === dep.last) ? dep.last.keys : []
|
34
|
-
next if seen.include? task.name
|
35
|
-
seen << task.name
|
36
|
-
new_inputs = (task.inputs - self.inputs - maps)
|
37
|
-
next unless new_inputs.any?
|
31
|
+
task_inputs = dep_inputs deps, workflow
|
32
|
+
task_inputs.each do |task,new_inputs|
|
38
33
|
puts " #{Log.color :yellow, task.name.to_s}:"
|
39
34
|
puts
|
40
35
|
puts SOPT.input_doc(new_inputs, task.input_types, task.input_descriptions, task.input_defaults, true)
|
data/share/config.ru
CHANGED
@@ -3,14 +3,18 @@ require 'rbbt/resource'
|
|
3
3
|
$LOAD_PATH.unshift('lib') unless $LOAD_PATH.include?('lib')
|
4
4
|
|
5
5
|
def load_file(file)
|
6
|
-
if file
|
6
|
+
if Array === file
|
7
|
+
file.each{|f| load_file f }
|
8
|
+
elsif file.exists?
|
7
9
|
Log.info("Loading: " << file)
|
8
10
|
load file
|
9
11
|
end
|
10
12
|
end
|
11
13
|
|
12
14
|
def app_eval(app, file)
|
13
|
-
if file
|
15
|
+
if Array === file
|
16
|
+
file.each{|f| app_eval app, f }
|
17
|
+
elsif file.exists?
|
14
18
|
app.class_eval do
|
15
19
|
Log.info("Loading: " << file)
|
16
20
|
eval file.read, nil, file
|
@@ -27,6 +31,9 @@ $app = app = eval "class #{class_name} < Sinatra::Base; self end"
|
|
27
31
|
#{{{ PRE
|
28
32
|
load_file Rbbt.etc['app.d/pre.rb'].find
|
29
33
|
|
34
|
+
#{{{ WORKFLOWS
|
35
|
+
app_eval app, Rbbt.etc['app.d/workflows.rb'].find_all
|
36
|
+
|
30
37
|
#{{{ BASE
|
31
38
|
app_eval app, Rbbt.etc['app.d/base.rb'].find
|
32
39
|
|
@@ -37,16 +44,16 @@ load_file Rbbt.etc['app.d/resources.rb'].find
|
|
37
44
|
load_file Rbbt.etc['app.d/entities.rb'].find
|
38
45
|
|
39
46
|
#{{{ ROUTES
|
40
|
-
app_eval app, Rbbt.etc['app.d/routes.rb'].
|
47
|
+
app_eval app, Rbbt.etc['app.d/routes.rb'].find_all
|
41
48
|
|
42
49
|
#{{{ FINDER
|
43
50
|
app_eval app, Rbbt.etc['app.d/finder.rb'].find
|
44
51
|
|
45
52
|
#{{{ POST
|
46
|
-
load_file Rbbt.etc['app.d/post.rb'].
|
53
|
+
load_file Rbbt.etc['app.d/post.rb'].find_all
|
47
54
|
|
48
55
|
#{{{ PRELOAD
|
49
|
-
load_file Rbbt.etc['app.d/preload.rb'].
|
56
|
+
load_file Rbbt.etc['app.d/preload.rb'].find_all
|
50
57
|
|
51
58
|
#{{{ RUN
|
52
59
|
$title = class_name
|
@@ -18,7 +18,7 @@ Misc.in_dir(app_dir) do
|
|
18
18
|
ENV["RBBT_FINDER"] = "true" if options.include?(:finder)
|
19
19
|
ENV["RACK_ENV"] = options[:environment] if options.include?(:environment)
|
20
20
|
|
21
|
-
config_ru_file = File.exists?('config.ru') ? 'config.ru' : Rbbt.share['config.ru'].find
|
21
|
+
config_ru_file = File.exists?('./config.ru') ? './config.ru' : Rbbt.share['config.ru'].find
|
22
22
|
|
23
23
|
if server == 'unicorn'
|
24
24
|
`unicorn -c #{ Rbbt.share['unicorn.rb'].find } '#{config_ru_file}' -p #{options[:port] || "2887"}`
|
@@ -17,50 +17,22 @@ options = SOPT.get "-e--environment*:-p--port*:-s--server*:-b--bind*:-e--environ
|
|
17
17
|
|
18
18
|
workflow = ARGV.first
|
19
19
|
|
20
|
-
YAML::ENGINE.yamler = 'syck' if defined? YAML::ENGINE and YAML::ENGINE.respond_to? :yamler
|
21
|
-
|
22
20
|
wf = Workflow.require_workflow workflow
|
23
21
|
|
24
|
-
|
25
|
-
self
|
26
|
-
end.get '/' do
|
27
|
-
redirect to(File.join('/', wf.to_s))
|
28
|
-
end
|
29
|
-
|
30
|
-
ENV["RACK_ENV"] = options[:environment] if options.include?(:environment)
|
22
|
+
$title = wf.to_s
|
31
23
|
|
32
|
-
|
33
|
-
|
34
|
-
#{{{ MODULES AND HELPERS
|
35
|
-
register Sinatra::RbbtRESTMain
|
36
|
-
register Sinatra::RbbtRESTWorkflow
|
37
|
-
register Sinatra::RbbtRESTEntity
|
38
|
-
register Sinatra::RbbtRESTKnowledgeBase
|
39
|
-
helpers Sinatra::RbbtMiscHelpers
|
24
|
+
load Rbbt.etc['app.d/init.rb'].find
|
40
25
|
|
41
|
-
|
42
|
-
local_var = Rbbt.var.find(:user)
|
43
|
-
set :cache_dir , local_var.sinatra.cache.find
|
44
|
-
set :file_dir , local_var.sinatra.files.find
|
45
|
-
set :favourites_dir , local_var.sinatra.favourites.find
|
46
|
-
set :favourite_lists_dir , local_var.sinatra.favourite_lists
|
26
|
+
app = class WorkflowRest < Sinatra::Base; self end
|
47
27
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
:expire_after => 2592000,
|
52
|
-
:secret => "Workflow #{Workflow.workflows.inspect} secret!!"
|
53
|
-
|
54
|
-
#{{{ FOUNDATION RESOURCES
|
55
|
-
add_sass_load_path "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
|
56
|
-
add_sass_load_path "#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/scss/"
|
57
|
-
add_sass_load_path "#{Gem.loaded_specs['modular-scale'].full_gem_path}/stylesheets/"
|
58
|
-
RbbtRESTHelpers.javascript_resources << Path.setup("#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/js/foundation")
|
59
|
-
RbbtRESTHelpers.javascript_resources << Path.setup("#{Gem.loaded_specs['zurb-foundation'].full_gem_path}/js/vendor")
|
60
|
-
|
61
|
-
$title = "Workflow Scout"
|
62
|
-
use Rack::Deflater
|
28
|
+
app.register Sinatra::RbbtRESTWorkflow
|
29
|
+
app.get '/' do
|
30
|
+
redirect to(File.join('/', wf.to_s))
|
63
31
|
end
|
32
|
+
app.instance_eval Rbbt.etc['app.d/base.rb'].read
|
33
|
+
app.use Rack::Deflater
|
34
|
+
|
35
|
+
load Rbbt.etc['app.d/resources.rb'].find
|
64
36
|
|
65
37
|
WorkflowRest.add_workflow wf, true
|
66
38
|
|
data/test/rbbt/util/test_misc.rb
CHANGED
@@ -382,10 +382,6 @@ eum fugiat quo voluptas nulla pariatur?"
|
|
382
382
|
assert_equal [[:a,1,"A"], [:b,2,"B"]], current
|
383
383
|
end
|
384
384
|
|
385
|
-
def __test_sd
|
386
|
-
assert_equal Math.sqrt(2), Misc.sd([1,3])
|
387
|
-
end
|
388
|
-
|
389
385
|
def test_divide
|
390
386
|
assert_equal 2, Misc.divide(%w(1 2 3 4 5 6 7 8 9),2).length
|
391
387
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.14.
|
4
|
+
version: 5.14.24
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-09-
|
11
|
+
date: 2014-09-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -131,8 +131,11 @@ files:
|
|
131
131
|
- etc/app.d/base.rb
|
132
132
|
- etc/app.d/entities.rb
|
133
133
|
- etc/app.d/finder.rb
|
134
|
+
- etc/app.d/foundation.rb
|
135
|
+
- etc/app.d/grid_system.rb
|
134
136
|
- etc/app.d/init.rb
|
135
137
|
- etc/app.d/resources.rb
|
138
|
+
- etc/app.d/workflows.rb
|
136
139
|
- lib/rbbt-util.rb
|
137
140
|
- lib/rbbt.rb
|
138
141
|
- lib/rbbt/annotations.rb
|