Class: NoraMark::RakeTask
- Inherits:
-
Rake::TaskLib
- Object
- Rake::TaskLib
- NoraMark::RakeTask
- Defined in:
- lib/nora_mark/rake_task.rb
Instance Attribute Summary collapse
-
#lang ⇒ Object
Returns the value of attribute lang.
-
#page_number_digits ⇒ Object
Returns the value of attribute page_number_digits.
-
#stylesheets ⇒ Object
Returns the value of attribute stylesheets.
-
#title ⇒ Object
Returns the value of attribute title.
-
#write_toc_file ⇒ Object
Returns the value of attribute write_toc_file.
Instance Method Summary collapse
- #add_preprocessor(&block) ⇒ Object
- #add_transformer(&block) ⇒ Object
- #define ⇒ Object
- #html ⇒ Object
-
#initialize(lang: 'en') {|_self| ... } ⇒ RakeTask
constructor
A new instance of RakeTask.
- #toc ⇒ Object
Constructor Details
#initialize(lang: 'en') {|_self| ... } ⇒ RakeTask
Returns a new instance of RakeTask.
7 8 9 10 11 12 13 14 |
# File 'lib/nora_mark/rake_task.rb', line 7 def initialize(lang: 'en') @preprocessors = [] @transformers = [] yield self if block_given? @lang ||= lang @page_number_digits ||= 5 define end |
Instance Attribute Details
#lang ⇒ Object
Returns the value of attribute lang.
6 7 8 |
# File 'lib/nora_mark/rake_task.rb', line 6 def lang @lang end |
#page_number_digits ⇒ Object
Returns the value of attribute page_number_digits.
6 7 8 |
# File 'lib/nora_mark/rake_task.rb', line 6 def page_number_digits @page_number_digits end |
#stylesheets ⇒ Object
Returns the value of attribute stylesheets.
6 7 8 |
# File 'lib/nora_mark/rake_task.rb', line 6 def stylesheets @stylesheets end |
#title ⇒ Object
Returns the value of attribute title.
6 7 8 |
# File 'lib/nora_mark/rake_task.rb', line 6 def title @title end |
#write_toc_file ⇒ Object
Returns the value of attribute write_toc_file.
6 7 8 |
# File 'lib/nora_mark/rake_task.rb', line 6 def write_toc_file @write_toc_file end |
Instance Method Details
#add_preprocessor(&block) ⇒ Object
16 17 18 |
# File 'lib/nora_mark/rake_task.rb', line 16 def add_preprocessor(&block) @preprocessors << block; end |
#add_transformer(&block) ⇒ Object
20 21 22 |
# File 'lib/nora_mark/rake_task.rb', line 20 def add_transformer(&block) @transformers << block; end |
#define ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/nora_mark/rake_task.rb', line 32 def define desc "rule for *-nora.txt to *-nora_xxx.html. Use *-nora-transform.rb on same directory as transformer" rule(/-((nora)|(arti))_[0-9]{#{page_number_digits}}\.xhtml/ => proc { |task_name| task_name.sub(/^(.+?-((nora)|(arti)))_[0-9]{#{page_number_digits}}\.xhtml/, '\1.txt') }) do |t| dir = File.dirname File.(t.source) basename = File.basename(t.source, '.txt') transformer_name = File.join dir, basename + '-transform.rb' parameters = { :lang => @lang.to_s, :sequence_format => "%0#{page_number_digits}d", :document_name => t.name.sub(/_[0-9]{#{page_number_digits}}\.xhtml/, '') } parameters[:stylesheets] = @stylesheets unless @stylesheets.nil? parameters[:title] = @title unless @title.nil? @nora = NoraMark::Document.parse( File.open(t.source), parameters ) do |doc| @preprocessors.each do |prepro| doc.preprocessor(&prepro) end @transformers.each do |transformer| doc.add_transformer(&transformer) end if File.exist? transformer_name doc.add_transformer(text: File.open(transformer_name).read) end end @nora.html.write_as_files if (@write_toc_file) @nora.html.write_toc_as_file end end end |
#html ⇒ Object
24 25 26 |
# File 'lib/nora_mark/rake_task.rb', line 24 def html return @nora.html if !@nora.nil? end |
#toc ⇒ Object
28 29 30 |
# File 'lib/nora_mark/rake_task.rb', line 28 def toc return @nora.html.toc if !@nora.nil? && !@nora.html.nil? end |