module RuWEB::SewSource
Gets source
Public Instance Methods
init(raw)
click to toggle source
# File lib/ruweb/sewsource.rb, line 8 def init(raw) @source = sew(raw) end
Private Instance Methods
generate_source_block_from(link, pad)
click to toggle source
# File lib/ruweb/sewsource.rb, line 26 def generate_source_block_from(link, pad) msg = "\n\n:::info\n▶️ [#{Time.now}] #{link}\n:::\n\n" "#{msg}#{pad}#{msg.gsub('▶️', '⏹️')}" end
remove_metadata(markdown)
click to toggle source
# File lib/ruweb/sewsource.rb, line 31 def remove_metadata(markdown) markdown.sub(/^---\n+(.|\n)+?---(\n+|$)/, '') end
sew(markdown)
click to toggle source
# File lib/ruweb/sewsource.rb, line 14 def sew(markdown) regex = /\u005F\[(.+?)\]\((.+?)\)/ markdown = markdown.gsub(regex) do |match| name = match.gsub(regex, '\1').strip uri = match.gsub(regex, '\2').strip puts "🕷️ ruweb: other pad detected: sewing '#{name}' from '#{uri}'" pad = remove_metadata(RuWEB::Read.init(uri)) generate_source_block_from(match[1..-1], pad) end markdown.scan(regex).any? ? sew(markdown) : markdown end