/
cubicle.rb
72 lines (63 loc) · 1.76 KB
/
cubicle.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
require "rubygems"
require "active_support"
require "active_support/hash_with_indifferent_access" unless defined?(HashWithIndifferentAccess)
require "mongo"
require "logger"
require "mustache"
require "time"
dir = File.dirname(__FILE__)
["mongo_environment",
"ordered_hash_with_indifferent_access",
"member",
"member_list",
"measure",
"calculated_measure",
"dimension",
"bucketized_dimension",
"ratio",
"difference",
"duration",
"query/dsl/time_intelligence",
"query/dsl",
"query",
"data",
"data/member",
"data/level",
"data/hierarchy",
"data/table",
"aggregation/aggregation_metadata",
"aggregation/cubicle_metadata",
"aggregation/aggregation_view",
"aggregation/aggregation_manager",
"aggregation/map_reduce_helper",
"aggregation/dsl",
"aggregation/profiler",
"aggregation",
"aggregation/ad_hoc",
"date_time",
"support"].each {|lib|require File.join(dir,'cubicle',lib)}
require File.join(dir,"cubicle","mongo_mapper","aggregate_plugin") if defined?(MongoMapper::Document)
module Cubicle
def self.register_cubicle_directory(directory_path, recursive=true)
searcher = "#{recursive ? "*" : "**/*"}.rb"
Dir[File.join(directory_path,searcher)].each {|cubicle| require cubicle}
end
def self.mongo
@mongo ||= defined?(::MongoMapper::Document) ? ::MongoMapper : MongoEnvironment
end
def self.logger
@logger ||= (Cubicle.mongo.logger || Logger.new("cubicle.log"))
end
def self.clear_temp_tables
self.mongo.database.collection_names.each{|cn|self.mongo.database[cn].drop if cn =~ /tmp.mr.mapreduce/i}
end
end
#Turn off HTML escaping in Mustache
class Mustache
class Generator
alias_method :off_utag, :on_utag
alias_method :off_etag, :on_etag
alias_method :on_utag, :off_etag
alias_method :on_etag, :off_utag
end
end