imposition 0.9.0 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -94,15 +94,18 @@ end
94
94
  ########
95
95
  #CONSOLA
96
96
  #
97
- entrada=ARGV.shift
97
+ $entrada=ARGV.shift
98
98
  $salida=ARGV.shift
99
- check=Metodos.checksRun()
99
+ #
100
+ Metodos.refresh()
101
+ #
102
+ check=Metodos.checksRun($entrada,$salida)
100
103
  if check.instance_of? Clases::Mensaje then
101
104
  puts check.mensaje
102
105
  exit
103
106
  end
104
107
  #
105
- puts "::::::::::::impostor::::::::::::"#blink blink
108
+ puts "::::::::::impostor 9.2:::::::::::"#blink blink
106
109
  #
107
110
  w_=input("w:")
108
111
  h_=input("h:")
@@ -115,7 +118,7 @@ nPliegos_=input("nPliegos:")
115
118
  cuadernillos = enBooklets()
116
119
  #
117
120
  def recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos, preguntas)
118
- impostor=Metodos.funcionar(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,preguntas)
121
+ impostor=Metodos.funcionar(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,preguntas,$temp)
119
122
  if impostor.preguntasOk then
120
123
  if impostor.valido then
121
124
  puts "::::::::::::mensajes:::::::::::::"#blink blink
@@ -159,12 +162,17 @@ def recursivo(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos, preguntas)
159
162
  end
160
163
  end
161
164
  recursivo(w_,h_,wP_,hP_,nX_,nY_,nPaginas_,nPliegos_,cuadernillos, nil)
165
+ #lo devuelvo
166
+ if $salida == nil then
167
+ $salida=$entrada
168
+ end
169
+ FileUtils.mv(File.dirname($temp)+"/"+"cutStack.pdf", $salida)
162
170
  #
163
171
  puts "::::::::::::Game Over::::::::::::"#blink blink
164
172
  ensure
165
173
  #limpio todo, aunque se caiga
166
- if $dir!=nil then
167
- `rm -r #{$dir}`
174
+ if File.dirname($temp)!=nil then
175
+ `rm -r #{File.dirname($temp)}`
168
176
  end
169
177
  end
170
178
  #GAME OVER
@@ -272,8 +272,12 @@ end
272
272
  class Pregunta
273
273
  attr_accessor :ok, :yn, :mensaje
274
274
  attr_reader :ide
275
- def initialize(mensaje)
276
- @mensaje=mensaje
275
+ def initialize(arg)
276
+ if arg.instance_of? String then
277
+ @mensaje=arg
278
+ else
279
+ @ide=arg
280
+ end
277
281
  end
278
282
  def metodo()
279
283
  end
@@ -313,14 +317,16 @@ end
313
317
  #
314
318
  class PreguntaEscalado < Pregunta
315
319
  attr_accessor :tipo
316
- def initialize(tipo)
317
- @mensaje="en duro"
320
+ def initialize(tipo)
318
321
  @tipo=tipo
319
- if @tipo=="horizontal" then
322
+ if @tipo=="horizontalmente" then
320
323
  @ide=1
321
- elsif @tipo=="vertical" then
324
+ @mensaje="no especifico ancho de pagina pero si ancho de pliego y numero de paginas por pliego "+tipo
325
+ elsif @tipo=="verticalmente" then
322
326
  @ide=2
327
+ @mensaje="no especifico alto de pagina pero si alto de pliego y numero de paginas por pliego "+tipo
323
328
  end
329
+ @mensaje+=" ¿escalar "+tipo+"?"
324
330
  end
325
331
  def metodo(yn)
326
332
  @yn=yn
@@ -1,34 +1,28 @@
1
1
  module Metodos
2
2
 
3
3
  #WORK
4
- def funcionar(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,preguntas)
4
+ def funcionar(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos,preguntas,temp)
5
5
  impostor=Clases::Imposicion.new(w_,h_,wP_,hP_,nX,nY,nPaginas,nPliegos,cuadernillos)
6
- pdfinfo(impostor, $temp)
6
+ pdfinfo(impostor,temp)
7
7
  retorno=validacion(impostor, preguntas)
8
8
  if retorno.preguntasOk then
9
9
  retorno.mensajes.push(Clases::MensajeVars.new(1,impostor.to_s))
10
10
  if impostor.cuadernillos then
11
- retorno.mensajes.push(imponerBooklet(impostor, $temp))
11
+ retorno.mensajes.push(imponerBooklet(impostor,temp))
12
12
  end
13
- retorno.mensajes.push(imponerStack(impostor, $temp))
14
- #lo devuelvo
15
- if $salida == nil then
16
- $salida=$entrada
17
- end
18
- FileUtils.mv($dir+"/"+"cutStack.pdf", $salida)
13
+ retorno.mensajes.push(imponerStack(impostor,temp))
19
14
  end
20
15
  return retorno
21
16
  end
22
17
 
23
18
  def checksCompile()
24
- #paquetes
19
+ #paquetes necesarios
25
20
  $requerimientos.each do |k,v|
26
21
  `which #{v}`
27
22
  if !$?.success? then
28
23
  return Clases::Mensaje.new(3,"#{v} no es ejecutable")
29
24
  end
30
25
  end
31
- #archivos
32
26
  #probamos que exista el directorio de trabajo
33
27
  if File.exists?($work) then
34
28
  #y que sea escribible
@@ -37,10 +31,6 @@ def checksCompile()
37
31
  if !File.exists?($work) then
38
32
  Dir.mkdir($work)
39
33
  end
40
- #creo mi directorio
41
- $dir=$work+"/"+UUIDTools::UUID.random_create
42
- Dir.mkdir($dir)
43
- $codeDir = Dir.pwd
44
34
  else
45
35
  return Clases::Mensaje.new(3,"el directorio de trabajo "+$work+" no se puede escribir")
46
36
  end
@@ -49,33 +39,30 @@ def checksCompile()
49
39
  end
50
40
  end
51
41
 
52
- def checksRun()
42
+ def checksRun(entrada,salida)
53
43
  #la entrada
54
- if $entrada != nil then
55
- if File.file?($entrada) then
56
- if File.owned?($entrada) then
44
+ if entrada != nil then
45
+ if File.file?(entrada) then
46
+ if File.owned?(entrada) then
57
47
  busca = /.*(.pdf)/
58
- if busca.match(File.basename($entrada)) then
59
- $temp=$dir+"/"+File.basename($entrada)#me lo llevo
60
- FileUtils.cp($entrada, $temp)
61
- else
62
- return Clases::Mensaje.new(3,"el archivo "+$entrada+" no es pdf")
48
+ if !busca.match(File.basename(entrada)) then
49
+ return Clases::Mensaje.new(3,"el archivo "+entrada+" no es pdf")
63
50
  end
64
51
  else
65
- return Clases::Mensaje.new(3,"el archivo "+$entrada+" no es mío")
52
+ return Clases::Mensaje.new(3,"el archivo "+entrada+" no es mío")
66
53
  end
67
54
  else
68
- return Clases::Mensaje.new(3,$entrada+" no es un archivo")
55
+ return Clases::Mensaje.new(3,entrada+" no es un archivo")
69
56
  end
70
57
  else
71
58
  return Clases::Mensaje.new(3,"no ha especificado archivo a imponer")
72
59
  end
73
60
  #y la salida, de haberla
74
- if $salida!=nil then
61
+ if salida!=nil then
75
62
  #if File.exists?(salida) then #TODO crearla si es escribible
76
- salidaDir=File.dirname($salida)
63
+ salidaDir=File.dirname(salida)
77
64
  if !File.writable?(salidaDir) or !File.writable_real?(salidaDir) then
78
- return Clases::Mensaje.new(3,"el directorio de salida "+$salida+" no se puede escribir")
65
+ return Clases::Mensaje.new(3,"el directorio de salida "+salida+" no se puede escribir")
79
66
  end
80
67
  #else
81
68
  # puts salida+ " no existe"
@@ -95,11 +82,20 @@ def input2alchemist(unidad)
95
82
  end
96
83
  end
97
84
 
85
+ #permite globales porque se encapsula logica de test y ejecutable
86
+ def refresh
87
+ dir=$work+"/"+UUIDTools::UUID.random_create
88
+ Dir.mkdir(dir)
89
+ $codeDir = Dir.pwd
90
+ $temp=dir+"/"+File.basename($entrada)#me lo llevo
91
+ FileUtils.cp($entrada, $temp)
92
+ end
93
+
98
94
  #########
99
- module_function :funcionar, :checksCompile, :checksRun, :input2alchemist
95
+ module_function :funcionar, :checksCompile, :checksRun, :input2alchemist, :refresh
100
96
 
101
97
  def self.pdfinfo(impostor, temp)
102
- Dir.chdir($dir)
98
+ Dir.chdir(File.dirname(temp))
103
99
  pdfinfo = `#{$requerimientos["pdfinfo"]} -box #{temp}`
104
100
  impostor.nPaginasReal=paginasdelpdf(pdfinfo)
105
101
  impostor.size=Metodos.pagesize(pdfinfo)
@@ -141,7 +137,7 @@ def self.pagesize(pdfinfo)
141
137
  return retorno
142
138
  end
143
139
 
144
- def self.imponerStack(impostor, temp)
140
+ def self.imponerStack(impostor,temp)
145
141
 
146
142
  wPC=pdflatexUnit(impostor.wP, impostor.wP_["unidad"])
147
143
  impostor.wP=wPC[0]
@@ -165,7 +161,7 @@ def self.imponerStack(impostor, temp)
165
161
  end
166
162
  cS=cS.join(",")
167
163
 
168
- cutted=$dir+"/"+"cutStack.tex"
164
+ cutted=File.dirname(temp)+"/"+"cutStack.tex"
169
165
  File.open(cutted, 'w') do |cutStack|
170
166
  cutStack.puts "\\documentclass{report}"
171
167
  cutStack.puts "\\usepackage{pdfpages}"
@@ -188,7 +184,7 @@ def self.imponerStack(impostor, temp)
188
184
  end
189
185
 
190
186
  #LaTeX
191
- Dir.chdir($dir)
187
+ Dir.chdir(File.dirname(temp))
192
188
  tIni=Time.now
193
189
  pdflatex=`#{$requerimientos["pdflatex"]} #{cutted}`
194
190
  tFin=Time.now
@@ -201,7 +197,7 @@ end
201
197
 
202
198
  #TODO 1 sola vez pdflatex?
203
199
 
204
- def self.imponerBooklet(impostor, archivo)
200
+ def self.imponerBooklet(impostor,temp)
205
201
  #unidades latex
206
202
  wC=pdflatexUnit(impostor.w_["numero"], impostor.w_["unidad"])
207
203
  impostor.w=wC[0]
@@ -211,7 +207,7 @@ def self.imponerBooklet(impostor, archivo)
211
207
  impostor.h_["unidad"]=hC[1]
212
208
 
213
209
  wDummy=impostor.w_["numero"].to_f#bug alchemist
214
- pierpa=$dir+"/"+"booKlet.tex"
210
+ pierpa=File.dirname(temp)+"/"+"booKlet.tex"
215
211
  File.open(pierpa, 'w') do |booklet|
216
212
  booklet.puts "\\documentclass{report}"
217
213
  booklet.puts "\\usepackage{pdfpages}"
@@ -229,18 +225,18 @@ def self.imponerBooklet(impostor, archivo)
229
225
  booklet.puts "marginpar=0mm"
230
226
  booklet.puts "}"
231
227
  booklet.puts "\\begin{document}"
232
- booklet.puts "\\includepdf[pages={#{impostor.bookletz.join(",")}},nup=2x1,noautoscale,width=#{wDummy/2}#{impostor.w_["unidad"]}, height=#{impostor.h_["numero"]}#{impostor.h_["unidad"]}]{#{archivo}}"
228
+ booklet.puts "\\includepdf[pages={#{impostor.bookletz.join(",")}},nup=2x1,noautoscale,width=#{wDummy/2}#{impostor.w_["unidad"]}, height=#{impostor.h_["numero"]}#{impostor.h_["unidad"]}]{#{temp}}"
233
229
  booklet.puts "\\end{document}"
234
230
  end
235
231
  #LaTeX
236
- Dir.chdir($dir)
232
+ Dir.chdir(File.dirname(temp))
237
233
  tIni=Time.now
238
234
  pdflatex=`#{$requerimientos["pdflatex"]} #{pierpa}`
239
235
  tFin=Time.now
240
236
  t=tFin-tIni
241
237
  Dir.chdir($codeDir)
242
238
  #lo devuelvo
243
- FileUtils.mv($dir+"/"+"booKlet.pdf", archivo)
239
+ FileUtils.mv(File.dirname(temp)+"/"+"booKlet.pdf", temp)
244
240
  #retorno
245
241
  return Clases::MensajeTiempo.new(1,t)
246
242
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: imposition
3
3
  version: !ruby/object:Gem::Version
4
- hash: 59
4
+ hash: 63
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 0
10
- version: 0.9.0
9
+ - 2
10
+ version: 0.9.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Numerico