Class: SublimeDSL::SublimeText::CommandSet::DSLReader
Constant Summary
Tools::BlankSlate::KEPT_METHODS
Instance Method Summary
collapse
Constructor Details
#initialize(file = nil) ⇒ DSLReader
Returns a new instance of DSLReader.
77
78
79
80
81
|
# 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
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args, &block) ⇒ Object
101
102
103
104
|
# 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
|
Instance Method Details
#_command_sets ⇒ Object
83
84
85
|
# File 'lib/sublime_dsl/sublime_text/command_set.rb', line 83
def _command_sets
@command_sets
end
|
#commands(name, &block) ⇒ Object
87
88
89
90
91
92
93
|
# 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) ⇒ Object
95
96
97
98
99
|
# 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
|