Module: BookLab::Toc
- Extended by:
- ActiveSupport::Autoload
- Defined in:
- lib/booklab-toc.rb,
lib/booklab/toc/engine.rb,
lib/booklab/toc/content.rb,
lib/booklab/toc/version.rb,
lib/booklab/toc/list_item.rb,
lib/booklab/toc/format/markdown.rb
Defined Under Namespace
Modules: Format Classes: Content, Engine, FormatError, ListItem
Constant Summary collapse
- VERSION =
'0.3.1'
Class Method Summary collapse
Class Method Details
.parse(raw, format: :yml, strict: false) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'lib/booklab-toc.rb', line 15 def parse(raw, format: :yml, strict: false) items = [] datas = [] case format when :yml datas = YAML.load(raw) when :json datas = JSON.load(raw) when :markdown datas = Format::Markdown.load(raw) else raise "format: #{format} not implement" end datas.each do |obj| item_hash = obj.to_hash item_hash.deep_symbolize_keys! items << ListItem.new(id: item_hash[:id], title: item_hash[:title], url: item_hash[:url], depth: item_hash[:depth]) end Content.new(items) rescue => e raise FormatError.new(e.) if strict logger.warn "BookLab::Toc.parse error:\n#{e.inspect}" Content.new([]) end |