class Statlysis::MultipleDataset

Attributes

cron[R]
regexp[R]
sources[R]

Public Class Methods

new(cron = nil) click to toggle source
# File lib/statlysis/multiple_dataset.rb, line 5
def initialize cron = nil
  @cron = cron
  @sources ||= Set.new
  return self
end

Public Instance Methods

_resort_source_order() click to toggle source
# File lib/statlysis/multiple_dataset.rb, line 51
def _resort_source_order; resort_source_order if cron; end
_select_orm(_module) click to toggle source

select ORM models fron ::Object namespace

# File lib/statlysis/multiple_dataset.rb, line 55
def _select_orm _module
  ::Object.constants.map do |c|
    c.to_s.constantize rescue nil # NameError: uninitialized constant ClassMethods
  end.compact.select do |c|
    (c.class === Class) &&
    c.respond_to?(:included_modules) &&
    c.included_modules.index(_module)
  end
end
add_source(s) click to toggle source
# File lib/statlysis/multiple_dataset.rb, line 25
def add_source s
  @sources.add s

  return self
end
collection_name()

Access dataset name, compact with many ORM

Alias for: name
first_time() click to toggle source
# File lib/statlysis/multiple_dataset.rb, line 47
def first_time
  t = _resort_source_order.map(&:first).compact.map {|i| i.send(cron.time_column) }.compact.min || DateTime1970
  t.in_time_zone(cron.time_zone)
end
name() click to toggle source
# File lib/statlysis/multiple_dataset.rb, line 31
def name
  if @sources.size.zero?
    Statlysis.logger.warn "Add source to #{self} first!"
    return nil
  elsif @sources.size == 1
    @sources.first.send(Utils.name(@sources.first))
  else
    # /multiple_log_2013[0-9]{4}/ => 'multiple_log'
    regexp.inspect[1..-2].gsub(/\-|\[|\]|\{|\}|[0-9]/, '').sub(/\_+$/, '')
  end
end
Also aliased as: collection_name, table_name
resort_source_order() click to toggle source
# File lib/statlysis/multiple_dataset.rb, line 52
def resort_source_order; raise DefaultNotImplementWrongMessage; end
set_regexp(regexp) click to toggle source
# File lib/statlysis/multiple_dataset.rb, line 12
def set_regexp regexp
  case regexp
  when Regexp
  when String
    regexp = Regexp.new(string)
  else
    raise "regexp #{regexp} should be a Regexp!" 
  end
  @regexp = regexp

  return self
end
table_name()
Alias for: name