Sha256: e05ee42a7d5c8d7723963cc775f7c85aa05f2820328dc8052094cd9d0a30e86e
Contents?: true
Size: 1.04 KB
Versions: 1
Compression:
Stored size: 1.04 KB
Contents
require 'grokdown' module Grokdown module Creating def self.extended(base) base.send(:include,InstanceMethods) end mod = self define_method(:recurse) { mod } def create(&block) @create = block end def build(node) if @create args = begin @create.call(node) rescue NoMethodError => e raise Error, "cannot find #{e.name} from #{node.to_commonmark.inspect} at #{node.sourcepos[:start_line]}" end case args when Hash if self < Hash new.merge!(args) else new(**args) end when Array if self < Array new(args) else new(*args) end else new(*args) end else new end.tap do |i| i.node=node end end module InstanceMethods def sourcepos @node&.sourcepos || {} end def node=(node) @node = node end def node @node end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
grokdown-0.1.1 | lib/grokdown/creating.rb |