module Kenma::Macro::MacroPattern
Public Instance Methods
macro_patterns()
click to toggle source
# File lib/kenma/macro/macro_pattern.rb, line 87 def macro_patterns singleton_class.ancestors.grep(Kenma::Macroable).map(&:macro_patterns).inject({}, &:merge) end
node_missing(node, parent)
click to toggle source
Calls superclass method
# File lib/kenma/macro/macro_pattern.rb, line 93 def node_missing(node, parent) macro = macro_patterns.lazy.reverse_each.map { |name, pat| [name, pat.match(node)] }.find { |name, captured| captured } if macro if macro[1].empty? send(macro[0], node) else send(macro[0], node, **macro[1]) end else super(node, parent) end end