class SublimeDSL::SublimeText::Macro::DSLReader
Public Class Methods
new(file = nil)
click to toggle source
# File lib/sublime_dsl/sublime_text/macro.rb, line 61 def initialize(file = nil) @macros = [] @current_macro = nil instance_eval File.read(file, encoding: 'utf-8'), file if file end
Public Instance Methods
_macros()
click to toggle source
# File lib/sublime_dsl/sublime_text/macro.rb, line 67 def _macros @macros end
macro(name, &block)
click to toggle source
# File lib/sublime_dsl/sublime_text/macro.rb, line 79 def macro(name, &block) @current_macro and raise Error, 'macro blocks cannot be nested' @current_macro = Macro.new(name) instance_eval(&block) @macros << @current_macro @current_macro = nil end
method_missing(sym, *args, &block)
click to toggle source
# File lib/sublime_dsl/sublime_text/macro.rb, line 71 def method_missing(sym, *args, &block) @current_macro or raise Error, "'#{sym}' is invalid outside of a 'macro' block" cmd = Command.from_method_missing(sym, args) cmd.error and raise Error, "macro '#{@current_macro}': #{cmd.error}" @current_macro.commands << cmd end