module DataSet::DataAccessor

Public Instance Methods

load_data_source() click to toggle source
# File lib/data_set/data_accessor.rb, line 20
def load_data_source
  @data_contents = nil
  path = "#{data_path}/#{ENV['DATA_SET_FILE']}"

  if ENV['DATA_SET_FILE']
    @data_contents = ::YAML.safe_load(ERB.new(
      File.read(path)
    ).result(binding))
  end

  DataSet.load('default.yml') if @data_contents.nil?
end
method_missing(*args) { |key| ... } click to toggle source
Calls superclass method
# File lib/data_set/data_accessor.rb, line 5
def method_missing(*args, &block)
  load_data_source unless @data_contents
  key = args.first
  value = @data_contents[key.to_s]
  value = args[1] if value.nil?
  value = yield(key.to_s) if value.nil? && block
  super if value.nil?
  value = DataSet::DataElement.new(value) unless type_known?(value)
  value
end
respond_to_missing?(*args) click to toggle source
Calls superclass method
# File lib/data_set/data_accessor.rb, line 16
def respond_to_missing?(*args)
  super
end

Private Instance Methods

type_known?(value) click to toggle source
# File lib/data_set/data_accessor.rb, line 35
def type_known?(value)
  known_types = [String, Integer, TrueClass, FalseClass,
                 Symbol, Float, Array]
  known_types.any? { |type| value.is_a?(type) }
end