Class: NoraMark::Html::Pages
- Inherits:
-
Object
- Object
- NoraMark::Html::Pages
- Defined in:
- lib/nora_mark/html/pages.rb
Instance Attribute Summary collapse
-
#created_files ⇒ Object
readonly
Returns the value of attribute created_files.
-
#file_basename ⇒ Object
Returns the value of attribute file_basename.
Instance Method Summary collapse
- #<<(page) ⇒ Object
- #[](num) ⇒ Object
- #filename_for_page(n) ⇒ Object
-
#initialize(sequence_format = '%05d') ⇒ Pages
constructor
A new instance of Pages.
- #last ⇒ Object
- #pages ⇒ Object
- #set_toc(toc_data) ⇒ Object
- #size ⇒ Object
- #toc ⇒ Object
- #write_as_files(directory: nil) ⇒ Object
- #write_toc_as_file(directory: nil) ⇒ Object
Constructor Details
#initialize(sequence_format = '%05d') ⇒ Pages
Returns a new instance of Pages.
7 8 9 10 |
# File 'lib/nora_mark/html/pages.rb', line 7 def initialize(sequence_format = '%05d') @sequence_format = sequence_format || '%05d' @result = [] end |
Instance Attribute Details
#created_files ⇒ Object (readonly)
Returns the value of attribute created_files.
5 6 7 |
# File 'lib/nora_mark/html/pages.rb', line 5 def created_files @created_files end |
#file_basename ⇒ Object
Returns the value of attribute file_basename.
6 7 8 |
# File 'lib/nora_mark/html/pages.rb', line 6 def file_basename @file_basename end |
Instance Method Details
#<<(page) ⇒ Object
20 21 22 23 |
# File 'lib/nora_mark/html/pages.rb', line 20 def <<(page) seq = @result.size + 1 @result << { content: page, filename: filename_for_page(seq) } end |
#[](num) ⇒ Object
25 26 27 28 |
# File 'lib/nora_mark/html/pages.rb', line 25 def [](num) page = @result[num] page.nil? ? nil : page[:content] end |
#filename_for_page(n) ⇒ Object
34 35 36 |
# File 'lib/nora_mark/html/pages.rb', line 34 def filename_for_page n "#{@file_basename}_#{@sequence_format % (n)}.xhtml" end |
#last ⇒ Object
12 13 14 |
# File 'lib/nora_mark/html/pages.rb', line 12 def last @result.last[:content] end |
#pages ⇒ Object
30 31 32 |
# File 'lib/nora_mark/html/pages.rb', line 30 def pages @result end |
#set_toc(toc_data) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/nora_mark/html/pages.rb', line 38 def set_toc toc_data @toc = toc_data.map do |toc_line| fi = toc_line[:id] ? "##{toc_line[:id]}" : '' { link: "#{filename_for_page(toc_line[:page])}#{fi}", level: toc_line[:level], text: toc_line[:text] } end end |
#size ⇒ Object
16 17 18 |
# File 'lib/nora_mark/html/pages.rb', line 16 def size @result.size end |
#toc ⇒ Object
45 46 47 |
# File 'lib/nora_mark/html/pages.rb', line 45 def toc @toc end |
#write_as_files(directory: nil) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/nora_mark/html/pages.rb', line 49 def write_as_files(directory: nil) dir = directory || Dir.pwd Dir.chdir(dir) do @result.each do |page| File.open(page[:filename], 'w+') do |file| file << page[:content] end end end end |
#write_toc_as_file(directory: nil) ⇒ Object
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/nora_mark/html/pages.rb', line 60 def write_toc_as_file(directory: nil) return if @toc.nil? dir = directory || Dir.pwd Dir.chdir(dir) do File.open("#{@file_basename}.yaml", 'w+') do |file| file << YAML.dump(@toc) end end end |