imposition 0.9.0 → 0.9.2

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.
@@ -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