hypersonicplus 0.0.0
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.
- checksums.yaml +7 -0
- data/lib/hdatastructures/hfieldtable.rb +285 -0
- data/lib/hdatastructures/hhash.rb +9 -0
- data/lib/hdatastructures/hlist.rb +100 -0
- data/lib/hdatastructures/hrecord.rb +75 -0
- data/lib/hdatastructures/hspreadfieldtable.rb +129 -0
- data/lib/hdb/hdataloader.rb +75 -0
- data/lib/hdb/hdb.rb +357 -0
- data/lib/hdb/hdb_test.rb +248 -0
- data/lib/hdb/hdbgenerator.rb +211 -0
- data/lib/hdb/hdbi.rb +63 -0
- data/lib/hdb/hdbi_test.rb +133 -0
- data/lib/hdb/hfield.rb +180 -0
- data/lib/hdb/hmysql.rb +99 -0
- data/lib/hdb/hmysql2.rb +96 -0
- data/lib/hdb/hodb.rb +948 -0
- data/lib/hdb/hpgsql.rb +54 -0
- data/lib/hengine/application_controller.rb +204 -0
- data/lib/hengine/hconfiguration.rb +40 -0
- data/lib/hengine/hhotlogger.rb +13 -0
- data/lib/hengine/hlogger.rb +119 -0
- data/lib/hengine/hmalloc.rb +275 -0
- data/lib/hengine/hmoduleloader.rb +15 -0
- data/lib/hengine/hsessiondata.rb +79 -0
- data/lib/hengine/hshareddata.rb +60 -0
- data/lib/hengine/htranslate.rb +40 -0
- data/lib/hengine/hviewloader.rb +99 -0
- data/lib/hinit/hinit.rb +3 -0
- data/lib/hmisc/hcolorize.rb +100 -0
- data/lib/hmisc/hdecoratorfunctions.rb +15 -0
- data/lib/hmisc/hdir.rb +19 -0
- data/lib/hmisc/hhtmlnode.rb +27 -0
- data/lib/hmisc/hinputvalidator.rb +95 -0
- data/lib/hmisc/hio.rb +142 -0
- data/lib/hmisc/hjson.rb +16 -0
- data/lib/hsqlmanager/hpgsqldatabasemanager.rb +76 -0
- data/lib/hsqlmanager/hsqldatabasemanager.rb +349 -0
- data/lib/hsqlmanager/hsqltable.rb +16 -0
- data/lib/husermanager/husermanager.rb +122 -0
- data/lib/hwidgets/haccordionmenu.rb +117 -0
- data/lib/hwidgets/hcheckboxtag.rb +33 -0
- data/lib/hwidgets/hdbactionbuttons.rb +26 -0
- data/lib/hwidgets/hdbcombobox.rb +71 -0
- data/lib/hwidgets/hdbdialogview.rb +190 -0
- data/lib/hwidgets/hdbfilterview.rb +28 -0
- data/lib/hwidgets/hdbtableview.rb +213 -0
- data/lib/hwidgets/hdbview.rb +63 -0
- data/lib/hwidgets/hdivtag.rb +9 -0
- data/lib/hwidgets/hdropdown.rb +44 -0
- data/lib/hwidgets/hformfield.rb +91 -0
- data/lib/hwidgets/hgrouptag.rb +65 -0
- data/lib/hwidgets/hhiddeninputtag.rb +12 -0
- data/lib/hwidgets/hinputtag.rb +55 -0
- data/lib/hwidgets/hlabeltag.rb +30 -0
- data/lib/hwidgets/hmainview.rb +37 -0
- data/lib/hwidgets/hpagination.rb +65 -0
- data/lib/hwidgets/hradiobuttontag.rb +30 -0
- data/lib/hwidgets/hselecttag.rb +32 -0
- data/lib/hwidgets/htableview.rb +262 -0
- data/lib/hwidgets/htabview.rb +84 -0
- data/lib/hwidgets/htextareatag.rb +20 -0
- data/lib/hwidgets/htopnav.rb +85 -0
- data/lib/hwidgets/hwidget.rb +423 -0
- data/lib/hypersonic.rb +9 -0
- metadata +276 -0
@@ -0,0 +1,79 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "singleton"
|
4
|
+
|
5
|
+
class HSessionData
|
6
|
+
|
7
|
+
include Singleton
|
8
|
+
|
9
|
+
def initialize()
|
10
|
+
|
11
|
+
@databaseManager = hpgsql()
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def session()
|
16
|
+
return hsd().value(:session)
|
17
|
+
end
|
18
|
+
|
19
|
+
def sessionId()
|
20
|
+
return (self.session()[:sessionId]) ? self.session()[:sessionId] : -1
|
21
|
+
end
|
22
|
+
|
23
|
+
def setValues(params)
|
24
|
+
|
25
|
+
sessionId = self.sessionId
|
26
|
+
self.session[:sessionId] = sessionId = @databaseManager.insertOrUpdateIfExist("session_table", "id = #{sessionId}", {:value => params})
|
27
|
+
|
28
|
+
i = 0
|
29
|
+
session_record = Hash.new()
|
30
|
+
params.each do |key, value|
|
31
|
+
session_record = {:session_id => sessionId,
|
32
|
+
:field_name => key,
|
33
|
+
:field_value => value,
|
34
|
+
:ordering => i}
|
35
|
+
session_recordWhere = "session_id = #{sessionId} and field_name = '#{key}'"
|
36
|
+
@databaseManager.insertOrUpdateIfExist("session_record_table", session_recordWhere, session_record)
|
37
|
+
i += 1
|
38
|
+
|
39
|
+
# se trova username tra i parametri lo memorizza singolarmente
|
40
|
+
# in modo da essere usato piu' facilmente dalle altre funzioni
|
41
|
+
username = @databaseManager.parentChildValueOf("session", "session_record", sessionId, key, "username")
|
42
|
+
self.setValues({:username => username}) if (username)
|
43
|
+
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
|
48
|
+
def valueOf(fieldName, key = nil)
|
49
|
+
|
50
|
+
return @databaseManager.parentChildValueOf("session", "session_record", self.sessionId, fieldName, key)
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
|
55
|
+
def value1()
|
56
|
+
|
57
|
+
sessionId = self.sessionId
|
58
|
+
return nil if(sessionId == -1)
|
59
|
+
|
60
|
+
selectQuery = "select value from session_table where id = #{sessionId}"
|
61
|
+
tableResult = @databaseManager.run(selectQuery).result
|
62
|
+
return nil if(tableResult.count == 0)
|
63
|
+
return eval(tableResult[0]["value"])
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
def self.test1()
|
68
|
+
|
69
|
+
end
|
70
|
+
|
71
|
+
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
def hsession()
|
76
|
+
|
77
|
+
return HSessionData.instance()
|
78
|
+
|
79
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "singleton"
|
4
|
+
|
5
|
+
class HSharedData
|
6
|
+
|
7
|
+
include Singleton
|
8
|
+
|
9
|
+
def initialize()
|
10
|
+
|
11
|
+
@sharedData = Hash.new
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def sharedData(sharedDataName)
|
16
|
+
@sharedData[sharedDataName] = Hash.new() unless (@sharedData[sharedDataName])
|
17
|
+
return @sharedData[sharedDataName]
|
18
|
+
end
|
19
|
+
|
20
|
+
def setValue(fieldValue, fieldName, sharedDataName = "default")
|
21
|
+
|
22
|
+
#puts "=======> setValue(#{fieldValue}, #{fieldName})".hight_cyan
|
23
|
+
if(fieldValue == nil)
|
24
|
+
self.sharedData(sharedDataName).delete(fieldName)
|
25
|
+
else
|
26
|
+
self.sharedData(sharedDataName)[fieldName] = fieldValue
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def set(fieldName, fieldValue, sharedDataName = 'default')
|
31
|
+
self.setValue(fieldValue, fieldName, sharedDataName)
|
32
|
+
end
|
33
|
+
|
34
|
+
def value(fieldName, sharedDataName = "default")
|
35
|
+
|
36
|
+
return self.sharedData(sharedDataName)[fieldName]
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
def show()
|
41
|
+
#p "=======> @sharedData: #{@sharedData}"
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.test1()
|
45
|
+
|
46
|
+
HSharedData.instance().setValue("wien", "best_city")
|
47
|
+
puts HSharedData.instance().value("best_city")
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
#HSharedData.test1()
|
52
|
+
|
53
|
+
end
|
54
|
+
|
55
|
+
|
56
|
+
def hsd()
|
57
|
+
|
58
|
+
return HSharedData.instance()
|
59
|
+
|
60
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "singleton"
|
4
|
+
#require "hmisc/hconfiguration"
|
5
|
+
|
6
|
+
class HTranslate
|
7
|
+
|
8
|
+
include Singleton
|
9
|
+
|
10
|
+
def initialize()
|
11
|
+
|
12
|
+
#p I18n.t("hello")
|
13
|
+
|
14
|
+
language = HConfiguration.instance().value("language")
|
15
|
+
@dictionary = YAML.load_file("config/locales/#{language}.yml")[language]
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
def translate(word)
|
20
|
+
|
21
|
+
wd = @dictionary[word]
|
22
|
+
return (wd) ? wd : word
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
def tr(word)
|
27
|
+
|
28
|
+
return self.translate(word)
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def ht(word)
|
36
|
+
|
37
|
+
return HTranslate.instance().tr(word)
|
38
|
+
|
39
|
+
end
|
40
|
+
|
@@ -0,0 +1,99 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "singleton"
|
4
|
+
require "nokogiri"
|
5
|
+
|
6
|
+
class Nokogiri::XML::Element
|
7
|
+
|
8
|
+
# <panel name="article">
|
9
|
+
# <panel name="product" caption="Product" position="inside">
|
10
|
+
# <field name="hello" caption="Name"/>
|
11
|
+
# </panel>
|
12
|
+
# </panel>
|
13
|
+
|
14
|
+
# If node is <field name="name" caption="Name"/> then:
|
15
|
+
# - node.value("name") # => hello
|
16
|
+
# - node.value("caption") # => Name
|
17
|
+
# e se voglio in name di panel ?
|
18
|
+
# - node.value("panel.name") # => product
|
19
|
+
# - node.value("panel.panel.name") # => article
|
20
|
+
|
21
|
+
def value(name)
|
22
|
+
tokens = name.split('.')
|
23
|
+
return nil if tokens.empty?
|
24
|
+
return self.parent.value(tokens[1..-1].join('.')) if tokens.length > 2
|
25
|
+
# Se per es. name e' "panel.label" e arriviamo all'elemento panel si deve restituire il valore di label
|
26
|
+
# e se tale elemento non esiste si restituisce nil ma non si deve continare a ricercare tra i genitori
|
27
|
+
return self[tokens[1]] if (tokens.length == 2 and tokens[0] == self.name)
|
28
|
+
return self[name] if self[name]
|
29
|
+
return (self.parent and self.parent.class == Nokogiri::XML::Element) ? self.parent.value(name) : nil
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
class HViewLoader
|
35
|
+
|
36
|
+
include Singleton
|
37
|
+
|
38
|
+
def initialize()
|
39
|
+
@hviews = {} # hypersonic views
|
40
|
+
end
|
41
|
+
|
42
|
+
def viewByFileName(moduleName, filename)
|
43
|
+
|
44
|
+
viewName = filename
|
45
|
+
@hviews[moduleName] = {} unless @hviews[moduleName]
|
46
|
+
return @hviews[moduleName][viewName] if @hviews[moduleName][viewName]
|
47
|
+
@hviews[moduleName][viewName] = Nokogiri::Slop(File.read(filename))
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
def view(moduleName, viewName)
|
52
|
+
|
53
|
+
return self.viewByFileName(moduleName, "#{Dir.pwd}/app/modules/#{moduleName}/#{viewName}/#{viewName}_view.xml")
|
54
|
+
|
55
|
+
end
|
56
|
+
|
57
|
+
def value(fieldName, viewName)
|
58
|
+
|
59
|
+
return self.view(viewName)[fieldName]
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
def viewByType(moduleName, viewName, type)
|
64
|
+
return self.view(moduleName, viewName).xpath("//view[@type='#{type}']//*")
|
65
|
+
end
|
66
|
+
|
67
|
+
def viewParsing(moduleName, viewName, type)
|
68
|
+
|
69
|
+
nodes = []
|
70
|
+
view = self.view(moduleName, viewName).xpath("//view[@type='#{type}']//*")
|
71
|
+
#view = view.xpath(".//*")
|
72
|
+
view.each do |node|
|
73
|
+
p node.name
|
74
|
+
# node[:type]
|
75
|
+
case node.name
|
76
|
+
when "table"
|
77
|
+
puts "table"
|
78
|
+
when "form"
|
79
|
+
puts "form"
|
80
|
+
when "panel"
|
81
|
+
puts "panel"
|
82
|
+
when "field"
|
83
|
+
nodes << node
|
84
|
+
else
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
return nodes
|
89
|
+
|
90
|
+
end
|
91
|
+
|
92
|
+
end
|
93
|
+
|
94
|
+
def hv()
|
95
|
+
|
96
|
+
return HViewLoader.instance()
|
97
|
+
|
98
|
+
end
|
99
|
+
|
data/lib/hinit/hinit.rb
ADDED
@@ -0,0 +1,100 @@
|
|
1
|
+
class String
|
2
|
+
# colorization
|
3
|
+
# http://bitmote.com/index.php?post/2012/11/19/Using-ANSI-Color-Codes-to-Colorize-Your-Bash-Prompt-on-Linux
|
4
|
+
|
5
|
+
def color(code)
|
6
|
+
style = 38
|
7
|
+
resetColor = "\033[m"
|
8
|
+
newColor = "\033[#{style};5;#{code}m"
|
9
|
+
return "#{newColor}#{self}#{resetColor}"
|
10
|
+
end
|
11
|
+
|
12
|
+
def colorize(color_code)
|
13
|
+
"\e[1;#{color_code}m#{self}\e[0m"
|
14
|
+
end
|
15
|
+
|
16
|
+
def white
|
17
|
+
colorize(37)
|
18
|
+
end
|
19
|
+
|
20
|
+
def red
|
21
|
+
colorize(31)
|
22
|
+
end
|
23
|
+
|
24
|
+
def green
|
25
|
+
colorize(32)
|
26
|
+
end
|
27
|
+
|
28
|
+
def yellow
|
29
|
+
colorize(33)
|
30
|
+
end
|
31
|
+
|
32
|
+
def blue
|
33
|
+
colorize(34)
|
34
|
+
end
|
35
|
+
|
36
|
+
def pink
|
37
|
+
colorize(35)
|
38
|
+
end
|
39
|
+
|
40
|
+
def hight_red
|
41
|
+
colorize(91)
|
42
|
+
end
|
43
|
+
|
44
|
+
def hight_green
|
45
|
+
colorize(92)
|
46
|
+
end
|
47
|
+
|
48
|
+
def hight_yellow
|
49
|
+
colorize(93)
|
50
|
+
end
|
51
|
+
|
52
|
+
def hight_blue
|
53
|
+
colorize(94)
|
54
|
+
end
|
55
|
+
|
56
|
+
def hight_purple
|
57
|
+
colorize(95)
|
58
|
+
end
|
59
|
+
|
60
|
+
def hight_cyan
|
61
|
+
colorize(96)
|
62
|
+
end
|
63
|
+
|
64
|
+
def hight_white
|
65
|
+
colorize(97)
|
66
|
+
end
|
67
|
+
|
68
|
+
|
69
|
+
def showColorTable
|
70
|
+
|
71
|
+
puts
|
72
|
+
print " +"
|
73
|
+
for i in 0..35 do
|
74
|
+
print "%3.3s" % "#{i}"
|
75
|
+
end
|
76
|
+
puts
|
77
|
+
puts
|
78
|
+
|
79
|
+
print " 0 "
|
80
|
+
for i in 0..15 do
|
81
|
+
print "\033[48;5;#{i}m \033[m "
|
82
|
+
end
|
83
|
+
puts
|
84
|
+
puts
|
85
|
+
|
86
|
+
for i in 0..6 do
|
87
|
+
i = i * 36 + 16
|
88
|
+
print "%4.4s" % "#{i} "
|
89
|
+
for j in 0..35 do
|
90
|
+
val = i + j
|
91
|
+
print "\033[48;5;#{val}m \033[m "
|
92
|
+
end
|
93
|
+
puts
|
94
|
+
puts
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
98
|
+
|
99
|
+
|
100
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
class HDecoratorFunctions
|
4
|
+
|
5
|
+
def self.numberToMoney(value = "@arg@")
|
6
|
+
|
7
|
+
return value
|
8
|
+
currency = HConfiguration.instance().value("currency").to_sym
|
9
|
+
decimals = HConfiguration.instance().value("decimals")
|
10
|
+
return "ActionController::Base.helpers.number_to_currency(#{value}, precision: #{decimals}, locale: :#{currency}).to_s" if(value == "@arg@")
|
11
|
+
return ActionController::Base.helpers.number_to_currency(value, precision: decimals, locale: currency).to_s
|
12
|
+
end
|
13
|
+
|
14
|
+
end
|
15
|
+
|
data/lib/hmisc/hdir.rb
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
class HDir
|
2
|
+
|
3
|
+
def initialize(pathName)
|
4
|
+
@pathName = pathName
|
5
|
+
end
|
6
|
+
|
7
|
+
def onlyDirectories
|
8
|
+
|
9
|
+
directories = []
|
10
|
+
Dir[@pathName].map do |file|
|
11
|
+
next if File.file?(file)
|
12
|
+
directories << File.basename(file)
|
13
|
+
end
|
14
|
+
|
15
|
+
return directories
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Nokogiri::XML::NodeSet
|
2
|
+
|
3
|
+
def hchildren
|
4
|
+
|
5
|
+
result = []
|
6
|
+
self.children.each do |node|
|
7
|
+
result << node if(node.name != "text")
|
8
|
+
end
|
9
|
+
|
10
|
+
return result
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
|
15
|
+
def to_a_of_h # array of hash
|
16
|
+
|
17
|
+
return self.map { |node| node.to_h.symbolize_keys }
|
18
|
+
# The follow instruction is replaced by that above
|
19
|
+
items = []
|
20
|
+
self.each { |node| items << node.to_h.symbolize_keys }
|
21
|
+
return items
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
|