dohruby 0.1.27 → 0.1.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +2 -0
- data/bin/run_tests.rb +2 -2
- data/lib/doh/app/activate_database.rb +26 -0
- data/lib/doh/app/activate_logger.rb +64 -0
- data/lib/doh/app/config.rb +17 -0
- data/lib/doh/app/init.rb +3 -0
- data/lib/doh/app/init_runnable.rb +36 -0
- data/lib/doh/app/init_unit_test.rb +18 -0
- data/lib/doh/app.rb +2 -2
- data/lib/doh/util/source_ip.rb +0 -2
- metadata +6 -1
data/CHANGELOG
CHANGED
data/bin/run_tests.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require 'doh/app/
|
2
|
+
require 'doh/app/init_unit_test'
|
3
3
|
|
4
4
|
what_to_run = ARGV[0] || '.'
|
5
5
|
if File.directory?(what_to_run)
|
@@ -7,7 +7,7 @@ if File.directory?(what_to_run)
|
|
7
7
|
else
|
8
8
|
start_dir = File.dirname(what_to_run)
|
9
9
|
end
|
10
|
-
DohApp::
|
10
|
+
DohApp::init_unit_test(start_dir)
|
11
11
|
|
12
12
|
if File.directory?(what_to_run)
|
13
13
|
require 'doh/util/run_tests'
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'doh/app/config'
|
2
|
+
|
3
|
+
module DohApp
|
4
|
+
|
5
|
+
def self.activate_database
|
6
|
+
root_cfg = DohApp::config
|
7
|
+
return unless root_cfg.fetch('enable_database', true)
|
8
|
+
return unless root_cfg.key?('database')
|
9
|
+
db_cfg = root_cfg['database']
|
10
|
+
require 'doh/mysql'
|
11
|
+
conn = DohDb::CacheConnector.new(db_cfg['host'], db_cfg['username'], db_cfg['password'], db_cfg['database'] || root_cfg['primary_database'])
|
12
|
+
row_builder = db_cfg['row_builder'] || root_cfg['row_builder'] || 'typed'
|
13
|
+
if row_builder.is_a?(Class)
|
14
|
+
conn.row_builder = row_builder
|
15
|
+
elsif row_builder == 'typed'
|
16
|
+
require 'doh/mysql/typed_row_builder'
|
17
|
+
conn.row_builder = DohDb::TypedRowBuilder
|
18
|
+
elsif row_builder == 'raw'
|
19
|
+
# that's the default for the CacheConnector, don't need to do anything
|
20
|
+
else
|
21
|
+
raise "unrecognized database row_builder: #{row_builder.inspect}"
|
22
|
+
end
|
23
|
+
DohDb::set_connector_instance(conn)
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
require 'doh/app/config'
|
2
|
+
require 'doh/logger/severity'
|
3
|
+
|
4
|
+
module DohApp
|
5
|
+
|
6
|
+
def self.translate_logger_level(str)
|
7
|
+
return DohLogger::DEBUG if str == 'debug' || str.empty?
|
8
|
+
return DohLogger::INFO if str == 'info'
|
9
|
+
return DohLogger::WARN if str == 'warn'
|
10
|
+
return DohLogger::NOTIFY if str == 'notify'
|
11
|
+
return DohLogger::ERROR if str == 'error'
|
12
|
+
return DohLogger::FATAL if str == 'fatal'
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.activate_logger
|
16
|
+
root_cfg = DohApp::config
|
17
|
+
return unless root_cfg.fetch('enable_logger', true)
|
18
|
+
return unless root_cfg.key?('logger')
|
19
|
+
logger_cfg = root_cfg['logger']
|
20
|
+
require 'doh/logger_configure'
|
21
|
+
|
22
|
+
scheduler = DohLogger::DirectScheduler.new
|
23
|
+
intrfc = DohLogger::StandardInterface.new(scheduler)
|
24
|
+
Doh::set_logger_interface(intrfc)
|
25
|
+
|
26
|
+
# initialize logfile_name here, so it can be used later in the email acceptors below
|
27
|
+
logfile_name = 'none'
|
28
|
+
if acceptor_cfg = logger_cfg['file_acceptor']
|
29
|
+
if acceptor_cfg.fetch('unique_filename', false)
|
30
|
+
logfile_name = File.basename($PROGRAM_NAME, '.rb') + ".#{Process.pid}" + '.log'
|
31
|
+
else
|
32
|
+
logfile_name = File.basename($PROGRAM_NAME, '.rb') + '.log'
|
33
|
+
end
|
34
|
+
logfile = File.new(logfile_name, "w+")
|
35
|
+
logfile.sync = true if acceptor_cfg.fetch('flush', false)
|
36
|
+
file_acceptor = DohLogger::IOStreamAcceptor.new(logfile)
|
37
|
+
file_acceptor.flush_always if acceptor_cfg.fetch('flush', false)
|
38
|
+
Doh::log.add_acceptor(translate_logger_level(acceptor_cfg.fetch('severity', 'debug')), file_acceptor)
|
39
|
+
end
|
40
|
+
|
41
|
+
if acceptor_cfg = logger_cfg['stdout_acceptor']
|
42
|
+
Doh::log.add_acceptor(translate_logger_level(acceptor_cfg.fetch('severity', 'debug')), DohLogger::IOStreamAcceptor.new)
|
43
|
+
end
|
44
|
+
|
45
|
+
if acceptor_cfg = logger_cfg['notify_acceptor']
|
46
|
+
require 'doh/logger/email_acceptor'
|
47
|
+
mail_server = root_cfg['mail_server'] || 'mail.' + root_cfg['domain_name']
|
48
|
+
from_address = acceptor_cfg['from_address'] || 'notify@' + root_cfg['domain_name']
|
49
|
+
to_address_list = acceptor_cfg['to_address_list'] || ['notify@' + root_cfg['domain_name']]
|
50
|
+
notify_acceptor = DohLogger::EmailAcceptor.new(mail_server, from_address, to_address_list, logfile_name, nil, DohLogger::exceptionless_email_format)
|
51
|
+
Doh::log.add_acceptor(DohLogger::NOTIFY, notify_acceptor, true)
|
52
|
+
end
|
53
|
+
|
54
|
+
if acceptor_cfg = logger_cfg['error_acceptor']
|
55
|
+
require 'doh/logger/email_acceptor'
|
56
|
+
mail_server = root_cfg['mail_server'] || 'mail.' + root_cfg['domain_name']
|
57
|
+
from_address = acceptor_cfg['from_address'] || 'error@' + root_cfg['domain_name']
|
58
|
+
to_address_list = acceptor_cfg['to_address_list'] || ['error@' + root_cfg['domain_name']]
|
59
|
+
error_acceptor = DohLogger::EmailAcceptor.new(mail_server, from_address, to_address_list, logfile_name)
|
60
|
+
Doh::log.add_acceptor(DohLogger::ERROR, error_acceptor)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'doh/app/home'
|
2
|
+
|
3
|
+
module DohApp
|
4
|
+
|
5
|
+
def self.load_config_file(name)
|
6
|
+
path = File.join(DohApp::home, 'config', name) + '.rb'
|
7
|
+
return false unless File.exist?(path)
|
8
|
+
require(path)
|
9
|
+
true
|
10
|
+
end
|
11
|
+
|
12
|
+
@@config = {}
|
13
|
+
def self.config
|
14
|
+
@@config
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
data/lib/doh/app/init.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'doh/app/home'
|
2
|
+
require 'doh/app/config'
|
2
3
|
|
3
4
|
module DohApp
|
4
5
|
|
@@ -9,6 +10,8 @@ def self.init(file_or_directory)
|
|
9
10
|
find_home(File.dirname(file_or_directory))
|
10
11
|
end
|
11
12
|
$LOAD_PATH.push(File.join(DohApp::home, 'lib'))
|
13
|
+
DohApp::load_config_file('system')
|
14
|
+
DohApp::load_config_file('development_environment') unless DohApp::load_config_file('active_environment')
|
12
15
|
require 'doh/app_util'
|
13
16
|
end
|
14
17
|
|
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'doh/app/init'
|
2
|
+
require 'doh/app/activate_logger'
|
3
|
+
require 'doh/app/activate_database'
|
4
|
+
|
5
|
+
module DohApp
|
6
|
+
|
7
|
+
def self.use_default_runnable_production_config
|
8
|
+
file_acceptor_cfg = {'unique_filename' => true, 'flush' => false, 'severity' => 'debug'}
|
9
|
+
logger_cfg = {'file_acceptor' => file_acceptor_cfg, 'notify_acceptor' => {}, 'error_acceptor' => {}}
|
10
|
+
DohApp::config['logger'] = logger_cfg
|
11
|
+
DohApp::config['enable_logger'] = true
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.use_default_runnable_development_config
|
15
|
+
root_cfg = DohApp::config
|
16
|
+
file_acceptor_cfg = {'unique_filename' => false, 'flush' => true, 'severity' => 'debug'}
|
17
|
+
stdout_acceptor_cfg = {'severity' => 'debug'}
|
18
|
+
logger_cfg = {'file_acceptor' => file_acceptor_cfg, 'stdout_acceptor' => stdout_acceptor_cfg}
|
19
|
+
root_cfg['logger'] = logger_cfg
|
20
|
+
root_cfg['enable_logger'] = true
|
21
|
+
|
22
|
+
root_cfg['database'] = {'username' => 'root', 'host' => 'localhost'}
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.init_runnable(file_or_directory)
|
26
|
+
DohApp::init(file_or_directory)
|
27
|
+
unless DohApp::load_config_file('active_runnable')
|
28
|
+
unless DohApp::load_config_file('development_runnable')
|
29
|
+
DohApp::use_default_runnable_development_config
|
30
|
+
end
|
31
|
+
end
|
32
|
+
DohApp::activate_logger
|
33
|
+
DohApp::activate_database
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'doh/app/init'
|
2
|
+
|
3
|
+
module DohApp
|
4
|
+
|
5
|
+
def self.use_default_unit_test_development_config
|
6
|
+
DohApp::config['database'] = {'username' => 'root', 'host' => 'localhost'}
|
7
|
+
end
|
8
|
+
|
9
|
+
def self.init_unit_test(file_or_directory)
|
10
|
+
DohApp::init(file_or_directory)
|
11
|
+
unless DohApp::load_config_file('active_unit_test')
|
12
|
+
unless DohApp::load_config_file('development_unit_test')
|
13
|
+
DohApp::use_default_unit_test_development_config
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
data/lib/doh/app.rb
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
require 'doh/app/
|
2
|
-
DohApp::
|
1
|
+
require 'doh/app/init_runnable'
|
2
|
+
DohApp::init_runnable($PROGRAM_NAME)
|
data/lib/doh/util/source_ip.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dohruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.28
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Makani & Kem Mason
|
@@ -37,8 +37,13 @@ files:
|
|
37
37
|
- bin/run_tests.rb
|
38
38
|
- lib/doh
|
39
39
|
- lib/doh/app
|
40
|
+
- lib/doh/app/activate_database.rb
|
41
|
+
- lib/doh/app/activate_logger.rb
|
42
|
+
- lib/doh/app/config.rb
|
40
43
|
- lib/doh/app/home.rb
|
41
44
|
- lib/doh/app/init.rb
|
45
|
+
- lib/doh/app/init_runnable.rb
|
46
|
+
- lib/doh/app/init_unit_test.rb
|
42
47
|
- lib/doh/app/options.rb
|
43
48
|
- lib/doh/app.rb
|
44
49
|
- lib/doh/app_util.rb
|