limarka 0.6.4 → 0.6.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e80dfd0083b8c812e3e18a87a5a7be782af7cd17
4
- data.tar.gz: afdfd32814f5ae0b81ebf69c242cfb4b32bffdad
3
+ metadata.gz: 69320eab968ea33365d7a9a347f289130571b284
4
+ data.tar.gz: 9a10d6489984755eaf4ae8349a722e67ad9a6b36
5
5
  SHA512:
6
- metadata.gz: dd8ba50b21f7bbab31d65f29e179989cd01d35fddbbc290ec985c67ab4d451affd9cbafe5fa2ec3b941eb99c48bc456992dc21672dddbc6cb902a2ab65bdeb96
7
- data.tar.gz: 3a48ac85cbd764a260524ba2d4a194e4e838dc274ccb1d6c49b5804ee3cd6dde04a53d86e35fbb6c5cc32a6f700699d0a7a3d0998fe3985ce002e6a5f480efd2
6
+ metadata.gz: afae1b22f9f82fa1c01767f62bd08c13669f208e2e00002d252688795c265e6c90c4caeb13864681d72bb3e41ad23c376a4923a498e401c899d9bc8c94dfe14b
7
+ data.tar.gz: 3f06293cf304e34e6256c10292000027f2b9731026c82fc3d3518469d96a04d09b97900de0339ea5933bdc85e859cb8e76fec475daee1ed0ffbbb5df6b185f95
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Change Log
2
2
 
3
+ ## [v0.6.5](https://github.com/abntex/limarka/tree/v0.6.5) (2017-01-16)
4
+ [Full Changelog](https://github.com/abntex/limarka/compare/v0.6.4...v0.6.5)
5
+
6
+ **Melhorias implementadas:**
7
+
8
+ - Documentação da API [\#121](https://github.com/abntex/limarka/issues/121)
9
+
3
10
  ## [v0.6.4](https://github.com/abntex/limarka/tree/v0.6.4) (2017-01-16)
4
11
  [Full Changelog](https://github.com/abntex/limarka/compare/v0.6.3...v0.6.4)
5
12
 
@@ -19,5 +19,5 @@
19
19
  "keywords": "limarka,ABNT,markdown,dissertation,thesis",
20
20
  "license": "MIT",
21
21
  "title": "limarka",
22
- "version": "v0.6.4"
22
+ "version": "v0.6.5"
23
23
  }
data/lib/limarka/cli.rb CHANGED
@@ -13,6 +13,12 @@ require 'terminal-table'
13
13
 
14
14
  module Limarka
15
15
 
16
+ # Essa classe é responsável por interpretar e executar os comandos de linha
17
+ # da ferramenta. Para compreender sua utilização recomendo consultar a
18
+ # documentação do [thor](http://whatisthor.com).
19
+ #
20
+ # @author Eduardo de Santana Medeiros Alexandre
21
+ #
16
22
  class Cli < Thor
17
23
  include Thor::Actions
18
24
 
@@ -8,6 +8,10 @@ require 'open3'
8
8
 
9
9
  module Limarka
10
10
 
11
+ # Representa os comandos de linha sobre configuracao.
12
+ #
13
+ # Invoque `limarka help configuracao` para verificar os comandos.
14
+ # @see Cli
11
15
  class Configuracao < Thor
12
16
 
13
17
  method_option :output_dir, :aliases => '-o', :desc => 'Diretório onde será salvo a exportação', :default => '.'
@@ -10,9 +10,13 @@ require 'bibtex'
10
10
 
11
11
  module Limarka
12
12
 
13
+ # Essa class é responsável por ser a abstração de converter o arquivo
14
+ # em Markdown para Latex.
13
15
  class Conversor
14
- # trabalho
16
+ # o trabalho
15
17
  attr_accessor :t
18
+ # opções de execução
19
+ # @see Cli
16
20
  attr_accessor :options
17
21
  attr_accessor :pretextual_tex
18
22
  attr_accessor :postextual_tex
@@ -27,7 +31,7 @@ module Limarka
27
31
  end
28
32
 
29
33
 
30
- ## Cria o arquivo
34
+ ## Converte o trabalho para Latex
31
35
  def convert()
32
36
  FileUtils.mkdir_p(options[:output_dir])
33
37
 
@@ -73,6 +77,8 @@ module Limarka
73
77
 
74
78
  PRETEXTUAL = "templates/pretextual.tex"
75
79
 
80
+ # Escreve no arquivo o conteúdo gerado referente ao pretextual do documento.
81
+ # @param tempfile arquivo onde será escrito
76
82
  def pretextual(tempfile)
77
83
  s = StringIO.new
78
84
  necessita_de_arquivo_de_texto = ["errata"]
@@ -100,6 +106,8 @@ module Limarka
100
106
  end
101
107
 
102
108
  POSTEXTUAL = "templates/postextual.tex"
109
+ # Escreve no arquivo o conteúdo gerado referente ao pós-textual do documento.
110
+ # @param tempfile arquivo onde será escrito
103
111
  def postextual(tempfile)
104
112
  # Referências (obrigatório)
105
113
  # Glossário (opcional)
@@ -137,25 +145,6 @@ module Limarka
137
145
  b.save_to referencias_bib_file
138
146
  end
139
147
 
140
- def secao(template, condicao_para_conteudo, conteudo_externo)
141
- s = StringIO.new
142
-
143
- Open3.popen3("pandoc -f markdown \"--data-dir=#{options[:templates_dir]}\" --template=#{template} --chapter -t latex") {|stdin, stdout, stderr, wait_thr|
144
- stdin.write(hash_to_yaml(t.configuracao))
145
- stdin.write("\n")
146
- if (condicao_para_conteudo) then
147
- stdin.write(conteudo_externo)
148
- stdin.write("\n")
149
- end
150
- stdin.close
151
- s << stdout.read
152
- exit_status = wait_thr.value # Process::Status object returned.
153
- if(exit_status!=0) then puts ("Erro: " + stderr.read).red end
154
- }
155
- s.string
156
- end
157
-
158
-
159
148
  def secao_referencias
160
149
  secao("postextual1-referencias", false, t.referencias)
161
150
  end
@@ -168,9 +157,11 @@ module Limarka
168
157
  secao("postextual4-anexos", t.anexos?, t.anexos)
169
158
  end
170
159
 
160
+ # @note Ainda não implementado
171
161
  def secao_glossario
172
162
  end
173
163
 
164
+ # @note Ainda não implementado
174
165
  def secao_indice
175
166
  end
176
167
 
@@ -236,6 +227,27 @@ module Limarka
236
227
 
237
228
  end
238
229
 
230
+ private
231
+
232
+ # Utilizado para gerar seções específicas do documento
233
+ def secao(template, condicao_para_conteudo, conteudo_externo)
234
+ s = StringIO.new
235
+
236
+ Open3.popen3("pandoc -f markdown \"--data-dir=#{options[:templates_dir]}\" --template=#{template} --chapter -t latex") {|stdin, stdout, stderr, wait_thr|
237
+ stdin.write(hash_to_yaml(t.configuracao))
238
+ stdin.write("\n")
239
+ if (condicao_para_conteudo) then
240
+ stdin.write(conteudo_externo)
241
+ stdin.write("\n")
242
+ end
243
+ stdin.close
244
+ s << stdout.read
245
+ exit_status = wait_thr.value # Process::Status object returned.
246
+ if(exit_status!=0) then puts ("Erro: " + stderr.read).red end
247
+ }
248
+ s.string
249
+ end
250
+
239
251
  end
240
252
  end
241
253
 
@@ -2,7 +2,9 @@
2
2
 
3
3
  module Limarka
4
4
 
5
+ # Tentativa para criar um modelo de cronograma. Não é utilizado ainda.
5
6
  # Ver https://github.com/abntex/limarka/issues/90
7
+ # @see Cli
6
8
  class Cronograma
7
9
  attr_accessor :tabela, :legenda, :fonte, :rotulo
8
10
 
@@ -7,18 +7,28 @@ require 'open3'
7
7
 
8
8
  module Limarka
9
9
 
10
+ # Essa classe é responsável por ler os valores salvos em um formulário PDF
11
+ # e gerar um hash compatível com configuração de um {Trabalho}.
12
+ # @see Trabalho#configuracao
10
13
  class Pdfconf
11
14
 
15
+
16
+ # @return [PdfForms::Pdf]
12
17
  attr_reader :pdf
13
-
18
+
19
+ # @param pdf [PdfForms::Pdf]
14
20
  def initialize(pdf: nil)
15
21
  @pdf = pdf
16
22
  end
17
23
 
24
+ # Atualiza um campo do formulário. Útil para execução de testes.
18
25
  def update(field, value)
19
26
  pdf.field(field).instance_variable_set(:@value, value)
20
27
  end
21
28
 
29
+ # Exporta um hash que será utilizado como configuração.
30
+ # @return [Hash] que é utilizado como configuração
31
+ # @see {Trabalho#configuracao}
22
32
  def exporta(valida=true)
23
33
  h = {}
24
34
  h.merge! caixas_de_texto
data/lib/limarka/ref.rb CHANGED
@@ -6,6 +6,10 @@ require 'clipboard'
6
6
 
7
7
  module Limarka
8
8
 
9
+ # Essa classe contem os comandos de linhas referente aos comandos de `ref`.
10
+ # Execute `limarka help ref` para conhecer os comandos.
11
+ # Ela é incluída em {Cli}, utiliza a mesma sintaxe daquela classe.
12
+ # @see Cli
9
13
  class Ref < Thor
10
14
  include Thor::Actions
11
15
 
@@ -1,8 +1,12 @@
1
1
  # coding: utf-8
2
2
 
3
3
  module Limarka
4
+
5
+ # Esta classe representa o seu trabalho acadêmico.
6
+ # @author Eduardo de Sanana Medeiros Alexandre
4
7
  class Trabalho
5
- # Todas as chaves de configuração devem ser string (e não utilizar simbolos!)
8
+ # Todas as chaves de configuração devem ser string (não utilizar simbolos!)
9
+ # @return [Hash] a configuração desse trabalho.
6
10
  attr_accessor :configuracao
7
11
  attr_accessor :texto, :anexos, :apendices, :errata
8
12
  attr_reader :referencias
@@ -21,6 +25,9 @@ module Limarka
21
25
  # @configuracao = c.inject({}){|h,(k,v)| h[k.to_s] = v; h} # convert to strings
22
26
  # end
23
27
 
28
+
29
+ # Atualiza a configuração do trabalho.
30
+ # @param configuracao [Hash]
24
31
  def configuracao=(configuracao)
25
32
  @configuracao = configuracao or {}
26
33
  siglas = @configuracao['siglas']
@@ -30,6 +37,7 @@ module Limarka
30
37
  end
31
38
 
32
39
 
40
+
33
41
  def anexos=(a)
34
42
  @anexos = a
35
43
  if (a) then
@@ -39,14 +47,17 @@ module Limarka
39
47
  end
40
48
  end
41
49
 
50
+ # @return o valor de `anexos` na configuração.
42
51
  def anexos?
43
52
  @configuracao['anexos']
44
53
  end
45
54
 
55
+ # @return o valor de `errata` na configuração.
46
56
  def errata?
47
57
  @configuracao['errata']
48
58
  end
49
59
 
60
+ # Atualiza errata na configuração
50
61
  def errata=(e)
51
62
  @errata = e
52
63
  if (e) then
@@ -103,6 +114,8 @@ module Limarka
103
114
  'configuracao.yaml'
104
115
  end
105
116
 
117
+ # Ler os arquivos e atualiza a configuração, texto, referências, apendices e anexos.
118
+ # @param options opção criada em {Cli}
106
119
  def atualiza_de_arquivos(options)
107
120
  self.configuracao = ler_configuracao(options)
108
121
  puts "Configuração lida: #{configuracao}" if options[:verbose]
@@ -114,6 +127,11 @@ module Limarka
114
127
  self.anexos = ler_anexos if anexos?
115
128
  end
116
129
 
130
+ # Ler a configuração. A origem da configuração é determinada pelo valor de `options[:configuracao_yaml]`.
131
+ # Se contém valor verdadeiro, ler do arquivo `configuracao.yaml`, caso contrário ler de `configuracao.pdf`.
132
+ # @param options [Hash] criado na classe {Cli}
133
+ # @return configuracao
134
+ # @see {Cli}
117
135
  def ler_configuracao(options)
118
136
  if options and options[:configuracao_yaml] then
119
137
  raise IOError, "Arquivo configuracao.yaml não foi encontrado, talvez esteja executando dentro de um diretório que não contém um projeto válido?" unless File.exist?('configuracao.yaml')
@@ -124,6 +142,10 @@ module Limarka
124
142
  end
125
143
  end
126
144
 
145
+ # Ler configuração do arquivo pdf
146
+ # @param file arquivo pdf
147
+ # @return [Hash] configuração exportada a partir da leitura do arquivo pdf
148
+ # @see Pdfconf#exporta
127
149
  def ler_configuracao_pdf(file)
128
150
  raise IOError, 'Arquivo não encontrado: ' + file unless File.exist? (file)
129
151
  pdf = PdfForms::Pdf.new file, (PdfForms.new 'pdftk'), utf8_fields: true
@@ -140,6 +162,7 @@ module Limarka
140
162
  end
141
163
 
142
164
  def ler_texto(rascunho_file)
165
+ # Ficou estranho esse código, merece um refactory.
143
166
  if (rascunho_file) then
144
167
  File.open(rascunho_file, 'r') {|f| f.read}
145
168
  else
@@ -147,18 +170,25 @@ module Limarka
147
170
  end
148
171
  end
149
172
 
173
+ # Ler referências do arquivo de referências.
174
+ # @return [String] conteúdo do arquivo de referências
150
175
  def ler_referencias(configuracao)
151
176
  arquivo_de_referencias = configuracao['referencias_caminho']
152
177
  File.open(arquivo_de_referencias, 'r') {|f| f.read}
153
178
  end
154
179
 
180
+ # Salva o hash no formato yaml no caminho especificado. Adiciona o `\n---\n`
181
+ # para manter compatível com o leitor pandoc.
182
+ # @param hash que será exportado.
183
+ # @param caminho [String] aonde será salvo o arquivo
155
184
  def self.save_yaml(hash, caminho)
156
185
  File.open(caminho, 'w') do |f|
157
186
  f.write YAML.dump(hash)
158
187
  f.write "\n---\n"
159
188
  end
160
189
  end
161
-
190
+
191
+ # Salva os conteúdos do trabalho em arquivos no diretórios especificado.
162
192
  def save(dir)
163
193
  Dir.chdir(dir) do
164
194
  File.open(Trabalho.default_texto_file, 'w'){|f| f.write texto} if texto
@@ -1,3 +1,3 @@
1
1
  module Limarka
2
- VERSION = "0.6.4"
2
+ VERSION = "0.6.5"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: limarka
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.4
4
+ version: 0.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eduardo de Santana Medeiros Alexandre
@@ -306,4 +306,3 @@ signing_key:
306
306
  specification_version: 4
307
307
  summary: Ferramenta para compilação de trabalhos acadêmicos com markdown e abnTeX2
308
308
  test_files: []
309
- has_rdoc: