Add include_config directive

pull/17/head
Takashi Kokubun 8 years ago
parent 167276f901
commit 2881a0cee9

@ -0,0 +1,3 @@
include_config 'emacs_like'
include_config 'slack'
include_config 'window_switcher'

@ -28,15 +28,17 @@ module Xkremap
exit 1
end
config = self.new
config_dir = File.dirname(File.expand_path(filename))
config = self.new(config_dir)
ConfigDSL.new(config).instance_eval(File.read(filename))
config
end
attr_reader :remaps_by_window
attr_reader :remaps_by_window, :config_dir
def initialize
def initialize(config_dir)
@remaps_by_window = Hash.new { |h, k| h[k] = [] }
@config_dir = config_dir
end
def remaps_for(display, window)

@ -42,6 +42,13 @@ module Xkremap
ConfigDSL.define_method(name, &block)
end
def include_config(filename)
path = File.expand_path(filename, @config.config_dir)
path << '.rb' unless path.start_with?('.rb')
raise "config file not found!: #{path.inspect}" unless File.exist?(path)
instance_eval(File.read(path))
end
private
def compile_exp(exp)

Loading…
Cancel
Save