class SublimeDSL::SublimeText::CommandSet::DSLReader

Public Class Methods

new(file = nil) click to toggle source
# File lib/sublime_dsl/sublime_text/command_set.rb, line 77
def initialize(file = nil)
  @command_sets = []
  @current_set = nil
  instance_eval File.read(file, encoding: 'utf-8'), file if file
end

Public Instance Methods

_command_sets() click to toggle source
# File lib/sublime_dsl/sublime_text/command_set.rb, line 83
def _command_sets
  @command_sets
end
commands(name, &block) click to toggle source
# File lib/sublime_dsl/sublime_text/command_set.rb, line 87
def commands(name, &block)
  @current_set and raise Error, "'commands' blocks cannot be nested"
  @current_set = CommandSet.new(name)
  instance_eval(&block)
  @command_sets << @current_set
  @current_set = nil
end
item(caption, cmd) click to toggle source
# File lib/sublime_dsl/sublime_text/command_set.rb, line 95
def item(caption, cmd)
  @current_set or raise Error, "'item' is invalid outside of a 'commands' block"
  cmd.error and raise Error, "item '#{caption}': #{cmd.error}"
  @current_set.items << Item.new(caption, cmd)
end
method_missing(sym, *args, &block) click to toggle source
# File lib/sublime_dsl/sublime_text/command_set.rb, line 101
def method_missing(sym, *args, &block)
  @current_set or raise Error, "'#{sym}' is invalid outside of a 'commands' block"
  Command.from_method_missing(sym, args)
end