Class: SublimeDSL::SublimeText::Package::DSLReader
- Inherits:
-
Object
- Object
- SublimeDSL::SublimeText::Package::DSLReader
show all
- Defined in:
- lib/sublime_dsl/sublime_text/package/dsl_reader.rb
Overview
‘Universal’ DSL reader: reads any DSL block and updates its package.
Instance Method Summary
collapse
-
#commands(*args, &block) ⇒ Object
-
#initialize(file, package) ⇒ DSLReader
constructor
A new instance of DSLReader.
-
#keyboard(*args, &block) ⇒ Object
-
#keymap(*args, &block) ⇒ Object
-
#language(*args, &block) ⇒ Object
-
#macro(*args, &block) ⇒ Object
-
#menu(*args, &block) ⇒ Object
-
#method_missing(sym, *args, &block) ⇒ Object
-
#mousemap(*args, &block) ⇒ Object
-
#preferences(*args, &block) ⇒ Object
-
#settings(*args, &block) ⇒ Object
-
#snippets(*args, &block) ⇒ Object
-
#theme(*args, &block) ⇒ Object
Constructor Details
#initialize(file, package) ⇒ DSLReader
Returns a new instance of DSLReader.
12
13
14
15
16
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 12
def initialize(file, package)
@file = file
@package = package
instance_eval File.read(file, encoding: 'utf-8'), file
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(sym, *args, &block) ⇒ Object
18
19
20
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 18
def method_missing(sym, *args, &block)
raise DSLError, "'#{sym}' is not a valid Package DSL statement"
end
|
Instance Method Details
#commands(*args, &block) ⇒ Object
58
59
60
61
62
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 58
def commands(*args, &block)
r = CommandSet::DSLReader.new
r.commands(*args, &block)
@package.command_sets.concat r._command_sets
end
|
#keyboard(*args, &block) ⇒ Object
83
84
85
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 83
def keyboard(*args, &block)
raise Error, "keyboards must be defined in a separate *.keyboard.rb file"
end
|
#keymap(*args, &block) ⇒ Object
76
77
78
79
80
81
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 76
def keymap(*args, &block)
r = KeyMap::DSLReader.new
r._file = @file
r.keymap(*args, &block)
@package.keymaps.concat r._keymaps
end
|
#language(*args, &block) ⇒ Object
28
29
30
31
32
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 28
def language(*args, &block)
r = TextMate::Grammar::DSLReader.new
r.language(*args, &block)
@package.grammars.concat r._grammars
end
|
#macro(*args, &block) ⇒ Object
52
53
54
55
56
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 52
def macro(*args, &block)
r = Macro::DSLReader.new
r.macro(*args, &block)
@package.macros.concat r._macros
end
|
64
65
66
67
68
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 64
def (*args, &block)
r = ::DSLReader.new
r.(*args, &block)
@package..concat r.
end
|
#mousemap(*args, &block) ⇒ Object
70
71
72
73
74
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 70
def mousemap(*args, &block)
r = MouseMap::DSLReader.new
r.mousemap(*args, &block)
@package.mousemaps.concat r._mousemaps
end
|
#preferences(*args, &block) ⇒ Object
34
35
36
37
38
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 34
def preferences(*args, &block)
r = TextMate::Preference::DSLReader.new
r.preferences(*args, &block)
@package.preferences.concat r._preferences
end
|
#settings(*args, &block) ⇒ Object
46
47
48
49
50
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 46
def settings(*args, &block)
r = SettingSet::DSLReader.new
r.settings(*args, &block)
@package.setting_sets.concat r._setting_sets
end
|
#snippets(*args, &block) ⇒ Object
40
41
42
43
44
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 40
def snippets(*args, &block)
r = TextMate::Snippet::DSLReader.new
r.snippets(*args, &block)
@package.snippets.concat r._snippets
end
|
#theme(*args, &block) ⇒ Object
22
23
24
25
26
|
# File 'lib/sublime_dsl/sublime_text/package/dsl_reader.rb', line 22
def theme(*args, &block)
r = TextMate::Theme::DSLReader.new
r.theme(*args, &block)
@package.themes.concat r._themes
end
|