Class: SublimeDSL::SublimeText::Package::DSLReader

Inherits:
Object
  • Object
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

Constructor Details

#initialize(file, package) ⇒ 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

Raises:



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

Raises:



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 menu(*args, &block)
  r = Menu::DSLReader.new
  r.menu(*args, &block)
  @package.menus.concat r._menus
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