kamila 1.0.1
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/doc/classes/Array2D.html +221 -0
- data/doc/classes/Array2D.src/M000001.html +19 -0
- data/doc/classes/Array2D.src/M000002.html +18 -0
- data/doc/classes/Array2D.src/M000003.html +18 -0
- data/doc/classes/Array2D.src/M000004.html +23 -0
- data/doc/classes/CfYiyi.html +172 -0
- data/doc/classes/CfYiyi.src/M000011.html +17 -0
- data/doc/classes/CfYiyi.src/M000012.html +26 -0
- data/doc/classes/EscapeShellCmd.html +157 -0
- data/doc/classes/EscapeShellCmd.src/M000013.html +18 -0
- data/doc/classes/Example.html +184 -0
- data/doc/classes/Example.src/M000005.html +17 -0
- data/doc/classes/Example.src/M000006.html +19 -0
- data/doc/classes/Example.src/M000007.html +19 -0
- data/doc/classes/Example.src/M000008.html +20 -0
- data/doc/classes/Method/Overload.html +123 -0
- data/doc/classes/Method/Signature.html +315 -0
- data/doc/classes/Method/Signature.src/M000015.html +20 -0
- data/doc/classes/Method/Signature.src/M000016.html +18 -0
- data/doc/classes/Method/Signature.src/M000017.html +18 -0
- data/doc/classes/Method/Signature.src/M000018.html +18 -0
- data/doc/classes/Method/Signature.src/M000019.html +22 -0
- data/doc/classes/Method/Signature.src/M000020.html +18 -0
- data/doc/classes/Method/Signature.src/M000021.html +21 -0
- data/doc/classes/Method/Signature.src/M000022.html +26 -0
- data/doc/classes/Method/Signature.src/M000023.html +36 -0
- data/doc/classes/Method/Signature.src/M000024.html +18 -0
- data/doc/classes/Method/Signature.src/M000025.html +24 -0
- data/doc/classes/Method/Signature.src/M000026.html +18 -0
- data/doc/classes/Method.html +144 -0
- data/doc/classes/Method.src/M000014.html +33 -0
- data/doc/classes/Module.html +111 -0
- data/doc/classes/MyCGI.html +137 -0
- data/doc/classes/MyCGI.src/M000034.html +18 -0
- data/doc/classes/ScanearDisco.html +251 -0
- data/doc/classes/ScanearDisco.src/M000027.html +24 -0
- data/doc/classes/ScanearDisco.src/M000028.html +28 -0
- data/doc/classes/ScanearDisco.src/M000029.html +52 -0
- data/doc/classes/ScanearDisco.src/M000030.html +19 -0
- data/doc/classes/ScanearDisco.src/M000031.html +48 -0
- data/doc/classes/ScanearDisco.src/M000032.html +40 -0
- data/doc/classes/TestEscapeShellCmd.html +137 -0
- data/doc/classes/TestEscapeShellCmd.src/M000033.html +19 -0
- data/doc/classes/Utilidades.html +173 -0
- data/doc/classes/Utilidades.src/M000009.html +17 -0
- data/doc/classes/Utilidades.src/M000010.html +28 -0
- data/doc/created.rid +1 -0
- data/doc/files/lib/Array2D_rb.html +120 -0
- data/doc/files/lib/cf_yiyi_rb.html +120 -0
- data/doc/files/lib/escape_shell_cmd_rb.html +121 -0
- data/doc/files/lib/mycgi_rb.html +127 -0
- data/doc/files/lib/overload_rb.html +101 -0
- data/doc/files/lib/scanear_disco_rb.html +140 -0
- data/doc/files/lib/utilidades_rb.html +120 -0
- data/doc/files/test/testEscapeShellCmd_rb.html +116 -0
- data/doc/files/test/testmycgi_rb.html +109 -0
- data/doc/files/test/testoverload_rb.html +101 -0
- data/doc/fr_class_index.html +38 -0
- data/doc/fr_file_index.html +36 -0
- data/doc/fr_method_index.html +60 -0
- data/doc/index.html +24 -0
- data/lib/Array2D.rb +33 -0
- data/lib/application.rb +3509 -0
- data/lib/cerrar.sh +2 -0
- data/lib/cf_yiyi.rb +26 -0
- data/lib/escape_shell_cmd.rb +24 -0
- data/lib/kamila.rb +452 -0
- data/lib/mycgi.rb +41 -0
- data/lib/mypdf.rb +215 -0
- data/lib/overload.rb +197 -0
- data/lib/scanear_disco.rb +169 -0
- data/lib/smtp_tls.rb +66 -0
- data/lib/utilidades.rb +29 -0
- data/test/testEscapeShellCmd.rb +12 -0
- metadata +133 -0
data/lib/cerrar.sh
ADDED
data/lib/cf_yiyi.rb
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# /****************************************************************************/
|
|
2
|
+
# /* clase CfYiyi */
|
|
3
|
+
# /* */
|
|
4
|
+
# /* Clase de Control */
|
|
5
|
+
# /****************************************************************************/
|
|
6
|
+
# /*
|
|
7
|
+
# Version: 1.0 en ruby 1.8.x
|
|
8
|
+
# Fecha : 28 de Marzo 2008
|
|
9
|
+
# Autor : Prof. Edgar Gonzalez
|
|
10
|
+
# Email : edgargonzalezmunoz@gmail.com
|
|
11
|
+
# */
|
|
12
|
+
class CfYiyi
|
|
13
|
+
def initialize()
|
|
14
|
+
end
|
|
15
|
+
def control()
|
|
16
|
+
valor = false
|
|
17
|
+
fechatope = "20091231"
|
|
18
|
+
fechaactual = Time.now().strftime("%Y%m%d")
|
|
19
|
+
if fechatope<fechaactual
|
|
20
|
+
puts "No puede usar este componente\nLlamar al Prof. Edgar Gonzalez\nAl telefono: +58 02512591601"
|
|
21
|
+
else
|
|
22
|
+
valor = true
|
|
23
|
+
end
|
|
24
|
+
return valor
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# /****************************************************************************/
|
|
2
|
+
# /* clase EscapeShellCmd */
|
|
3
|
+
# /* */
|
|
4
|
+
# /* Clase que hace igual que el comando: escapeshellcmd de PHP */
|
|
5
|
+
# /****************************************************************************/
|
|
6
|
+
# /*
|
|
7
|
+
# Version : 1.0 en ruby 1.8.x
|
|
8
|
+
# Fecha : 01 de Abril 2008
|
|
9
|
+
# Fuente : http://d.hatena.ne.jp/babie/20051201/p1
|
|
10
|
+
# Adaptacion : Prof. Edgar Gonzalez
|
|
11
|
+
# Email : edgargonzalezmunoz@gmail.com
|
|
12
|
+
# */
|
|
13
|
+
#!ruby
|
|
14
|
+
|
|
15
|
+
class EscapeShellCmd
|
|
16
|
+
def escapeshellcmd(cmd)
|
|
17
|
+
return cmd.gsub(/(["'#&;`|*?~<>^()\[\]{}$\\\x0A\xFF])/) { "" }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
data/lib/kamila.rb
ADDED
|
@@ -0,0 +1,452 @@
|
|
|
1
|
+
# ******************** kamila version 1.0.1 - Framework *********************
|
|
2
|
+
#
|
|
3
|
+
# Copyright (C) 2008 Edgar Gonzalez (egonzale.wordpress.com)
|
|
4
|
+
#
|
|
5
|
+
# This framework is free software; you can redistribute it and/or
|
|
6
|
+
# modify it under the terms of the GNU Lesser General Public
|
|
7
|
+
# License as published by the Free Software Foundation; either
|
|
8
|
+
# version 2.1 of the License, or (at your option) any later version.
|
|
9
|
+
#
|
|
10
|
+
# This framework is distributed in the hope that it will be useful,
|
|
11
|
+
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
12
|
+
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
13
|
+
# Lesser General Public License for more details.
|
|
14
|
+
#
|
|
15
|
+
# You should have received a copy of the GNU Lesser General Public
|
|
16
|
+
# License along with this framework; if not, write to the Free Software
|
|
17
|
+
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
18
|
+
#
|
|
19
|
+
# Este framework es software libre; puedes redistribuirlo y/o modificarlo
|
|
20
|
+
# bajo los terminos de la licencia publica general GNU tal y como fue publicada
|
|
21
|
+
# por la Fundacion del Software Libre; desde la version 2.1 o cualquier
|
|
22
|
+
# versión superior.
|
|
23
|
+
#
|
|
24
|
+
# Este framework es distribuido con la esperanza de ser util pero SIN NINGUN
|
|
25
|
+
# TIPO DE GARANTIA; sin dejar atras su LADO MERCANTIL o PARA FAVORECER ALGUN
|
|
26
|
+
# FIN EN PARTICULAR. Lee la licencia publica general para mas detalles.
|
|
27
|
+
#
|
|
28
|
+
# Debes recibir una copia de la Licencia Publica General GNU junto con este
|
|
29
|
+
# framework, si no es asi, escribe a Fundacion del Software Libre Inc.,
|
|
30
|
+
# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
31
|
+
# ***************************************************************************
|
|
32
|
+
=begin
|
|
33
|
+
Classes : Kamila
|
|
34
|
+
Source : kamila.rb
|
|
35
|
+
Autor : Edgar Gonzalez
|
|
36
|
+
Email : edgargonzalezmunoz@gmail.com
|
|
37
|
+
Blog : egonzale.wordpress.com
|
|
38
|
+
Website : www.myjavaserver.com/~egonzale
|
|
39
|
+
Framework : kamila versión 1.0.1
|
|
40
|
+
Fecha : 18 de Julio del 2008
|
|
41
|
+
=end
|
|
42
|
+
|
|
43
|
+
require 'rubygems' # Libreria de gems rubyforge
|
|
44
|
+
require "mycgi" # Libreria del autor.
|
|
45
|
+
require 'cgi' # Libreria de cgi con ruby.
|
|
46
|
+
require 'cgi/session' # Libreria de cgi con ruby.
|
|
47
|
+
require 'cgi/session/pstore' # Libreria de cgi con ruby.
|
|
48
|
+
require "utilidades" # Libreria autor.
|
|
49
|
+
require "fileutils" # Libreria de ruby
|
|
50
|
+
require 'yaml' # Libreria de ruby
|
|
51
|
+
require "session" # Libreria de terceros
|
|
52
|
+
|
|
53
|
+
class Kamila
|
|
54
|
+
def initialize()
|
|
55
|
+
end
|
|
56
|
+
public
|
|
57
|
+
def Kamila.init()
|
|
58
|
+
# obtener informacion del IP del Servidor y el IP del Cliente
|
|
59
|
+
$kamila_serveraddr = ENV['SERVER_ADDR']
|
|
60
|
+
$kamila_remoteaddr = ENV['REMOTE_ADDR']
|
|
61
|
+
# Obtener la informacion del URL: controlador/accion/parametros y definiendo variables globales
|
|
62
|
+
$kamila_mensaje = String.new
|
|
63
|
+
$kamila_titulo = ""
|
|
64
|
+
$kamila_mensaje = ""
|
|
65
|
+
$kamila_array_items = Array.new()
|
|
66
|
+
$kamila_array_items = ENV['REQUEST_URI'].split('/')
|
|
67
|
+
$kamila_website = $kamila_array_items[1].to_s
|
|
68
|
+
#if ENV['HTTP_REFERER'].to_s != ''
|
|
69
|
+
# $kamila_site = ENV['HTTP_REFERER'].to_s
|
|
70
|
+
#else
|
|
71
|
+
$kamila_site = "http://" + ENV['HTTP_HOST'].to_s + "/"+$kamila_array_items[1].to_s
|
|
72
|
+
#end
|
|
73
|
+
dirHome = Dir.getwd()
|
|
74
|
+
#$kamila_home = ENV['DOCUMENT_ROOT'].to_s
|
|
75
|
+
#Dir.chdir("../")
|
|
76
|
+
$kamila_home = dirHome
|
|
77
|
+
$kamila_home = $kamila_home.to_s
|
|
78
|
+
|
|
79
|
+
# Creando el objeto CGI
|
|
80
|
+
$kamila_cgi = MyCGI.new("html4Tr")
|
|
81
|
+
|
|
82
|
+
# Cargar los mensajes y Validar MVC++
|
|
83
|
+
begin
|
|
84
|
+
if File.exist?($kamila_home+"/config/config.yml")
|
|
85
|
+
kamila_config = YAML.load(File.open($kamila_home+"/config/config.yml"))
|
|
86
|
+
$kamila_MVCPlusPlus = kamila_config["mvcplusplus"]
|
|
87
|
+
$kamila_defaultMessagesType = kamila_config["defaultMessages"]
|
|
88
|
+
if $kamila_defaultMessagesType!=nil
|
|
89
|
+
case $kamila_defaultMessagesType
|
|
90
|
+
when "es"
|
|
91
|
+
$kamila_defaultMessages = kamila_config["spanish"]
|
|
92
|
+
when "en"
|
|
93
|
+
$kamila_defaultMessages = kamila_config["english"]
|
|
94
|
+
when "ruby"
|
|
95
|
+
$kamila_defaultMessages = kamila_config["english"]
|
|
96
|
+
end
|
|
97
|
+
else
|
|
98
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
99
|
+
$kamila_titulo = "Error"
|
|
100
|
+
$kamila_mensaje = "Configuration file config.yml damaged"
|
|
101
|
+
$kamila_linkto = $kamila_site
|
|
102
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
103
|
+
end
|
|
104
|
+
else
|
|
105
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
106
|
+
$kamila_titulo = "Error"
|
|
107
|
+
$kamila_mensaje = "Configuration file config.yml not exist"
|
|
108
|
+
$kamila_linkto = $kamila_site
|
|
109
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
110
|
+
end
|
|
111
|
+
rescue
|
|
112
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
113
|
+
$kamila_titulo = "Error"
|
|
114
|
+
$kamila_mensaje = "Configuration file config.yml damaged"
|
|
115
|
+
$kamila_linkto = $kamila_site
|
|
116
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
117
|
+
end
|
|
118
|
+
if $kamila_defaultMessages==nil
|
|
119
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
120
|
+
$kamila_titulo = "Error"
|
|
121
|
+
$kamila_mensaje = "Configuration file config.yml damaged"
|
|
122
|
+
$kamila_linkto = $kamila_site
|
|
123
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
# Definir Path de la libreria de Kamila para Ubuntu y Familia
|
|
127
|
+
# $kamila_lib = "/usr/lib/ruby/gems/1.8/gems/kamila-1.0.1/lib/"
|
|
128
|
+
if $kamila_scan==nil or $kamila_scan==''
|
|
129
|
+
require 'rubygems'
|
|
130
|
+
require "scanear_disco"
|
|
131
|
+
arregloLOADPATH = $LOAD_PATH
|
|
132
|
+
nodoPATH=nil
|
|
133
|
+
objDir = ScanearDisco.new
|
|
134
|
+
dirActual = arregloLOADPATH[1]
|
|
135
|
+
existe=objDir.scandisco(nodoPATH,dirActual)
|
|
136
|
+
if existe==true
|
|
137
|
+
$kamila_lib = dirActual.to_s + "/"
|
|
138
|
+
else
|
|
139
|
+
$kamila_lib = ""
|
|
140
|
+
end
|
|
141
|
+
$kamila_scan=true
|
|
142
|
+
# Para Debian idea de Marco Antonio Villegas Garcia alumno de laboratorio III, promo 45
|
|
143
|
+
bash = Session::Bash.new
|
|
144
|
+
comando = 'cat /proc/version'
|
|
145
|
+
so = bash.execute comando
|
|
146
|
+
if so.to_s.index('Debian')!=nil
|
|
147
|
+
$kamila_lib = "/var/lib/gems/1.8/gems/kamila-1.0.1/lib/"
|
|
148
|
+
end
|
|
149
|
+
# Faltaria otras distribuciones de Linux
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
# Cargar configuracion del database.yml
|
|
153
|
+
$kamila_mensaje_error_load = "Configuration file database.yml not exist or damaged"
|
|
154
|
+
begin
|
|
155
|
+
$kamila_DatabaseAdapter = ""
|
|
156
|
+
$kamila_DatabaseHost = ""
|
|
157
|
+
$kamila_DatabasePort = ""
|
|
158
|
+
$kamila_DatabaseName = ""
|
|
159
|
+
$kamila_DatabaseUsername = ""
|
|
160
|
+
$kamila_DatabasePassword = ""
|
|
161
|
+
config = YAML.load(File.open($kamila_home+"/config/database.yml"))
|
|
162
|
+
defaultDatabaseDevelopment = config["development"]
|
|
163
|
+
defaultDatabaseTest = config["test"]
|
|
164
|
+
defaultDatabaseProduction = config["production"]
|
|
165
|
+
if defaultDatabaseDevelopment!=nil and defaultDatabaseDevelopment["active"].to_s=="true"
|
|
166
|
+
if defaultDatabaseDevelopment["adapter"]!=nil
|
|
167
|
+
$kamila_DatabaseAdapter = defaultDatabaseDevelopment["adapter"].to_s
|
|
168
|
+
end
|
|
169
|
+
if defaultDatabaseDevelopment["host"]!=nil
|
|
170
|
+
$kamila_DatabaseHost = defaultDatabaseDevelopment["host"].to_s
|
|
171
|
+
end
|
|
172
|
+
if defaultDatabaseDevelopment["port"]!=nil
|
|
173
|
+
$kamila_DatabasePort = defaultDatabaseDevelopment["port"].to_s
|
|
174
|
+
end
|
|
175
|
+
if defaultDatabaseDevelopment["database"]!=nil
|
|
176
|
+
$kamila_DatabaseName = defaultDatabaseDevelopment["database"].to_s
|
|
177
|
+
end
|
|
178
|
+
if defaultDatabaseDevelopment["username"]!=nil
|
|
179
|
+
$kamila_DatabaseUsername = defaultDatabaseDevelopment["username"].to_s
|
|
180
|
+
end
|
|
181
|
+
if defaultDatabaseDevelopment["password"]!=nil
|
|
182
|
+
$kamila_DatabasePassword = defaultDatabaseDevelopment["password"].to_s
|
|
183
|
+
end
|
|
184
|
+
else
|
|
185
|
+
if defaultDatabaseTest!=nil and defaultDatabaseTest["active"].to_s=="true"
|
|
186
|
+
if defaultDatabaseTest["adapter"]!=nil
|
|
187
|
+
$kamila_DatabaseAdapter = defaultDatabaseTest["adapter"].to_s
|
|
188
|
+
end
|
|
189
|
+
if defaultDatabaseTest["host"]!=nil
|
|
190
|
+
$kamila_DatabaseHost = defaultDatabaseTest["host"].to_s
|
|
191
|
+
end
|
|
192
|
+
if defaultDatabaseTest["port"]!=nil
|
|
193
|
+
$kamila_DatabasePort = defaultDatabaseTest["port"].to_s
|
|
194
|
+
end
|
|
195
|
+
if defaultDatabaseTest["database"]!=nil
|
|
196
|
+
$kamila_DatabaseName = defaultDatabaseTest["database"].to_s
|
|
197
|
+
end
|
|
198
|
+
if defaultDatabaseTest["username"]!=nil
|
|
199
|
+
$kamila_DatabaseUsername = defaultDatabaseTest["username"].to_s
|
|
200
|
+
end
|
|
201
|
+
if defaultDatabaseTest["password"]!=nil
|
|
202
|
+
$kamila_DatabasePassword = defaultDatabaseTest["password"].to_s
|
|
203
|
+
end
|
|
204
|
+
else
|
|
205
|
+
if defaultDatabaseProduction!=nil and defaultDatabaseProduction["active"].to_s=="true"
|
|
206
|
+
if defaultDatabaseProduction["adapter"]!=nil
|
|
207
|
+
$kamila_DatabaseAdapter = defaultDatabaseProduction["adapter"].to_s
|
|
208
|
+
end
|
|
209
|
+
if defaultDatabaseProduction["host"]!=nil
|
|
210
|
+
$kamila_DatabaseHost = defaultDatabaseProduction["host"].to_s
|
|
211
|
+
end
|
|
212
|
+
if defaultDatabaseProduction["port"]!=nil
|
|
213
|
+
$kamila_DatabasePort = defaultDatabaseProduction["port"].to_s
|
|
214
|
+
end
|
|
215
|
+
if defaultDatabaseProduction["database"]!=nil
|
|
216
|
+
$kamila_DatabaseName = defaultDatabaseProduction["database"].to_s
|
|
217
|
+
end
|
|
218
|
+
if defaultDatabaseProduction["username"]!=nil
|
|
219
|
+
$kamila_DatabaseUsername = defaultDatabaseProduction["username"].to_s
|
|
220
|
+
end
|
|
221
|
+
if defaultDatabaseProduction["password"]!=nil
|
|
222
|
+
$kamila_DatabasePassword = defaultDatabaseProduction["password"].to_s
|
|
223
|
+
end
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
if $kamila_DatabaseAdapter.length == 0 or $kamila_DatabaseHost.length == 0 or $kamila_DatabasePort.length == 0 or $kamila_DatabaseName.length == 0 or $kamila_DatabaseUsername.length == 0
|
|
228
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
229
|
+
$kamila_titulo = "Error"
|
|
230
|
+
if $kamila_defaultMessagesType.upcase=="RUBY"
|
|
231
|
+
$kamila_mensaje = $!.to_s
|
|
232
|
+
if $kamila_mensaje != ""
|
|
233
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/</,"")
|
|
234
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/>/,"")
|
|
235
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/"/,"'")
|
|
236
|
+
else
|
|
237
|
+
$kamila_mensaje = $kamila_defaultMessages["message016"]
|
|
238
|
+
end
|
|
239
|
+
else
|
|
240
|
+
$kamila_mensaje = $kamila_defaultMessages["message016"]
|
|
241
|
+
end
|
|
242
|
+
$kamila_linkto = $kamila_site
|
|
243
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
244
|
+
end
|
|
245
|
+
rescue
|
|
246
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
247
|
+
$kamila_titulo = "Error"
|
|
248
|
+
if $kamila_defaultMessagesType.upcase=="RUBY"
|
|
249
|
+
$kamila_mensaje = $!.to_s
|
|
250
|
+
if $kamila_mensaje != ""
|
|
251
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/</,"")
|
|
252
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/>/,"")
|
|
253
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/"/,"'")
|
|
254
|
+
else
|
|
255
|
+
$kamila_mensaje = $kamila_defaultMessages["message017"]
|
|
256
|
+
end
|
|
257
|
+
else
|
|
258
|
+
$kamila_mensaje = $kamila_defaultMessages["message017"]
|
|
259
|
+
end
|
|
260
|
+
$kamila_linkto = $kamila_site
|
|
261
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
262
|
+
end
|
|
263
|
+
end
|
|
264
|
+
|
|
265
|
+
def Kamila.dispatcher()
|
|
266
|
+
# obtener informacion del IP del Servidor y el IP del Cliente
|
|
267
|
+
$kamila_serveraddr = ENV['SERVER_ADDR']
|
|
268
|
+
$kamila_remoteaddr = ENV['REMOTE_ADDR']
|
|
269
|
+
# Obtener la informacion del URL: controlador/accion/parametros
|
|
270
|
+
$kamila_array_items = ENV['REQUEST_URI'].split('/')
|
|
271
|
+
$kamila_website = $kamila_array_items[1].to_s
|
|
272
|
+
#if ENV['HTTP_REFERER'].to_s != ''
|
|
273
|
+
# $kamila_site = ENV['HTTP_REFERER'].to_s
|
|
274
|
+
#else
|
|
275
|
+
$kamila_site = "http://" + ENV['HTTP_HOST'].to_s + "/"+$kamila_array_items[1].to_s
|
|
276
|
+
#end
|
|
277
|
+
$kamila_controller = $kamila_array_items[2].to_s
|
|
278
|
+
$kamila_action = $kamila_array_items[3].to_s
|
|
279
|
+
$kamila_params_get = $kamila_array_items[4].to_s
|
|
280
|
+
# Cargar los controladores existentes en kamila/controllers
|
|
281
|
+
$kamila_controller_exist = false
|
|
282
|
+
Dir.chdir($kamila_home+"/controllers/")
|
|
283
|
+
archivos = Dir.glob('*')
|
|
284
|
+
objUtilidades = Utilidades.new()
|
|
285
|
+
$kamila_array_controllers = Array.new()
|
|
286
|
+
if (archivos.size()-1>=0)
|
|
287
|
+
j = archivos.size()-1
|
|
288
|
+
for i in 0..j
|
|
289
|
+
$kamila_array_controllers[i] = objUtilidades.getNombreArchivo(archivos[i].to_s)
|
|
290
|
+
if $kamila_array_controllers[i] == $kamila_controller+".rb"
|
|
291
|
+
$kamila_controller_exist = true
|
|
292
|
+
end
|
|
293
|
+
end
|
|
294
|
+
end
|
|
295
|
+
#print "ejecutar el controlador " + $kamila_controller + ", la accion " + $kamila_action + " y parametros: "+ $kamila_params + "<br/>"
|
|
296
|
+
$kamila_mensaje_error_load = "Error not found..."
|
|
297
|
+
$kamila_mensaje = String.new
|
|
298
|
+
begin
|
|
299
|
+
if $kamila_controller_exist
|
|
300
|
+
# Cargar el Controlador
|
|
301
|
+
begin
|
|
302
|
+
require $kamila_home + '/controllers/' + $kamila_controller
|
|
303
|
+
rescue
|
|
304
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
305
|
+
$kamila_titulo = "Error"
|
|
306
|
+
if $kamila_defaultMessagesType.upcase=="RUBY"
|
|
307
|
+
$kamila_mensaje = $!.to_s
|
|
308
|
+
if $kamila_mensaje != ""
|
|
309
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/</,"")
|
|
310
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/>/,"")
|
|
311
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/"/,"'")
|
|
312
|
+
else
|
|
313
|
+
$kamila_mensaje = $kamila_defaultMessages["message003"] + " " + $kamila_controller
|
|
314
|
+
end
|
|
315
|
+
else
|
|
316
|
+
$kamila_mensaje = $kamila_defaultMessages["message003"] + " " + $kamila_controller
|
|
317
|
+
end
|
|
318
|
+
$kamila_linkto = $kamila_site
|
|
319
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
320
|
+
end
|
|
321
|
+
$kamila_controller_class = $kamila_controller.capitalize()
|
|
322
|
+
begin
|
|
323
|
+
$kamila_controller_object = Module::const_get("#{$kamila_controller_class}").new
|
|
324
|
+
rescue
|
|
325
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
326
|
+
$kamila_titulo = "Error"
|
|
327
|
+
if $kamila_defaultMessagesType.upcase=="RUBY"
|
|
328
|
+
$kamila_mensaje = $!.to_s
|
|
329
|
+
if $kamila_mensaje != ""
|
|
330
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/</,"")
|
|
331
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/>/,"")
|
|
332
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/"/,"'")
|
|
333
|
+
else
|
|
334
|
+
$kamila_mensaje = $kamila_defaultMessages["message004"]+ " " + $kamila_controller_class + " " +$kamila_defaultMessages["message008"] + " " + $kamila_controller
|
|
335
|
+
end
|
|
336
|
+
else
|
|
337
|
+
$kamila_mensaje = $kamila_defaultMessages["message004"]+ " " + $kamila_controller_class + " " +$kamila_defaultMessages["message008"] + " " + $kamila_controller
|
|
338
|
+
end
|
|
339
|
+
$kamila_linkto = $kamila_site
|
|
340
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
if $kamila_action !=""
|
|
344
|
+
begin
|
|
345
|
+
$kamila_controller_object.send($kamila_action)
|
|
346
|
+
rescue
|
|
347
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
348
|
+
$kamila_titulo = "Error"
|
|
349
|
+
#$kamila_mensaje = "Método " + $kamila_action +" no existe para el controlador " + $kamila_controller
|
|
350
|
+
if $kamila_defaultMessagesType.upcase=="RUBY"
|
|
351
|
+
$kamila_mensaje = $!.to_s
|
|
352
|
+
if $kamila_mensaje != ""
|
|
353
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/</,"")
|
|
354
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/>/,"")
|
|
355
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/"/,"'")
|
|
356
|
+
else
|
|
357
|
+
$kamila_mensaje = $kamila_defaultMessages["message005"] + " " + $kamila_action + " " +$kamila_defaultMessages["message008"] + " " + $kamila_controller
|
|
358
|
+
end
|
|
359
|
+
else
|
|
360
|
+
$kamila_mensaje = $kamila_defaultMessages["message005"] + " " + $kamila_action + " " +$kamila_defaultMessages["message008"] + " " + $kamila_controller
|
|
361
|
+
end
|
|
362
|
+
$kamila_linkto = $kamila_site
|
|
363
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
364
|
+
end
|
|
365
|
+
else
|
|
366
|
+
begin
|
|
367
|
+
$kamila_action = "index"
|
|
368
|
+
$kamila_controller_object.send($kamila_action)
|
|
369
|
+
rescue
|
|
370
|
+
#rescue Exception => e
|
|
371
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
372
|
+
$kamila_titulo = "Error"
|
|
373
|
+
#$kamila_mensaje = "Método " + $kamila_action +" no existe para el controlador " + $kamila_controller
|
|
374
|
+
#$kamila_mensaje = "#{ e } (#{ e.class })!"
|
|
375
|
+
if $kamila_defaultMessagesType.upcase=="RUBY"
|
|
376
|
+
$kamila_mensaje = $!.to_s
|
|
377
|
+
if $kamila_mensaje != ""
|
|
378
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/</,"")
|
|
379
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/>/,"")
|
|
380
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/"/,"'")
|
|
381
|
+
else
|
|
382
|
+
$kamila_mensaje = $kamila_defaultMessages["message005"] + " " + $kamila_action + " " +$kamila_defaultMessages["message006"] +" "+ $kamila_controller_class + " " + $kamila_defaultMessages["message008"] + " " + $kamila_controller
|
|
383
|
+
end
|
|
384
|
+
else
|
|
385
|
+
$kamila_mensaje = $kamila_defaultMessages["message005"] + " " + $kamila_action + " " +$kamila_defaultMessages["message006"] +" "+ $kamila_controller_class + " " + $kamila_defaultMessages["message008"] + " " + $kamila_controller
|
|
386
|
+
end
|
|
387
|
+
$kamila_linkto = $kamila_site
|
|
388
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
389
|
+
end
|
|
390
|
+
end
|
|
391
|
+
|
|
392
|
+
else
|
|
393
|
+
if ($kamila_controller=="public" or $kamila_controller=="") and ($kamila_action =="index.rhtml" or $kamila_action =="index" or $kamila_action =="")
|
|
394
|
+
$kamila_cgi.redirect($kamila_site+"/public/kamila_index.html")
|
|
395
|
+
else
|
|
396
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
397
|
+
$kamila_titulo = "Error"
|
|
398
|
+
#$kamila_mensaje = "Controlador " + $kamila_controller + " y/o Método " + $kamila_action + " no existe"
|
|
399
|
+
if $kamila_defaultMessagesType.upcase=="RUBY"
|
|
400
|
+
$kamila_mensaje = $!.to_s
|
|
401
|
+
if $kamila_mensaje != ""
|
|
402
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/</,"")
|
|
403
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/>/,"")
|
|
404
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/"/,"'")
|
|
405
|
+
else
|
|
406
|
+
$kamila_mensaje = $kamila_defaultMessages["message007"] + " " + $kamila_controller
|
|
407
|
+
end
|
|
408
|
+
else
|
|
409
|
+
$kamila_mensaje = $kamila_defaultMessages["message007"] + " " + $kamila_controller
|
|
410
|
+
end
|
|
411
|
+
$kamila_linkto = $kamila_site
|
|
412
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
413
|
+
end
|
|
414
|
+
end
|
|
415
|
+
rescue
|
|
416
|
+
$kamila_icon_mensaje = "Ext.MessageBox.ERROR"
|
|
417
|
+
$kamila_titulo = "Error"
|
|
418
|
+
if $kamila_defaultMessagesType.upcase=="RUBY"
|
|
419
|
+
$kamila_mensaje = $!.to_s
|
|
420
|
+
if $kamila_mensaje != ""
|
|
421
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/</,"")
|
|
422
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/>/,"")
|
|
423
|
+
$kamila_mensaje = $kamila_mensaje.gsub(/"/,"'")
|
|
424
|
+
else
|
|
425
|
+
$kamila_mensaje = $kamila_mensaje_error_load
|
|
426
|
+
end
|
|
427
|
+
else
|
|
428
|
+
$kamila_mensaje = $kamila_mensaje_error_load
|
|
429
|
+
end
|
|
430
|
+
$kamila_linkto = $kamila_site
|
|
431
|
+
$kamila_cgi.redirect($kamila_site+"/public/message/message.rhtml")
|
|
432
|
+
end
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
def Kamila.close_sesion()
|
|
436
|
+
$kamila_sesion.close
|
|
437
|
+
if PLATFORM == "i386-mswin32" # Windows
|
|
438
|
+
comando = "dir"
|
|
439
|
+
require "win32ole"
|
|
440
|
+
comando.gsub('/','\\')
|
|
441
|
+
system(comando)
|
|
442
|
+
else # PLATFORM == "i486-linux" # Linux
|
|
443
|
+
#File.chmod(0777,'/tmp/kamila.*')
|
|
444
|
+
comando = 'rm /tmp/kamila.*'
|
|
445
|
+
require "session"
|
|
446
|
+
bash = Session::Bash.new
|
|
447
|
+
bash.execute comando
|
|
448
|
+
bash = nil
|
|
449
|
+
end
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
end
|
data/lib/mycgi.rb
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# /****************************************************************************/
|
|
2
|
+
# /* clase MyCGI */
|
|
3
|
+
# /* */
|
|
4
|
+
# /* Clase que agrega el metodo redirect */
|
|
5
|
+
# /****************************************************************************/
|
|
6
|
+
# /*
|
|
7
|
+
# Version: 1.0 en ruby 1.8.x
|
|
8
|
+
# Fecha : 8 de Abril 2008
|
|
9
|
+
# Autor : Bob Calco
|
|
10
|
+
# email : robert.calco verizon.net
|
|
11
|
+
# */
|
|
12
|
+
##############################################################################################
|
|
13
|
+
# Solucion para el .htaccess: #
|
|
14
|
+
# http://drupal.org/node/209162 #
|
|
15
|
+
# http://www.estadobeta.com/2007/04/27/ruby-on-rails-apache-y-cache-para-multiples-dominios/ #
|
|
16
|
+
# Permitir ejecución de scripts CGI y no presentar indice de directorios #
|
|
17
|
+
# Options +ExecCGI -Indexes #
|
|
18
|
+
# #Para Windows Wamp #
|
|
19
|
+
# #ScriptInterpreterSource registry #
|
|
20
|
+
# <IfModule mod_rewrite.c> #
|
|
21
|
+
# # Configuración del Framework Kamila #
|
|
22
|
+
# RewriteEngine on #
|
|
23
|
+
# RewriteCond %{REQUEST_FILENAME} !-f #
|
|
24
|
+
# RewriteCond %{REQUEST_FILENAME} !-d #
|
|
25
|
+
# #RewriteRule ^(.*)$ public/ [L,QSA] #
|
|
26
|
+
# RewriteRule ^(.*)$ index.rhtml [QSA,L] #
|
|
27
|
+
# # Descomentar alguna regla, si deseas desactivar #
|
|
28
|
+
# # alguna carpeta del Framework Kamila #
|
|
29
|
+
# #RewriteRule ^(controllers)/$ - [F] #
|
|
30
|
+
# #RewriteRule ^(models)/$ - [F] #
|
|
31
|
+
# #RewriteRule ^(views)/$ - [F] #
|
|
32
|
+
# </IfModule> #
|
|
33
|
+
##############################################################################################
|
|
34
|
+
require 'cgi'
|
|
35
|
+
require 'cgi/session'
|
|
36
|
+
|
|
37
|
+
class MyCGI < CGI
|
|
38
|
+
def redirect( where )
|
|
39
|
+
print header( { 'Status' => '302 Moved', 'location' => where } )
|
|
40
|
+
end
|
|
41
|
+
end
|