Class: Limarka::Trabalho

Inherits:
Object
  • Object
show all
Defined in:
lib/limarka/trabalho.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuracao: {}, texto: nil, anexos: nil, apendices: nil, referencias_bib: nil, errata: nil) ⇒ Trabalho

Returns a new instance of Trabalho.



10
11
12
13
14
15
16
17
# File 'lib/limarka/trabalho.rb', line 10

def initialize(configuracao: {}, texto: nil, anexos: nil, apendices: nil, referencias_bib: nil, errata: nil)
  self.configuracao = configuracao
  self.texto = texto
  self.anexos = anexos
  self.apendices = apendices
  self.referencias_bib = referencias_bib
  self.errata = errata
end

Instance Attribute Details

#anexosObject

Returns the value of attribute anexos.



7
8
9
# File 'lib/limarka/trabalho.rb', line 7

def anexos
  @anexos
end

#apendicesObject

Returns the value of attribute apendices.



7
8
9
# File 'lib/limarka/trabalho.rb', line 7

def apendices
  @apendices
end

#configuracaoObject

Todas as chaves de configuração devem ser string (e não utilizar simbolos!)



6
7
8
# File 'lib/limarka/trabalho.rb', line 6

def configuracao
  @configuracao
end

#errataObject

Returns the value of attribute errata.



7
8
9
# File 'lib/limarka/trabalho.rb', line 7

def errata
  @errata
end

#referenciasObject (readonly)

Returns the value of attribute referencias.



8
9
10
# File 'lib/limarka/trabalho.rb', line 8

def referencias
  @referencias
end

#textoObject

Returns the value of attribute texto.



7
8
9
# File 'lib/limarka/trabalho.rb', line 7

def texto
  @texto
end

Class Method Details

.default_anexos_fileObject



91
92
93
# File 'lib/limarka/trabalho.rb', line 91

def self.default_anexos_file
  "anexos.md"
end

.default_apendices_fileObject



94
95
96
# File 'lib/limarka/trabalho.rb', line 94

def self.default_apendices_file
  "apendices.md"
end

.default_configuracao_fileObject



102
103
104
# File 'lib/limarka/trabalho.rb', line 102

def self.default_configuracao_file
  'configuracao.yaml'
end

.default_errata_fileObject



88
89
90
# File 'lib/limarka/trabalho.rb', line 88

def self.default_errata_file
  "errata.md"
end

.default_referencias_bib_fileObject



98
99
100
# File 'lib/limarka/trabalho.rb', line 98

def self.default_referencias_bib_file
  "referencias.bib"
end

.default_texto_fileObject



85
86
87
# File 'lib/limarka/trabalho.rb', line 85

def self.default_texto_file
  "trabalho-academico.md"
end

.save_yaml(hash, caminho) ⇒ Object



155
156
157
158
159
160
# File 'lib/limarka/trabalho.rb', line 155

def self.save_yaml(hash, caminho)
  File.open(caminho, 'w') do |f|
    f.write YAML.dump(hash)
    f.write "\n---\n"
  end
end

Instance Method Details

#anexos?Boolean

Returns:

  • (Boolean)


42
43
44
# File 'lib/limarka/trabalho.rb', line 42

def anexos?
  @configuracao['anexos']
end

#apendices?Boolean

Returns:

  • (Boolean)


69
70
71
# File 'lib/limarka/trabalho.rb', line 69

def apendices?
  @configuracao['apendices']
end

#atualiza_de_arquivos(options) ⇒ Object



106
107
108
109
110
111
112
113
114
115
# File 'lib/limarka/trabalho.rb', line 106

def atualiza_de_arquivos(options)
  self.configuracao = ler_configuracao(options)
  puts "Configuração lida: #{configuracao}" if options[:verbose]
  # transforma os simbolos em string: http://stackoverflow.com/questions/8379596/how-do-i-convert-a-ruby-hash-so-that-all-of-its-keys-are-symbols?noredirect=1&lq=1
  # @configuracao.inject({}){|h,(k,v)| h[k.intern] = v; h}
  self.texto = ler_texto(options[:rascunho_file])
  self.referencias_bib = ler_referencias(self.configuracao)
  self.apendices = ler_apendices if apendices?
  self.anexos = ler_anexos if anexos?
end

#errata?Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/limarka/trabalho.rb', line 46

def errata?
  @configuracao['errata']
end

#ler_anexosObject



138
139
140
# File 'lib/limarka/trabalho.rb', line 138

def ler_anexos
  File.open('anexos.md', 'r') {|f| f.read} if anexos?
end

#ler_apendicesObject



134
135
136
# File 'lib/limarka/trabalho.rb', line 134

def ler_apendices
  File.open('apendices.md', 'r') {|f| f.read} if apendices?
end

#ler_configuracao(options) ⇒ Object



117
118
119
120
121
122
123
124
125
# File 'lib/limarka/trabalho.rb', line 117

def ler_configuracao(options)
  if options and options[:configuracao_yaml] then
    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')
    File.open('configuracao.yaml', 'r') {|f| YAML.load(f.read)}
  else
    raise IOError, "Arquivo configuracao.pdf 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.pdf')
    ler_configuracao_pdf 'configuracao.pdf'
  end
end

#ler_configuracao_pdf(file) ⇒ Object

Raises:

  • (IOError)


127
128
129
130
131
132
# File 'lib/limarka/trabalho.rb', line 127

def ler_configuracao_pdf(file)
  raise IOError, 'Arquivo não encontrado: ' + file unless File.exist? (file)
  pdf = PdfForms::Pdf.new file, (PdfForms.new 'pdftk'), utf8_fields: true
  pdfconf = Limarka::Pdfconf.new(pdf: pdf)
  pdfconf.exporta
end

#ler_referencias(configuracao) ⇒ Object



150
151
152
153
# File 'lib/limarka/trabalho.rb', line 150

def ler_referencias(configuracao)
  arquivo_de_referencias = configuracao['referencias_caminho']
  File.open(arquivo_de_referencias, 'r') {|f| f.read}
end

#ler_texto(rascunho_file) ⇒ Object



142
143
144
145
146
147
148
# File 'lib/limarka/trabalho.rb', line 142

def ler_texto(rascunho_file)
  if (rascunho_file) then
    File.open(rascunho_file, 'r') {|f| f.read}
  else  
    File.open('trabalho-academico.md', 'r') {|f| f.read}
  end
end

#referencias_bib=(ref) ⇒ Object



81
82
83
# File 'lib/limarka/trabalho.rb', line 81

def referencias_bib=(ref)
  @referencias = ref
end

#referencias_bib?Boolean

Returns:

  • (Boolean)


77
78
79
# File 'lib/limarka/trabalho.rb', line 77

def referencias_bib?
  @referencias
end

#save(dir) ⇒ Object



162
163
164
165
166
167
168
169
170
171
172
# File 'lib/limarka/trabalho.rb', line 162

def save(dir)
  Dir.chdir(dir) do
    File.open(Trabalho.default_texto_file, 'w'){|f| f.write texto} if texto
    File.open(configuracao['referencias_caminho'], 'w'){|f| f.write referencias} if referencias_bib?
    File.open(Trabalho.default_anexos_file, 'w'){|f| f.write anexos} if anexos?
    File.open(Trabalho.default_apendices_file, 'w'){|f| f.write apendices} if apendices?
    File.open(Trabalho.default_errata_file, 'w'){|f| f.write errata} if errata?
    Limarka::Trabalho.save_yaml(configuracao, Trabalho.default_configuracao_file)
  end

end