class DataDepo::Query

Public Class Methods

new(name=nil, path=[]) click to toggle source
# File lib/data_depo/query.rb, line 9
def initialize(name=nil, path=[])
  @name = name
  @path = path
end

Public Instance Methods

[](*keys) click to toggle source
# File lib/data_depo/query.rb, line 14
def [](*keys)
  raise if keys.empty?

  @name ||= keys.first
  path = (@path || []) | keys
  self.class.new(@name, path)
end
each(&block) click to toggle source
# File lib/data_depo/query.rb, line 22
def each(&block)
  data = DataDepo.current_loader.new(@path).load
  data.each(&block)
end
files() click to toggle source
# File lib/data_depo/query.rb, line 27
def files
  loader = DataDepo.current_loader.new(@path)
  loader.files
end

Private Instance Methods

method_missing(name, *args, &block) click to toggle source
Calls superclass method
# File lib/data_depo/query.rb, line 33
def method_missing(name, *args, &block)
  loader = DataDepo.current_loader.new(@path)
  unless loader.files.empty?
    a = ArrayData.gen(@name, loader.load)
    return a.respond_to?(name) ? a.__send__(name, *args, &block) : super
  end
  super
end