module FigNewton::Missing
Public Instance Methods
method_missing(*args, &block)
click to toggle source
Calls superclass method
# File lib/fig_newton/missing.rb, line 7 def method_missing(*args, &block) read_file unless @yml m = args.first value = @yml[m.to_s] value = args[1] if value.nil? value = block.call(m.to_s) if value.nil? and block super if value.nil? value = FigNewton::Node.new(value) unless type_known? value value end
read_file()
click to toggle source
# File lib/fig_newton/missing.rb, line 18 def read_file @yml = nil @yml = ::YAML.load(ERB.new(File.read("#{yml_directory}/#{ENV['FIG_NEWTON_FILE']}")).result(binding)) if ENV['FIG_NEWTON_FILE'] unless @yml hostname = Socket.gethostname hostfile = "#{yml_directory}/#{hostname}.yml" @yml = YAML.load_file hostfile if File.exist? hostfile end FigNewton.load('default.yml') if @yml.nil? end
Private Instance Methods
type_known?(value)
click to toggle source
# File lib/fig_newton/missing.rb, line 31 def type_known?(value) known_types = [String, Integer, TrueClass, FalseClass, Symbol, Float, Array] known_types.any? { |type| value.kind_of? type } end