Class: Statlysis::MultipleDataset
- Inherits:
-
Object
- Object
- Statlysis::MultipleDataset
- Defined in:
- lib/statlysis/multiple_dataset.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#cron ⇒ Object
readonly
Returns the value of attribute cron.
-
#regexp ⇒ Object
readonly
Returns the value of attribute regexp.
-
#sources ⇒ Object
readonly
Returns the value of attribute sources.
Instance Method Summary collapse
-
#_resort_source_order ⇒ Object
lazy load if cron is unassigned.
-
#_select_orm(_module) ⇒ Object
select ORM models fron ::Object namespace.
- #add_source(s) ⇒ Object
- #first_time ⇒ Object
-
#initialize(cron = nil) ⇒ MultipleDataset
constructor
A new instance of MultipleDataset.
- #name ⇒ Object (also: #collection_name, #table_name)
- #resort_source_order ⇒ Object
- #set_regexp(regexp) ⇒ Object
Constructor Details
#initialize(cron = nil) ⇒ MultipleDataset
Returns a new instance of MultipleDataset.
5 6 7 8 9 |
# File 'lib/statlysis/multiple_dataset.rb', line 5 def initialize cron = nil @cron = cron @sources ||= Set.new return self end |
Instance Attribute Details
#cron ⇒ Object (readonly)
Returns the value of attribute cron.
11 12 13 |
# File 'lib/statlysis/multiple_dataset.rb', line 11 def cron @cron end |
#regexp ⇒ Object (readonly)
Returns the value of attribute regexp.
11 12 13 |
# File 'lib/statlysis/multiple_dataset.rb', line 11 def regexp @regexp end |
#sources ⇒ Object (readonly)
Returns the value of attribute sources.
11 12 13 |
# File 'lib/statlysis/multiple_dataset.rb', line 11 def sources @sources end |
Instance Method Details
#_resort_source_order ⇒ Object
lazy load if cron is unassigned
51 |
# File 'lib/statlysis/multiple_dataset.rb', line 51 def _resort_source_order; resort_source_order if cron; end |
#_select_orm(_module) ⇒ Object
select ORM models fron ::Object namespace
55 56 57 58 59 60 61 62 63 |
# 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) ⇒ Object
25 26 27 28 29 |
# File 'lib/statlysis/multiple_dataset.rb', line 25 def add_source s @sources.add s return self end |
#first_time ⇒ Object
47 48 49 50 |
# 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 ⇒ Object Also known as: collection_name, table_name
31 32 33 34 35 36 37 38 39 40 41 |
# 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 |
#resort_source_order ⇒ Object
52 |
# File 'lib/statlysis/multiple_dataset.rb', line 52 def resort_source_order; raise DefaultNotImplementWrongMessage; end |
#set_regexp(regexp) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 |
# 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 |