Module: Statlysis

Defined in:
lib/statlysis.rb,
lib/statlysis.rb,
lib/statlysis.rb,
lib/statlysis/cron.rb,
lib/statlysis/clock.rb,
lib/statlysis/utils.rb,
lib/statlysis/common.rb,
lib/statlysis/dataset.rb,
lib/statlysis/formula.rb,
lib/statlysis/results.rb,
lib/statlysis/similar.rb,
lib/statlysis/cron/top.rb,
lib/statlysis/cron_set.rb,
lib/statlysis/constants.rb,
lib/statlysis/map_reduce.rb,
lib/statlysis/timeseries.rb,
lib/statlysis/cron/timely.rb,
lib/statlysis/configuration.rb,
lib/statlysis/javascript/count.rb,
lib/statlysis/multiple_dataset.rb,
lib/statlysis/cron/top/hotest_items.rb,
lib/statlysis/cron/top/lastest_visits.rb,
lib/statlysis/multiple_dataset/mongoid.rb,
lib/statlysis/cron/timely/one_dimension.rb,
lib/statlysis/multiple_dataset/active_record.rb,
lib/statlysis/cron/timely/multiple_dimensions.rb

Overview

TODO support ActiveRecord

Defined Under Namespace

Modules: Common, Javascript, TimeSeries, Utils Classes: ActiveRecordDataset, Clock, Configuration, Cron, CronSet, Dataset, Formula, HotestItems, LastestVisits, MapReduce, MongoidDataset, MultipleDataset, Railtie, Results, Similar, SingleKv, Timely, Top

Constant Summary collapse

TimeUnits =
%w[hour day week month year]
DateTime1970 =
Time.zone.parse("19700101").in_time_zone
TimeUnitToTableSuffixHash =
(TimeUnits + [false]).inject({}) {|_h, _i| _h[_i] = (_i ? _i[0] : 'a'); _h }
DefaultTableOpts =
{:charset => "utf8", :collate => "utf8_general_ci", :engine => "MyISAM"}
DefaultNotImplementWrongMessage =
"Not implement yet, please config it by subclass".freeze
SymbolToClassInDataType =
{
  :string =>   String,
  :datetime => DateTime,
  :time =>     Time,
  :integer =>  Integer,
  :float =>    Float,
  :text =>     String
}

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loggerObject

Returns the value of attribute logger.



53
54
55
# File 'lib/statlysis.rb', line 53

def logger
  @logger
end

Class Method Details

.alwaysObject



61
# File 'lib/statlysis.rb', line 61

def always; CronSet.new(Statlysis.configuration.always_crons) end

.configurationObject

delagate config methods to Configuration



47
# File 'lib/statlysis.rb', line 47

def configuration; Configuration.instance end

.dailyObject

代理访问 各个时间类型的 crons



59
# File 'lib/statlysis.rb', line 59

def daily; CronSet.new(Statlysis.configuration.day_crons) end

.hourlyObject



60
# File 'lib/statlysis.rb', line 60

def hourly; CronSet.new(Statlysis.configuration.hour_crons) end

.setup(&blk) ⇒ Object



29
30
31
32
33
34
35
36
# File 'lib/statlysis.rb', line 29

def setup &blk
  raise "Need to setup proc" if not blk

  logger.info "Start to setup Statlysis" if ENV['DEBUG']
  time_log do
    self.configuration.instance_exec(&blk)
  end
end

.source_to_database_typeObject



56
# File 'lib/statlysis.rb', line 56

def source_to_database_type; @_source_to_database_type ||= {} end

.time_log(text = nil) ⇒ Object



38
39
40
41
42
43
44
# File 'lib/statlysis.rb', line 38

def time_log text = nil
  t = Time.now
  logger.info text if text
  yield if block_given?
  logger.info "Time spend #{(Time.now - t).round(2)} seconds." if ENV['DEBUG']
  logger.info "-" * 42 if ENV['DEBUG']
end