kamila 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|