Sha256: 3e1f53becc1f1b36d370561e8a677d2fa36df6c87a1f1f1924d47873ccebbc47

Contents?: true

Size: 1.31 KB

Versions: 2

Compression:

Stored size: 1.31 KB

Contents

require_relative 'dsl/helpers'

class Eye::Dsl

  autoload :Main,                 'eye/dsl/main'
  autoload :ApplicationOpts,      'eye/dsl/application_opts'
  autoload :GroupOpts,            'eye/dsl/group_opts'
  autoload :ProcessOpts,          'eye/dsl/process_opts'
  autoload :ChildProcessOpts,     'eye/dsl/child_process_opts'
  autoload :Opts,                 'eye/dsl/opts'
  autoload :PureOpts,             'eye/dsl/pure_opts'
  autoload :Validate,             'eye/dsl/validate'
  autoload :Chain,                'eye/dsl/chain'
  autoload :ConfigOpts,           'eye/dsl/config_opts'

  class Error < Exception; end
  extend Eye::Dsl::Validate

  class << self
    attr_accessor :verbose

    def debug(msg = "")
      puts msg if verbose
    end

    def initial_config
      {:config => {}, :applications => {}}
    end

    def parse(content = nil, filename = nil)
      Eye.parsed_config = initial_config
      Eye.parsed_filename = filename
      
      content = File.read(filename) if content.blank?
      
      silence_warnings do
        Kernel.eval(content, ROOT_BINDING, filename.to_s)
      end
      
      validate(Eye.parsed_config)

      Eye.parsed_config
    end

    def parse_apps(*args)
      parse(*args)[:applications] || {}
    end
  end
end

# extend here global module
Eye.send(:extend, Eye::Dsl::Main)

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
eye-0.2 lib/eye/dsl.rb
eye-0.1.11 lib/eye/dsl.rb