wirispluginengine 3.62.0.1322 → 7.14.0.1422
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 +4 -4
- data/Rakefile +34 -34
- data/app/assets/javascripts/wirispluginengine/WIRISplugins.js +1040 -64
- data/app/controllers/wirispluginengine/application_controller.rb +84 -75
- data/app/helpers/wirispluginengine/application_helper.rb +4 -4
- data/config/routes.rb +4 -4
- data/lib/com/wiris/common/WInteger.rb +52 -51
- data/lib/com/wiris/plugin/api/Cas.rb +5 -5
- data/lib/com/wiris/plugin/api/CleanCache.rb +5 -5
- data/lib/com/wiris/plugin/api/Configuration.rb +5 -5
- data/lib/com/wiris/plugin/api/ConfigurationKeys.rb +94 -91
- data/lib/com/wiris/plugin/api/Editor.rb +5 -5
- data/lib/com/wiris/plugin/api/Filter.rb +5 -5
- data/lib/com/wiris/plugin/api/ImageFormatController.rb +5 -5
- data/lib/com/wiris/plugin/api/ParamsProvider.rb +5 -5
- data/lib/com/wiris/plugin/api/PluginBuilder.rb +88 -74
- data/lib/com/wiris/plugin/api/Render.rb +5 -5
- data/lib/com/wiris/plugin/api/ServiceResourceLoader.rb +5 -5
- data/lib/com/wiris/plugin/api/Test.rb +5 -5
- data/lib/com/wiris/plugin/api/TextService.rb +5 -5
- data/lib/com/wiris/plugin/configuration/ConfigurationUpdater.rb +5 -5
- data/lib/com/wiris/plugin/impl/CacheFormulaImpl.rb +15 -0
- data/lib/com/wiris/plugin/impl/CacheImpl.rb +124 -0
- data/lib/com/wiris/plugin/impl/CasImpl.rb +140 -138
- data/lib/com/wiris/plugin/impl/CleanCacheImpl.rb +103 -101
- data/lib/com/wiris/plugin/impl/ConfigurationImpl.rb +165 -166
- data/lib/com/wiris/plugin/impl/CustomConfigurationUpdater.rb +32 -30
- data/lib/com/wiris/plugin/impl/DefaultConfigurationUpdater.rb +24 -22
- data/lib/com/wiris/plugin/impl/EditorImpl.rb +80 -78
- data/lib/com/wiris/plugin/impl/FileConfigurationUpdater.rb +29 -27
- data/lib/com/wiris/plugin/impl/FileStorageAndCache.rb +55 -53
- data/lib/com/wiris/plugin/impl/FolderTreeStorageAndCache.rb +65 -134
- data/lib/com/wiris/plugin/impl/GenericParamsProviderImpl.rb +50 -48
- data/lib/com/wiris/plugin/impl/HttpImpl.rb +49 -48
- data/lib/com/wiris/plugin/impl/HttpListener.rb +5 -5
- data/lib/com/wiris/plugin/impl/ImageFormatControllerPng.rb +71 -63
- data/lib/com/wiris/plugin/impl/ImageFormatControllerSvg.rb +37 -28
- data/lib/com/wiris/plugin/impl/PluginBuilderImpl.rb +280 -248
- data/lib/com/wiris/plugin/impl/RenderImpl.rb +303 -257
- data/lib/com/wiris/plugin/impl/ServiceResourceLoaderImpl.rb +41 -39
- data/lib/com/wiris/plugin/impl/TestImpl.rb +177 -157
- data/lib/com/wiris/plugin/impl/TextFilter.rb +210 -194
- data/lib/com/wiris/plugin/impl/TextFilterTags.rb +57 -50
- data/lib/com/wiris/plugin/impl/TextServiceImpl.rb +158 -107
- data/lib/com/wiris/plugin/storage/StorageAndCache.rb +5 -5
- data/lib/com/wiris/util/json/JSon.rb +505 -493
- data/lib/com/wiris/util/json/JSonIntegerFormat.rb +17 -16
- data/lib/com/wiris/util/json/JsonAPIResponse.rb +70 -0
- data/lib/com/wiris/util/json/StringParser.rb +57 -56
- data/lib/com/wiris/util/sys/AccessProvider.rb +8 -0
- data/lib/com/wiris/util/sys/Cache.rb +8 -0
- data/lib/com/wiris/util/sys/HttpConnection.rb +14 -13
- data/lib/com/wiris/util/sys/HttpConnectionListener.rb +5 -5
- data/lib/com/wiris/util/sys/HttpSync.rb +28 -0
- data/lib/com/wiris/util/sys/IniFile.rb +132 -131
- data/lib/com/wiris/util/sys/Lock.rb +8 -0
- data/lib/com/wiris/util/sys/LockProvider.rb +8 -0
- data/lib/com/wiris/util/sys/Store.rb +126 -101
- data/lib/com/wiris/util/sys/StoreCache.rb +63 -0
- data/lib/com/wiris/util/sys/TimerProxy.rb +21 -0
- data/lib/com/wiris/util/sys/TimerTask.rb +8 -0
- data/lib/com/wiris/util/type/Arrays.rb +275 -0
- data/lib/com/wiris/util/type/ByteBuffer.rb +69 -0
- data/lib/com/wiris/util/type/Comparator.rb +8 -0
- data/lib/com/wiris/util/type/DataUtils.rb +24 -0
- data/lib/com/wiris/util/type/DoubleTools.rb +14 -0
- data/lib/com/wiris/util/type/HashCache.rb +43 -0
- data/lib/com/wiris/util/type/IntegerTools.rb +32 -0
- data/lib/com/wiris/util/type/Queue.rb +31 -0
- data/lib/com/wiris/util/type/SortArrayByStringLength.rb +26 -0
- data/lib/com/wiris/util/type/SortStringByLength.rb +26 -0
- data/lib/com/wiris/util/type/SortedHash.rb +45 -0
- data/lib/com/wiris/util/type/Stack.rb +31 -0
- data/lib/com/wiris/util/type/StringUtils.rb +56 -0
- data/lib/com/wiris/util/type/Tokenizer.rb +40 -0
- data/lib/com/wiris/util/type/UrlUtils.rb +78 -0
- data/lib/com/wiris/util/xml/ContentHandler.rb +8 -0
- data/lib/com/wiris/util/xml/DefaultHandler.rb +25 -0
- data/lib/com/wiris/util/xml/EntityResolver.rb +8 -0
- data/lib/com/wiris/util/xml/MathMLEntityResolver.rb +19 -0
- data/lib/com/wiris/util/xml/SAXParser.rb +470 -0
- data/lib/com/wiris/util/xml/SerializableImpl.rb +16 -15
- data/lib/com/wiris/util/xml/WCharacterBase.rb +968 -627
- data/lib/com/wiris/util/xml/WEntities.rb +11 -9
- data/lib/com/wiris/util/xml/WXmlUtils.rb +660 -490
- data/lib/com/wiris/util/xml/XmlSerializer.rb +517 -471
- data/lib/com/wiris/util/xml/XmlWriter.rb +260 -262
- data/lib/loader.rb +15 -12
- data/lib/src-generic/Array.rb +22 -22
- data/lib/src-generic/ArrayInt.rb +31 -31
- data/lib/src-generic/Base64.rb +14 -14
- data/lib/src-generic/BaseCode.rb +93 -93
- data/lib/src-generic/Boolean.rb +27 -0
- data/lib/src-generic/Bytes.rb +50 -50
- data/lib/src-generic/BytesInput.rb +37 -37
- data/lib/src-generic/EReg.rb +55 -55
- data/lib/src-generic/File.rb +35 -35
- data/lib/src-generic/FileLock.rb +26 -26
- data/lib/src-generic/FileSystem.rb +37 -37
- data/lib/src-generic/Hash.rb +42 -42
- data/lib/src-generic/Http.rb +111 -107
- data/lib/src-generic/HttpRequest.rb +25 -25
- data/lib/src-generic/HttpResponse.rb +70 -70
- data/lib/src-generic/Iterator.rb +20 -19
- data/lib/src-generic/Math.rb +14 -14
- data/lib/src-generic/Md5.rb +8 -8
- data/lib/src-generic/Md5Tools.rb +11 -11
- data/lib/src-generic/PropertiesTools.rb +32 -32
- data/lib/src-generic/Reflect.rb +16 -16
- data/lib/src-generic/RubyConfigurationUpdater.rb +49 -45
- data/lib/src-generic/Serializer.rb +84 -84
- data/lib/src-generic/Std.rb +74 -74
- data/lib/src-generic/Storage.rb +152 -152
- data/lib/src-generic/StringBuf.rb +40 -40
- data/lib/src-generic/StringTools.rb +44 -46
- data/lib/src-generic/Timer.rb +6 -6
- data/lib/src-generic/Type.rb +18 -18
- data/lib/src-generic/TypeTools.rb +31 -31
- data/lib/src-generic/Unserializer.rb +72 -72
- data/lib/src-generic/Utf8.rb +26 -26
- data/lib/src-generic/Xml.rb +199 -198
- data/lib/src-generic/extended/Integer.rb +5 -5
- data/lib/src-generic/extended/Math.rb +6 -6
- data/lib/src-generic/extended/Properties.rb +11 -11
- data/lib/src-generic/extended/String.rb +38 -38
- data/lib/src-generic/settings/PlatformSettings.rb +18 -18
- data/lib/src-generic/system/HttpProxy.rb +23 -0
- data/lib/src-generic/system/HttpProxyAuth.rb +10 -0
- data/lib/wirispluginengine.rb +5 -5
- data/lib/wirispluginengine/engine.rb +5 -5
- data/lib/wirispluginengine/integration/cleancache.rb +8 -8
- data/lib/wirispluginengine/integration/configurationjs.rb +8 -15
- data/lib/wirispluginengine/integration/configurationjson.rb +6 -6
- data/lib/wirispluginengine/integration/createimage.rb +7 -7
- data/lib/wirispluginengine/integration/getmathml.rb +18 -18
- data/lib/wirispluginengine/integration/resource.rb +8 -8
- data/lib/wirispluginengine/integration/service.rb +5 -5
- data/lib/wirispluginengine/integration/showimage.rb +28 -21
- data/lib/wirispluginengine/integration/test.rb +5 -5
- data/lib/wirispluginengine/integration/testfilter.rb +10 -0
- data/lib/wirispluginengine/version.rb +2 -2
- data/resources/VERSION +1 -1
- data/resources/WEB-INF/web.xml +25 -0
- data/resources/WIRISplugins.js +3809 -0
- data/resources/default-configuration.ini +47 -45
- data/resources/tech.txt +1 -1
- data/resources/wirisplugin.css +43 -42
- metadata +40 -4
- data/configuration.ini.dist +0 -104
data/lib/src-generic/Storage.rb
CHANGED
@@ -1,153 +1,153 @@
|
|
1
|
-
module Wiris
|
2
|
-
class Storage
|
3
|
-
TYPE_FILE = 0;
|
4
|
-
TYPE_RESOURCE = 1;
|
5
|
-
TYPE_URL =2;
|
6
|
-
@cls = nil
|
7
|
-
@@resourcesDir = nil
|
8
|
-
|
9
|
-
def type=(type)
|
10
|
-
@type = type
|
11
|
-
end
|
12
|
-
def type
|
13
|
-
@type
|
14
|
-
end
|
15
|
-
def file=(file)
|
16
|
-
@file = file
|
17
|
-
end
|
18
|
-
def file
|
19
|
-
@file
|
20
|
-
end
|
21
|
-
def resourceName
|
22
|
-
@resourceName
|
23
|
-
end
|
24
|
-
def resourceName=(resourceName)
|
25
|
-
@resourceName = resourceName
|
26
|
-
end
|
27
|
-
|
28
|
-
def location
|
29
|
-
@location
|
30
|
-
end
|
31
|
-
|
32
|
-
def location=(location)
|
33
|
-
@location = location
|
34
|
-
end
|
35
|
-
|
36
|
-
def self.resourcesDir=(resourcesDir)
|
37
|
-
@@resourcesDir = resourcesDir
|
38
|
-
end
|
39
|
-
def self.resourcesDir
|
40
|
-
@@resourcesDir
|
41
|
-
end
|
42
|
-
|
43
|
-
def initialize(location=nil)
|
44
|
-
if location != nil
|
45
|
-
@location = location
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def self.newStorage(name)
|
50
|
-
s = Storage.new(name)
|
51
|
-
s.type = TYPE_FILE
|
52
|
-
return s
|
53
|
-
end
|
54
|
-
|
55
|
-
def self.newStorageWithParent(parent, name)
|
56
|
-
s = Storage.new(parent.location)
|
57
|
-
s.type = parent.type;
|
58
|
-
if (parent.type == TYPE_FILE)
|
59
|
-
# @file = File.new(File.join(parent.location, name), "w+")
|
60
|
-
# @file.close
|
61
|
-
s.location = File.join(parent.location, name)
|
62
|
-
elsif (parent.type == TYPE_RESOURCE)
|
63
|
-
s.resourceName = parent.resourceName;
|
64
|
-
if (s.resourceName.length() > 0 && !s.resourceName.endsWith("/"))
|
65
|
-
s.resourceName += "/"
|
66
|
-
end
|
67
|
-
s.resourceName += name
|
68
|
-
elsif (parent.type == TYPE_URL)
|
69
|
-
url = Url.new(Url.new(parent.url),name).toExternalForm()
|
70
|
-
end
|
71
|
-
return s
|
72
|
-
end
|
73
|
-
|
74
|
-
def self.newResourceStorage(name)
|
75
|
-
s = Storage.new(File.join(getResourcesDir,name))
|
76
|
-
s.type = TYPE_RESOURCE
|
77
|
-
return s;
|
78
|
-
end
|
79
|
-
|
80
|
-
def read()
|
81
|
-
return File.read(location)
|
82
|
-
end
|
83
|
-
|
84
|
-
def readBinary()
|
85
|
-
s = File.binread(location)
|
86
|
-
return s.bytes.to_a
|
87
|
-
end
|
88
|
-
|
89
|
-
def write(str)
|
90
|
-
writeOrAppend(str, false)
|
91
|
-
end
|
92
|
-
|
93
|
-
def writeBinary(bs)
|
94
|
-
File.open(location, 'wb' ) do |output|
|
95
|
-
output.write bs.pack("C*")
|
96
|
-
end
|
97
|
-
end
|
98
|
-
|
99
|
-
def writeOrAppend(str, append)
|
100
|
-
if (@type == TYPE_RESOURCE)
|
101
|
-
notImplemented()
|
102
|
-
end
|
103
|
-
if (@type == TYPE_URL)
|
104
|
-
notImplemented()
|
105
|
-
end
|
106
|
-
@file = File.new(@location, "w")
|
107
|
-
@file.write(str)
|
108
|
-
@file.close
|
109
|
-
end
|
110
|
-
|
111
|
-
def exists()
|
112
|
-
return File.exists?(location)
|
113
|
-
end
|
114
|
-
|
115
|
-
def mkdirs()
|
116
|
-
if (@type == TYPE_RESOURCE)
|
117
|
-
notImplemented()
|
118
|
-
end
|
119
|
-
if (@type == TYPE_URL)
|
120
|
-
notImplemented()
|
121
|
-
end
|
122
|
-
Dir.mkdir(@location)
|
123
|
-
|
124
|
-
end
|
125
|
-
|
126
|
-
def self.getResourcesDir()
|
127
|
-
if @@resourcesDir.nil?
|
128
|
-
setResourcesDir()
|
129
|
-
end
|
130
|
-
return @@resourcesDir
|
131
|
-
end
|
132
|
-
|
133
|
-
def self.setResourcesDir()
|
134
|
-
@@resourcesDir = File.dirname(__FILE__)
|
135
|
-
end
|
136
|
-
|
137
|
-
def notImplemented()
|
138
|
-
raise Exception,'Error: Operation not available on this Storage'
|
139
|
-
end
|
140
|
-
|
141
|
-
def toString()
|
142
|
-
if type == TYPE_FILE
|
143
|
-
return location.to_s
|
144
|
-
elsif type == TYPE_RESOURCE
|
145
|
-
return resourceName
|
146
|
-
elsif type == TYPE_URL
|
147
|
-
return url
|
148
|
-
else
|
149
|
-
return nil
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
1
|
+
module Wiris
|
2
|
+
class Storage
|
3
|
+
TYPE_FILE = 0;
|
4
|
+
TYPE_RESOURCE = 1;
|
5
|
+
TYPE_URL =2;
|
6
|
+
@cls = nil
|
7
|
+
@@resourcesDir = nil
|
8
|
+
|
9
|
+
def type=(type)
|
10
|
+
@type = type
|
11
|
+
end
|
12
|
+
def type
|
13
|
+
@type
|
14
|
+
end
|
15
|
+
def file=(file)
|
16
|
+
@file = file
|
17
|
+
end
|
18
|
+
def file
|
19
|
+
@file
|
20
|
+
end
|
21
|
+
def resourceName
|
22
|
+
@resourceName
|
23
|
+
end
|
24
|
+
def resourceName=(resourceName)
|
25
|
+
@resourceName = resourceName
|
26
|
+
end
|
27
|
+
|
28
|
+
def location
|
29
|
+
@location
|
30
|
+
end
|
31
|
+
|
32
|
+
def location=(location)
|
33
|
+
@location = location
|
34
|
+
end
|
35
|
+
|
36
|
+
def self.resourcesDir=(resourcesDir)
|
37
|
+
@@resourcesDir = resourcesDir
|
38
|
+
end
|
39
|
+
def self.resourcesDir
|
40
|
+
@@resourcesDir
|
41
|
+
end
|
42
|
+
|
43
|
+
def initialize(location=nil)
|
44
|
+
if location != nil
|
45
|
+
@location = location
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
def self.newStorage(name)
|
50
|
+
s = Storage.new(name)
|
51
|
+
s.type = TYPE_FILE
|
52
|
+
return s
|
53
|
+
end
|
54
|
+
|
55
|
+
def self.newStorageWithParent(parent, name)
|
56
|
+
s = Storage.new(parent.location)
|
57
|
+
s.type = parent.type;
|
58
|
+
if (parent.type == TYPE_FILE)
|
59
|
+
# @file = File.new(File.join(parent.location, name), "w+")
|
60
|
+
# @file.close
|
61
|
+
s.location = File.join(parent.location, name)
|
62
|
+
elsif (parent.type == TYPE_RESOURCE)
|
63
|
+
s.resourceName = parent.resourceName;
|
64
|
+
if (s.resourceName.length() > 0 && !s.resourceName.endsWith("/"))
|
65
|
+
s.resourceName += "/"
|
66
|
+
end
|
67
|
+
s.resourceName += name
|
68
|
+
elsif (parent.type == TYPE_URL)
|
69
|
+
url = Url.new(Url.new(parent.url),name).toExternalForm()
|
70
|
+
end
|
71
|
+
return s
|
72
|
+
end
|
73
|
+
|
74
|
+
def self.newResourceStorage(name)
|
75
|
+
s = Storage.new(File.join(getResourcesDir,name))
|
76
|
+
s.type = TYPE_RESOURCE
|
77
|
+
return s;
|
78
|
+
end
|
79
|
+
|
80
|
+
def read()
|
81
|
+
return File.read(location)
|
82
|
+
end
|
83
|
+
|
84
|
+
def readBinary()
|
85
|
+
s = File.binread(location)
|
86
|
+
return s.bytes.to_a
|
87
|
+
end
|
88
|
+
|
89
|
+
def write(str)
|
90
|
+
writeOrAppend(str, false)
|
91
|
+
end
|
92
|
+
|
93
|
+
def writeBinary(bs)
|
94
|
+
File.open(location, 'wb' ) do |output|
|
95
|
+
output.write bs.pack("C*")
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
def writeOrAppend(str, append)
|
100
|
+
if (@type == TYPE_RESOURCE)
|
101
|
+
notImplemented()
|
102
|
+
end
|
103
|
+
if (@type == TYPE_URL)
|
104
|
+
notImplemented()
|
105
|
+
end
|
106
|
+
@file = File.new(@location, "w")
|
107
|
+
@file.write(str)
|
108
|
+
@file.close
|
109
|
+
end
|
110
|
+
|
111
|
+
def exists()
|
112
|
+
return File.exists?(location)
|
113
|
+
end
|
114
|
+
|
115
|
+
def mkdirs()
|
116
|
+
if (@type == TYPE_RESOURCE)
|
117
|
+
notImplemented()
|
118
|
+
end
|
119
|
+
if (@type == TYPE_URL)
|
120
|
+
notImplemented()
|
121
|
+
end
|
122
|
+
Dir.mkdir(@location)
|
123
|
+
|
124
|
+
end
|
125
|
+
|
126
|
+
def self.getResourcesDir()
|
127
|
+
if @@resourcesDir.nil?
|
128
|
+
setResourcesDir()
|
129
|
+
end
|
130
|
+
return @@resourcesDir
|
131
|
+
end
|
132
|
+
|
133
|
+
def self.setResourcesDir()
|
134
|
+
@@resourcesDir = File.dirname(__FILE__)
|
135
|
+
end
|
136
|
+
|
137
|
+
def notImplemented()
|
138
|
+
raise Exception,'Error: Operation not available on this Storage'
|
139
|
+
end
|
140
|
+
|
141
|
+
def toString()
|
142
|
+
if type == TYPE_FILE
|
143
|
+
return location.to_s
|
144
|
+
elsif type == TYPE_RESOURCE
|
145
|
+
return resourceName
|
146
|
+
elsif type == TYPE_URL
|
147
|
+
return url
|
148
|
+
else
|
149
|
+
return nil
|
150
|
+
end
|
151
|
+
end
|
152
|
+
end
|
153
153
|
end
|
@@ -1,41 +1,41 @@
|
|
1
|
-
require 'stringio'
|
2
|
-
|
3
|
-
module Wiris
|
4
|
-
class StringBuf
|
5
|
-
@sb
|
6
|
-
|
7
|
-
def sb
|
8
|
-
@sb
|
9
|
-
end
|
10
|
-
|
11
|
-
def initialize()
|
12
|
-
@sb = StringIO.new('',"a+") # Append mode
|
13
|
-
end
|
14
|
-
|
15
|
-
def add(o)
|
16
|
-
@sb << o
|
17
|
-
end
|
18
|
-
|
19
|
-
def addChar(c)
|
20
|
-
@sb << c.chr
|
21
|
-
end
|
22
|
-
|
23
|
-
# public void addSub(String s, int pos, int len){
|
24
|
-
# sb.append(s, pos, len+pos);
|
25
|
-
# }
|
26
|
-
|
27
|
-
def toString()
|
28
|
-
return @sb.string
|
29
|
-
end
|
30
|
-
|
31
|
-
def to_s()
|
32
|
-
return @sb.string
|
33
|
-
end
|
34
|
-
# /**
|
35
|
-
# * Not for haxe! Only for C#
|
36
|
-
# * **/
|
37
|
-
# public int length(){
|
38
|
-
# return sb.length();
|
39
|
-
# }
|
40
|
-
end
|
1
|
+
require 'stringio'
|
2
|
+
|
3
|
+
module Wiris
|
4
|
+
class StringBuf
|
5
|
+
@sb
|
6
|
+
|
7
|
+
def sb
|
8
|
+
@sb
|
9
|
+
end
|
10
|
+
|
11
|
+
def initialize()
|
12
|
+
@sb = StringIO.new('',"a+") # Append mode
|
13
|
+
end
|
14
|
+
|
15
|
+
def add(o)
|
16
|
+
@sb << o
|
17
|
+
end
|
18
|
+
|
19
|
+
def addChar(c)
|
20
|
+
@sb << c.chr
|
21
|
+
end
|
22
|
+
|
23
|
+
# public void addSub(String s, int pos, int len){
|
24
|
+
# sb.append(s, pos, len+pos);
|
25
|
+
# }
|
26
|
+
|
27
|
+
def toString()
|
28
|
+
return @sb.string
|
29
|
+
end
|
30
|
+
|
31
|
+
def to_s()
|
32
|
+
return @sb.string
|
33
|
+
end
|
34
|
+
# /**
|
35
|
+
# * Not for haxe! Only for C#
|
36
|
+
# * **/
|
37
|
+
# public int length(){
|
38
|
+
# return sb.length();
|
39
|
+
# }
|
40
|
+
end
|
41
41
|
end
|
@@ -1,46 +1,44 @@
|
|
1
|
-
require '
|
2
|
-
|
3
|
-
|
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
|
-
end
|
46
|
-
end
|
1
|
+
require 'erb'
|
2
|
+
require 'uri'
|
3
|
+
module Wiris
|
4
|
+
class StringTools
|
5
|
+
def self.replace(text, target, replacement)
|
6
|
+
# Block syntax is used due to if we put 'replacement' as a
|
7
|
+
# normal parameter, Ruby interpretes escape characters.
|
8
|
+
text = text.gsub(target) { replacement }
|
9
|
+
return text
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.startsWith(s, start)
|
13
|
+
return s.start_with?(start)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.endsWith(s, ends)
|
17
|
+
return s.end_with?(ends)
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.urlEncode(s)
|
21
|
+
return ERB::Util::url_encode(s);
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.urlDecode(s)
|
25
|
+
return URI.unescape(s)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.trim(s)
|
29
|
+
return s.strip
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.hex(n, digits)
|
33
|
+
hex = n.to_s(16).upcase
|
34
|
+
while hex.length() < digits
|
35
|
+
hex = "0" + hex
|
36
|
+
end
|
37
|
+
return hex.upcase
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.compare(s1,s2)
|
41
|
+
return s1<=>s2
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|