Class: Bookpress::Utility
- Inherits:
-
Object
- Object
- Bookpress::Utility
- Defined in:
- lib/bookpress.rb
Class Method Summary collapse
- .articlize(tree, parent = nil) ⇒ Object
- .idify(title) ⇒ Object
- .markdown_renderer ⇒ Object
- .orderify(title) ⇒ Object
- .titleize(title) ⇒ Object
Class Method Details
.articlize(tree, parent = nil) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 |
# File 'lib/bookpress.rb', line 101 def self.articlize(tree, parent = nil) unless tree.is_a?(String) article = "" tree.each do |key, value| html = "" if Utility.idify(key) == Utility.idify(parent) if value.is_a?(String) html << value else html << Utility.articlize(tree[key], key) end else html = "<article id='#{Utility.idify(key)}'>" html << ("<header><h1>#{Utility.titleize(key)}</h1></header>") if value.is_a?(String) html << value else html << Utility.articlize(tree[key], key) end html << "</article>" end article << html end article else tree end end |
.idify(title) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/bookpress.rb', line 81 def self.idify(title) if title new_title = title.sub(/(\d*_)/, '') really_new_title = new_title.sub(/(\.\w*)/, '') extremely_new_title = really_new_title.sub(/ /, '_') extremely_new_title.downcase! extremely_new_title else '' end end |
.markdown_renderer ⇒ Object
130 131 132 133 134 135 136 137 |
# File 'lib/bookpress.rb', line 130 def self.markdown_renderer Redcarpet::Markdown.new(Bookpress::HTMLRenderer, { autolink: true, disable_indented_code_blocks: true, fenced_code_blocks: true, space_after_headers: true }) end |
.orderify(title) ⇒ Object
93 94 95 96 97 98 99 |
# File 'lib/bookpress.rb', line 93 def self.orderify(title) if title /(\d*)_/.match(title)[1] else '' end end |
.titleize(title) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/bookpress.rb', line 63 def self.titleize(title) if title new_title = title.sub(/(\d*_)/, '') really_new_title = new_title.sub(/(\.\w*)/, '') words = really_new_title.to_s.split('_') words.each do |word| if word.length <3 word.downcase! elsif word.length >3 word.capitalize! end end words.join ' ' else '' end end |