class SublimeDSL::SublimeText::SettingSet::DSLReader

Public Class Methods

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

Public Instance Methods

_setting_sets() click to toggle source
# File lib/sublime_dsl/sublime_text/setting_set.rb, line 99
def _setting_sets
  @setting_sets
end
method_missing(sym, *args, &block) click to toggle source
# File lib/sublime_dsl/sublime_text/setting_set.rb, line 103
def method_missing(sym, *args, &block)
  @current_set or raise Error, "'#{sym}' is invalid outside of a 'settings' block"
  args.empty? and raise Error, "no value for setting '#{sym}'"
  args.length > 1 and raise Error, "more than one value for setting '#{sym}'"
  @current_set.settings << Setting.new(sym.to_s, args.first)
end
settings(name, &block) click to toggle source
# File lib/sublime_dsl/sublime_text/setting_set.rb, line 110
def settings(name, &block)
  @current_set and raise Error, "'settings' blocks cannot be nested"
  @current_set = SettingSet.new(name)
  instance_eval(&block)
  @setting_sets << @current_set
  @current_set = nil
end