overnight 0.1.1 → 0.1.2
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.
- checksums.yaml +8 -8
- data/README.rdoc +1 -28
- data/lib/overnight.rb +3 -1
- data/lib/overnight/mixins/method_timer.rb +41 -0
- data/lib/overnight/overnight_service.rb +9 -2
- data/lib/overnight/report.rb +11 -0
- data/lib/overnight/report_builder.rb +5 -0
- data/lib/overnight/timer.rb +11 -3
- metadata +5 -3
- data/lib/overnight/timey.rb +0 -11
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MzU0NmJhOTVkZGY3NWYwNjViNTY5NjE3OTAwZGNmNDBjOTA1MWNhNA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YjEyNjUwNTU3MGFkMTM5NWJmYzFiOWNmMmNlMmE5Yjg2ZDQyMGI3Zg==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmVjZGM4MzljODU5YjI5YWMxODhlMGE4ZWYxMGY3YjVjNjJiMGM0MWUwODE4
|
10
|
+
OTM5NmNmN2E0YzUxNTg1ZGZmOWQwOGMzZGEyMjEwOGUyZTM5N2FlNDAwYWU2
|
11
|
+
OGE3ZmI5MjRiZGVmZDRmOWQ0ZjBhYjdhYWMyZDUxMTcyZWVlY2U=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NjU1YWNmMzc5ODExYWQ3MTAyODE0NzI3MWUzZDVlZGYzMmJhZDNkOTRjODBj
|
14
|
+
ODFlYzBkMGQ5YjljN2JjOTM4NWYyMDdjNDdlYjM0YzIxY2YxODNjOGNjZThj
|
15
|
+
ODZjNzc0YmFiNDhlOTczNzU5YzJlMTM3MjVlYWJiODU1MTA3Yjc=
|
data/README.rdoc
CHANGED
@@ -1,28 +1 @@
|
|
1
|
-
==
|
2
|
-
|
3
|
-
This README would normally document whatever steps are necessary to get the
|
4
|
-
application up and running.
|
5
|
-
|
6
|
-
Things you may want to cover:
|
7
|
-
|
8
|
-
* Ruby version
|
9
|
-
|
10
|
-
* System dependencies
|
11
|
-
|
12
|
-
* Configuration
|
13
|
-
|
14
|
-
* Database creation
|
15
|
-
|
16
|
-
* Database initialization
|
17
|
-
|
18
|
-
* How to run the test suite
|
19
|
-
|
20
|
-
* Services (job queues, cache servers, search engines, etc.)
|
21
|
-
|
22
|
-
* Deployment instructions
|
23
|
-
|
24
|
-
* ...
|
25
|
-
|
26
|
-
|
27
|
-
Please feel free to use a different markup language if you do not plan to run
|
28
|
-
<tt>rake doc:app</tt>.
|
1
|
+
== Overnight
|
data/lib/overnight.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
module Overnight
|
2
|
-
autoload :Timey, 'overnight/timey'
|
3
2
|
autoload :Timer, 'overnight/timer'
|
4
3
|
autoload :OvernightService, 'overnight/overnight_service'
|
4
|
+
autoload :Report, 'overnight/report'
|
5
|
+
autoload :ReportBuilder, 'overnight/report_builder'
|
6
|
+
autoload :MethodTimer, 'overnight/mixins/method_timer'
|
5
7
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Overnight
|
2
|
+
module MethodTimer
|
3
|
+
|
4
|
+
def self.included(base_class)
|
5
|
+
methods = base_class.instance_methods(false) + base_class.private_instance_methods(false)
|
6
|
+
base_class.class_eval do
|
7
|
+
methods.each do |method_name|
|
8
|
+
old_method = instance_method(method_name)
|
9
|
+
define_method(method_name) do |*args, &block|
|
10
|
+
logged_name = Overnight::MethodTimer.timer_name(base_class.name + "_" + method_name.to_s)
|
11
|
+
OvernightService.start_timer(logged_name)
|
12
|
+
result = old_method.bind(self).call(*args, &block)
|
13
|
+
OvernightService.stop_timer(logged_name)
|
14
|
+
return result
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.timer_name(name)
|
21
|
+
name.scan(/[A-Z][a-z_]*/).join("_").downcase.to_sym
|
22
|
+
end
|
23
|
+
|
24
|
+
# module MethodLogger
|
25
|
+
# def self.included(base)
|
26
|
+
# methods = base.instance_methods(false) + base.private_instance_methods(false)
|
27
|
+
# base.class_eval do
|
28
|
+
# methods.each do |method_name|
|
29
|
+
# original_method = instance_method(method_name)
|
30
|
+
# define_method(method_name) do |*args, &block|
|
31
|
+
# Rails.logger.info "-> #{base}##{method_name}(#{args.inspect})"
|
32
|
+
# return_value = original_method.bind(self).call(*args, &block)
|
33
|
+
# Rails.logger.info "<- #{base}##{method_name} #=> #{return_value.inspect}"
|
34
|
+
# return_value
|
35
|
+
# end
|
36
|
+
# end
|
37
|
+
# end
|
38
|
+
# end
|
39
|
+
# end
|
40
|
+
end
|
41
|
+
end
|
@@ -2,28 +2,35 @@ module Overnight
|
|
2
2
|
class OvernightService
|
3
3
|
@@timers = {}
|
4
4
|
|
5
|
+
# start a timer with a name
|
6
|
+
# if a name is not selected, then a random one will be assigned
|
5
7
|
def self.start_timer(timer_name = nil)
|
6
8
|
timer_name ||= self.random_timer_name
|
7
9
|
@@timers[timer_name] = Timer.new.start
|
8
10
|
return @@timers[timer_name]
|
9
11
|
end
|
10
12
|
|
13
|
+
# stops a timer with either the actual timer or the name
|
14
|
+
# just in case there wasnt a name passed when the timer was started
|
11
15
|
def self.stop_timer(timer)
|
12
|
-
|
16
|
+
(@@timers[timer] || @@timers.values.select{|e| e == timer}.first).stop
|
13
17
|
end
|
14
18
|
|
19
|
+
# get all of the timers
|
15
20
|
def self.timers
|
16
21
|
return @@timers
|
17
22
|
end
|
18
23
|
|
24
|
+
# get a single timer by name
|
19
25
|
def self.get_timer(timer_name)
|
20
26
|
return @@timers[timer_name]
|
21
27
|
end
|
22
28
|
|
23
29
|
private
|
24
30
|
|
31
|
+
# the random timer name generator
|
25
32
|
def self.random_timer_name
|
26
|
-
(0...
|
33
|
+
(0...16).map { (65 + rand(26)).chr }.join.to_sym
|
27
34
|
end
|
28
35
|
end
|
29
36
|
end
|
data/lib/overnight/timer.rb
CHANGED
@@ -1,11 +1,19 @@
|
|
1
1
|
module Overnight
|
2
2
|
class Timer
|
3
|
+
attr_reader :start_time, :end_time
|
4
|
+
|
3
5
|
def start
|
4
|
-
@start_time
|
6
|
+
@start_time ||= Time.now
|
7
|
+
self
|
8
|
+
end
|
9
|
+
|
10
|
+
def stop
|
11
|
+
@end_time ||= Time.now
|
12
|
+
self
|
5
13
|
end
|
6
14
|
|
7
|
-
def
|
8
|
-
@end_time
|
15
|
+
def elapsed_time
|
16
|
+
@end_time - @start_time
|
9
17
|
end
|
10
18
|
end
|
11
19
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: overnight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alan L. Davis
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -47,9 +47,11 @@ extra_rdoc_files: []
|
|
47
47
|
files:
|
48
48
|
- README.rdoc
|
49
49
|
- lib/overnight.rb
|
50
|
+
- lib/overnight/mixins/method_timer.rb
|
50
51
|
- lib/overnight/overnight_service.rb
|
52
|
+
- lib/overnight/report.rb
|
53
|
+
- lib/overnight/report_builder.rb
|
51
54
|
- lib/overnight/timer.rb
|
52
|
-
- lib/overnight/timey.rb
|
53
55
|
homepage: https://github.com/adavidev/overnight
|
54
56
|
licenses: []
|
55
57
|
metadata: {}
|