Let dsl import be relative to root config
[amazing.git] / lib / amazing / config / dsl.rb
blob994a3ec286ed087c60cb3fb612c082e17bac3243
1 require 'amazing/config/dsl/awesome'
3 module Amazing
4   class Config < Hash
5     class Dsl
6       attr_reader :awesome_statusbars
8       def initialize(config=nil, &block)
9         @awesome_statusbars = []
10         @relative_path = File.dirname(config)
11         import(config)
12         import(&block)
13       end
15       def import(config=nil, &block)
16         if config
17           config = "#@relative_path/#{config}" if config[0] != ?/
18           instance_eval(File.read(config))
19         end
20         instance_eval(&block) if block
21       end
23       def awesome(opts={}, &block)
24         @awesome_statusbars << Awesome.new(opts, &block)
25       end
26     end
27   end
28 end