Sha256: 1dd0ac4e3e7ba9d5be4b027cbd38f55e63be8417d516e49dec5dba26643c9d41

Contents?: true

Size: 878 Bytes

Versions: 1

Compression:

Stored size: 878 Bytes

Contents

require 'yaml'

module FigNewton
  module Missing
    def method_missing(*args, &block)
      read_file unless @yml
      m = args.first
      value = @yml[m.to_s]
      value = args[1] unless value
      value = block.call(m.to_s) unless value or block.nil?
      super unless value
      value = FigNewton::Node.new(value) unless type_known? value
      value
    end

    def read_file
      @yml = nil
      @yml = YAML.load_file "#{yml_directory}/#{ENV['FIG_NEWTON_FILE']}" if ENV['FIG_NEWTON_FILE']
      hostname = Socket.gethostname
      puts hostname
      hostfile = "#{yml_directory}/#{hostname}.yml"
      puts hostfile
      @yml = YAML.load_file hostfile if File.exist? hostfile and @yml.nil?
      FigNewton.load('default.yml') if @yml.nil?
    end

    private
    def type_known?(value)
       value.kind_of? String or value.kind_of? Integer
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fig_newton-0.8 lib/fig_newton/missing.rb