limarka 0.6.4 → 0.6.5

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