log_switch 0.3.0 → 0.4.0
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/History.rdoc +8 -0
- data/README.rdoc +28 -0
- data/Rakefile +14 -7
- data/lib/log_switch.rb +16 -7
- data/lib/log_switch/mixin.rb +11 -0
- data/lib/log_switch/version.rb +1 -1
- data/log_switch.gemspec +19 -9
- data/spec/coverage/assets/0.5.3/app.js +88 -0
- data/spec/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
- data/spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
- data/spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
- data/spec/coverage/assets/0.5.3/favicon_green.png +0 -0
- data/spec/coverage/assets/0.5.3/favicon_red.png +0 -0
- data/spec/coverage/assets/0.5.3/favicon_yellow.png +0 -0
- data/spec/coverage/assets/0.5.3/highlight.css +129 -0
- data/spec/coverage/assets/0.5.3/highlight.pack.js +1 -0
- data/spec/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
- data/spec/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
- data/spec/coverage/assets/0.5.3/jquery.timeago.js +141 -0
- data/spec/coverage/assets/0.5.3/jquery.url.js +174 -0
- data/spec/coverage/assets/0.5.3/loading.gif +0 -0
- data/spec/coverage/assets/0.5.3/magnify.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
- data/spec/coverage/assets/0.5.3/stylesheet.css +383 -0
- data/spec/coverage/assets/0.7.1/application.css +1110 -0
- data/spec/coverage/assets/0.7.1/application.js +626 -0
- data/spec/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
- data/spec/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
- data/spec/coverage/assets/0.7.1/favicon_green.png +0 -0
- data/spec/coverage/assets/0.7.1/favicon_red.png +0 -0
- data/spec/coverage/assets/0.7.1/favicon_yellow.png +0 -0
- data/spec/coverage/assets/0.7.1/loading.gif +0 -0
- data/spec/coverage/assets/0.7.1/magnify.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/coverage/index.html +81 -0
- data/spec/log_switch/coverage/assets/0.5.3/app.js +88 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
- data/spec/log_switch/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
- data/spec/log_switch/coverage/assets/0.5.3/favicon_green.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/favicon_red.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/favicon_yellow.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/highlight.css +129 -0
- data/spec/log_switch/coverage/assets/0.5.3/highlight.pack.js +1 -0
- data/spec/log_switch/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
- data/spec/log_switch/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
- data/spec/log_switch/coverage/assets/0.5.3/jquery.timeago.js +141 -0
- data/spec/log_switch/coverage/assets/0.5.3/jquery.url.js +174 -0
- data/spec/log_switch/coverage/assets/0.5.3/loading.gif +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/magnify.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/spec/log_switch/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
- data/spec/log_switch/coverage/assets/0.5.3/stylesheet.css +383 -0
- data/spec/log_switch/coverage/index.html +81 -0
- data/spec/log_switch/mixin_spec.rb +48 -8
- data/spec/log_switch_spec.rb +27 -27
- metadata +337 -16
data/History.rdoc
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
=== 0.4.0 / 2012-11-12
|
|
2
|
+
|
|
3
|
+
* Improvements:
|
|
4
|
+
* gh-4[https://github.com/turboladen/log_switch/issues/4]: Added ability to
|
|
5
|
+
toggle the prepending of the class name to log messages. This lets you
|
|
6
|
+
know which class/object is logging each message--useful for when you have
|
|
7
|
+
a number of different classes logging.
|
|
8
|
+
|
|
1
9
|
=== 0.3.0 / 2012-02-03
|
|
2
10
|
|
|
3
11
|
* Improvements:
|
data/README.rdoc
CHANGED
|
@@ -132,6 +132,34 @@ use +MyThing::Logger.log+:
|
|
|
132
132
|
This lets you still use a single logger throughout your classes, but shortens
|
|
133
133
|
the amount of typing you have to do.
|
|
134
134
|
|
|
135
|
+
=== Prepend class name of #log caller to the message
|
|
136
|
+
|
|
137
|
+
When you've got a bunch of different classes doing logging, it's easy to get
|
|
138
|
+
lost in all the text. Adding the class name of the class that's logging a
|
|
139
|
+
message can make this easier to read. Now log_switch will do that for you, if
|
|
140
|
+
you use its Mixin.
|
|
141
|
+
|
|
142
|
+
# lib/my_thing/logger.rb
|
|
143
|
+
class MyThing::Logger
|
|
144
|
+
extend LogSwitch
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
MyThing::Logger.log_class_name = true
|
|
148
|
+
|
|
149
|
+
# lib/my_thing/barrel_roller.rb
|
|
150
|
+
class MyThing::BarrelRoller
|
|
151
|
+
include LogSwitch::Mixin
|
|
152
|
+
|
|
153
|
+
def do_one
|
|
154
|
+
log "I did a barrel roll!"
|
|
155
|
+
end
|
|
156
|
+
end
|
|
157
|
+
|
|
158
|
+
# somewhere else...
|
|
159
|
+
barrel_roller = MyThing::BarrelRoller.new
|
|
160
|
+
barrel_roller.do_one # => D, [2012-11-12T21:11:32.133414 #16645] DEBUG -- : <MyThing::BarrelRoller> I did a barrel roll!
|
|
161
|
+
|
|
162
|
+
|
|
135
163
|
== REQUIREMENTS
|
|
136
164
|
|
|
137
165
|
* Rubies (tested):
|
data/Rakefile
CHANGED
|
@@ -2,12 +2,9 @@ require 'bundler/gem_tasks'
|
|
|
2
2
|
require 'rspec/core/rake_task'
|
|
3
3
|
require 'yard'
|
|
4
4
|
|
|
5
|
-
# Load all extra rake task definitions
|
|
6
|
-
Dir["#{File.dirname(__FILE__)}/tasks/*.rake"].each { |ext| load ext }
|
|
7
|
-
|
|
8
5
|
YARD::Rake::YardocTask.new do |t|
|
|
9
6
|
t.files = %w(lib/**/*.rb - History.rdoc)
|
|
10
|
-
t.options = %
|
|
7
|
+
t.options = %W(--title log_switch Documentation (#{LogSwitch::VERSION}))
|
|
11
8
|
t.options += %w(--main README.rdoc)
|
|
12
9
|
end
|
|
13
10
|
|
|
@@ -15,8 +12,18 @@ RSpec::Core::RakeTask.new do |t|
|
|
|
15
12
|
t.ruby_opts = %w(-w)
|
|
16
13
|
end
|
|
17
14
|
|
|
18
|
-
|
|
19
|
-
|
|
15
|
+
if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" && RUBY_VERSION > "1.9"
|
|
16
|
+
require 'tailor/rake_task'
|
|
17
|
+
|
|
18
|
+
Tailor::RakeTask.new do |task|
|
|
19
|
+
task.file_set 'lib/**/*.rb'
|
|
20
|
+
task.file_set 'spec/**/*.rb', :specs
|
|
21
|
+
end
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
# Alias for rubygems-test
|
|
24
|
+
task :test => [:spec, :tailor]
|
|
25
|
+
else
|
|
26
|
+
task :test => :spec
|
|
27
|
+
end
|
|
22
28
|
|
|
29
|
+
task :default => :test
|
data/lib/log_switch.rb
CHANGED
|
@@ -25,27 +25,36 @@ module LogSwitch
|
|
|
25
25
|
# Use to turn logging on or off.
|
|
26
26
|
attr_writer :log
|
|
27
27
|
|
|
28
|
+
# Set this to the Logger you want to use.
|
|
29
|
+
attr_writer :logger
|
|
30
|
+
|
|
31
|
+
# Set the log level so you don't have to pass it in on your call.
|
|
32
|
+
attr_writer :log_level
|
|
33
|
+
|
|
34
|
+
# Toggle prepending the class name of the #log caller to the log message.
|
|
35
|
+
attr_writer :log_class_name
|
|
36
|
+
|
|
28
37
|
# Tells whether logging is turned on or not.
|
|
29
38
|
def log?
|
|
30
39
|
@log != false
|
|
31
40
|
end
|
|
32
41
|
|
|
33
|
-
# Set this to the Logger you want to use.
|
|
34
|
-
attr_writer :logger
|
|
35
|
-
|
|
36
42
|
# Defaults to a +Logger+ writing to STDOUT.
|
|
37
43
|
def logger
|
|
38
44
|
@logger ||= ::Logger.new STDOUT
|
|
39
45
|
end
|
|
40
46
|
|
|
41
|
-
# Set the log level so you don't have to pass it in on your call.
|
|
42
|
-
attr_writer :log_level
|
|
43
|
-
|
|
44
47
|
# @return [Symbol] The current default log level. Starts off as :debug.
|
|
45
48
|
def log_level
|
|
46
49
|
@log_level ||= :debug
|
|
47
50
|
end
|
|
48
51
|
|
|
52
|
+
# @return [Boolean] Tells whether logging of the class name with the log
|
|
53
|
+
# message is turned on.
|
|
54
|
+
def log_class_name?
|
|
55
|
+
@log_class_name == true
|
|
56
|
+
end
|
|
57
|
+
|
|
49
58
|
# {#log} calls the block given to this method before it logs every time.
|
|
50
59
|
# This, thus, acts as a hook in the case where you want to make sure some
|
|
51
60
|
# code gets executed before you log a message. Useful for making sure a file
|
|
@@ -79,6 +88,6 @@ module LogSwitch
|
|
|
79
88
|
def reset_config!
|
|
80
89
|
self.log = true
|
|
81
90
|
self.logger = ::Logger.new STDOUT
|
|
82
|
-
self.
|
|
91
|
+
self.log_class_name = false
|
|
83
92
|
end
|
|
84
93
|
end
|
data/lib/log_switch/mixin.rb
CHANGED
|
@@ -10,6 +10,17 @@ module LogSwitch
|
|
|
10
10
|
def self.included(klass)
|
|
11
11
|
if LogSwitch.extender
|
|
12
12
|
klass.send :define_method, :log do |*args|
|
|
13
|
+
if LogSwitch.extender.log_class_name? &&
|
|
14
|
+
LogSwitch.extender.logger.class == Logger
|
|
15
|
+
|
|
16
|
+
if args.size == 1
|
|
17
|
+
args = "<#{klass}> #{args.join}"
|
|
18
|
+
else
|
|
19
|
+
msg = args.delete_at 0
|
|
20
|
+
args.unshift("<#{klass}> #{msg}")
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
13
24
|
LogSwitch.extender.log *args
|
|
14
25
|
end
|
|
15
26
|
else
|
data/lib/log_switch/version.rb
CHANGED
data/log_switch.gemspec
CHANGED
|
@@ -7,21 +7,31 @@ Gem::Specification.new do |s|
|
|
|
7
7
|
s.authors = ["Steve Loveless"]
|
|
8
8
|
s.homepage = %q(http://github.com/turboladen/log_switch)
|
|
9
9
|
s.email = %w(steve.loveless@gmail.com)
|
|
10
|
-
s.summary = %q(Extends a class for singleton style logging that can easily be
|
|
11
|
-
|
|
10
|
+
s.summary = %q(Extends a class for singleton style logging that can easily be
|
|
11
|
+
turned on and off.)
|
|
12
|
+
s.description = %q(Extends a class for singleton style logging that can
|
|
13
|
+
easily be turned on and off.)
|
|
12
14
|
|
|
13
15
|
s.required_rubygems_version = ">=1.8.0"
|
|
14
|
-
s.files = Dir.glob("{lib,spec}/**/*") +
|
|
16
|
+
s.files = Dir.glob("{lib,spec}/**/*") +
|
|
17
|
+
Dir.glob("*.rdoc") +
|
|
15
18
|
%w(.gemtest Gemfile log_switch.gemspec Rakefile)
|
|
19
|
+
|
|
16
20
|
s.test_files = Dir.glob("{spec}/**/*")
|
|
17
|
-
s.require_paths =
|
|
21
|
+
s.require_paths = %w(lib)
|
|
22
|
+
|
|
23
|
+
s.add_development_dependency "bundler"
|
|
24
|
+
s.add_development_dependency "rake"
|
|
25
|
+
s.add_development_dependency "rspec", ">= 2.6.0"
|
|
18
26
|
|
|
19
|
-
s.add_development_dependency("bundler", [">= 0"])
|
|
20
|
-
s.add_development_dependency("rake", [">= 0"])
|
|
21
|
-
s.add_development_dependency("rspec", ["~> 2.6.0"])
|
|
22
27
|
if RUBY_VERSION > '1.9'
|
|
23
|
-
s.add_development_dependency
|
|
28
|
+
s.add_development_dependency "simplecov"
|
|
29
|
+
|
|
30
|
+
if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
|
|
31
|
+
s.add_development_dependency("tailor", ">=1.1.2")
|
|
32
|
+
end
|
|
24
33
|
end
|
|
25
|
-
|
|
34
|
+
|
|
35
|
+
s.add_development_dependency "yard", ">= 0.7.2"
|
|
26
36
|
end
|
|
27
37
|
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
$(document).ready(function() {
|
|
2
|
+
// Configuration for fancy sortable tables for source file groups
|
|
3
|
+
$('.file_list').dataTable({
|
|
4
|
+
"aaSorting": [[ 1, "asc" ]],
|
|
5
|
+
"bPaginate": false,
|
|
6
|
+
"bJQueryUI": true,
|
|
7
|
+
"aoColumns": [
|
|
8
|
+
null,
|
|
9
|
+
{ "sType": "percent" },
|
|
10
|
+
null,
|
|
11
|
+
null,
|
|
12
|
+
null,
|
|
13
|
+
null,
|
|
14
|
+
null
|
|
15
|
+
]
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// Syntax highlight all files up front - deactivated
|
|
19
|
+
// $('.source_table pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
|
|
20
|
+
|
|
21
|
+
// Syntax highlight source files on first toggle of the file view popup
|
|
22
|
+
$("a.src_link").click(function() {
|
|
23
|
+
// Get the source file element that corresponds to the clicked element
|
|
24
|
+
var source_table = $($(this).attr('href'));
|
|
25
|
+
|
|
26
|
+
// If not highlighted yet, do it!
|
|
27
|
+
if (!source_table.hasClass('highlighted')) {
|
|
28
|
+
source_table.find('pre code').each(function(i, e) {hljs.highlightBlock(e, ' ')});
|
|
29
|
+
source_table.addClass('highlighted');
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
// Set-up of popup for source file views
|
|
34
|
+
$("a.src_link").fancybox({
|
|
35
|
+
'hideOnContentClick': true,
|
|
36
|
+
'centerOnScroll': true,
|
|
37
|
+
'width': '90%',
|
|
38
|
+
'padding': 0,
|
|
39
|
+
'transitionIn': 'elastic'
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
// Hide src files and file list container after load
|
|
43
|
+
$('.source_files').hide();
|
|
44
|
+
$('.file_list_container').hide();
|
|
45
|
+
|
|
46
|
+
// Add tabs based upon existing file_list_containers
|
|
47
|
+
$('.file_list_container h2').each(function(){
|
|
48
|
+
var container_id = $(this).parent().attr('id');
|
|
49
|
+
var group_name = $(this).find('.group_name').first().html();
|
|
50
|
+
var covered_percent = $(this).find('.covered_percent').first().html();
|
|
51
|
+
|
|
52
|
+
$('.group_tabs').append('<li><a href="#' + container_id + '">' + group_name + ' ('+ covered_percent +')</a></li>');
|
|
53
|
+
});
|
|
54
|
+
|
|
55
|
+
$('.group_tabs a').each( function() {
|
|
56
|
+
$(this).addClass($(this).attr('href').replace('#', ''));
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
// Make sure tabs don't get ugly focus borders when active
|
|
60
|
+
$('.group_tabs a').live('focus', function() { $(this).blur(); });
|
|
61
|
+
|
|
62
|
+
var favicon_path = $('link[rel="shortcut icon"]').attr('href');
|
|
63
|
+
$('.group_tabs a').live('click', function(){
|
|
64
|
+
if (!$(this).parent().hasClass('active')) {
|
|
65
|
+
$('.group_tabs a').parent().removeClass('active');
|
|
66
|
+
$(this).parent().addClass('active');
|
|
67
|
+
$('.file_list_container').hide();
|
|
68
|
+
$(".file_list_container" + $(this).attr('href')).show();
|
|
69
|
+
window.location.href = window.location.href.split('#')[0] + $(this).attr('href').replace('#', '#_');
|
|
70
|
+
|
|
71
|
+
// Force favicon reload - otherwise the location change containing anchor would drop the favicon...
|
|
72
|
+
// Works only on firefox, but still... - Anyone know a better solution to force favicon on local file?
|
|
73
|
+
$('link[rel="shortcut icon"]').remove();
|
|
74
|
+
$('head').append('<link rel="shortcut icon" type="image/png" href="'+ favicon_path +'" />');
|
|
75
|
+
};
|
|
76
|
+
return false;
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
if (jQuery.url.attr('anchor')) {
|
|
80
|
+
$('.group_tabs a.'+jQuery.url.attr('anchor').replace('_', '')).click();
|
|
81
|
+
} else {
|
|
82
|
+
$('.group_tabs a:first').click();
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
$("abbr.timeago").timeago();
|
|
86
|
+
$('#loading').fadeOut();
|
|
87
|
+
$('#wrapper').show();
|
|
88
|
+
});
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,363 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* FancyBox - jQuery Plugin
|
|
3
|
+
* Simple and fancy lightbox alternative
|
|
4
|
+
*
|
|
5
|
+
* Examples and documentation at: http://fancybox.net
|
|
6
|
+
*
|
|
7
|
+
* Copyright (c) 2008 - 2010 Janis Skarnelis
|
|
8
|
+
*
|
|
9
|
+
* Version: 1.3.1 (05/03/2010)
|
|
10
|
+
* Requires: jQuery v1.3+
|
|
11
|
+
*
|
|
12
|
+
* Dual licensed under the MIT and GPL licenses:
|
|
13
|
+
* http://www.opensource.org/licenses/mit-license.php
|
|
14
|
+
* http://www.gnu.org/licenses/gpl.html
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
#fancybox-loading {
|
|
18
|
+
position: fixed;
|
|
19
|
+
top: 50%;
|
|
20
|
+
left: 50%;
|
|
21
|
+
height: 40px;
|
|
22
|
+
width: 40px;
|
|
23
|
+
margin-top: -20px;
|
|
24
|
+
margin-left: -20px;
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
overflow: hidden;
|
|
27
|
+
z-index: 1104;
|
|
28
|
+
display: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
* html #fancybox-loading { /* IE6 */
|
|
32
|
+
position: absolute;
|
|
33
|
+
margin-top: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
#fancybox-loading div {
|
|
37
|
+
position: absolute;
|
|
38
|
+
top: 0;
|
|
39
|
+
left: 0;
|
|
40
|
+
width: 40px;
|
|
41
|
+
height: 480px;
|
|
42
|
+
background-image: url('fancybox.png');
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
#fancybox-overlay {
|
|
46
|
+
position: fixed;
|
|
47
|
+
top: 0;
|
|
48
|
+
left: 0;
|
|
49
|
+
bottom: 0;
|
|
50
|
+
right: 0;
|
|
51
|
+
background: #000;
|
|
52
|
+
z-index: 1100;
|
|
53
|
+
display: none;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
* html #fancybox-overlay { /* IE6 */
|
|
57
|
+
position: absolute;
|
|
58
|
+
width: 100%;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
#fancybox-tmp {
|
|
62
|
+
padding: 0;
|
|
63
|
+
margin: 0;
|
|
64
|
+
border: 0;
|
|
65
|
+
overflow: auto;
|
|
66
|
+
display: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
#fancybox-wrap {
|
|
70
|
+
position: absolute;
|
|
71
|
+
top: 0;
|
|
72
|
+
left: 0;
|
|
73
|
+
margin: 0;
|
|
74
|
+
padding: 20px;
|
|
75
|
+
z-index: 1101;
|
|
76
|
+
display: none;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
#fancybox-outer {
|
|
80
|
+
position: relative;
|
|
81
|
+
width: 100%;
|
|
82
|
+
height: 100%;
|
|
83
|
+
background: #FFF;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
#fancybox-inner {
|
|
87
|
+
position: absolute;
|
|
88
|
+
top: 0;
|
|
89
|
+
left: 0;
|
|
90
|
+
width: 1px;
|
|
91
|
+
height: 1px;
|
|
92
|
+
padding: 0;
|
|
93
|
+
margin: 0;
|
|
94
|
+
outline: none;
|
|
95
|
+
overflow: hidden;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
#fancybox-hide-sel-frame {
|
|
99
|
+
position: absolute;
|
|
100
|
+
top: 0;
|
|
101
|
+
left: 0;
|
|
102
|
+
width: 100%;
|
|
103
|
+
height: 100%;
|
|
104
|
+
background: transparent;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
#fancybox-close {
|
|
108
|
+
position: absolute;
|
|
109
|
+
top: -15px;
|
|
110
|
+
right: -15px;
|
|
111
|
+
width: 30px;
|
|
112
|
+
height: 30px;
|
|
113
|
+
background-image: url('fancybox.png');
|
|
114
|
+
background-position: -40px 0px;
|
|
115
|
+
cursor: pointer;
|
|
116
|
+
z-index: 1103;
|
|
117
|
+
display: none;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
#fancybox_error {
|
|
121
|
+
color: #444;
|
|
122
|
+
font: normal 12px/20px Arial;
|
|
123
|
+
padding: 7px;
|
|
124
|
+
margin: 0;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
#fancybox-content {
|
|
128
|
+
height: auto;
|
|
129
|
+
width: auto;
|
|
130
|
+
padding: 0;
|
|
131
|
+
margin: 0;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
#fancybox-img {
|
|
135
|
+
width: 100%;
|
|
136
|
+
height: 100%;
|
|
137
|
+
padding: 0;
|
|
138
|
+
margin: 0;
|
|
139
|
+
border: none;
|
|
140
|
+
outline: none;
|
|
141
|
+
line-height: 0;
|
|
142
|
+
vertical-align: top;
|
|
143
|
+
-ms-interpolation-mode: bicubic;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
#fancybox-frame {
|
|
147
|
+
position: relative;
|
|
148
|
+
width: 100%;
|
|
149
|
+
height: 100%;
|
|
150
|
+
border: none;
|
|
151
|
+
display: block;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
#fancybox-title {
|
|
155
|
+
position: absolute;
|
|
156
|
+
bottom: 0;
|
|
157
|
+
left: 0;
|
|
158
|
+
font-family: Arial;
|
|
159
|
+
font-size: 12px;
|
|
160
|
+
z-index: 1102;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.fancybox-title-inside {
|
|
164
|
+
padding: 10px 0;
|
|
165
|
+
text-align: center;
|
|
166
|
+
color: #333;
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
.fancybox-title-outside {
|
|
170
|
+
padding-top: 5px;
|
|
171
|
+
color: #FFF;
|
|
172
|
+
text-align: center;
|
|
173
|
+
font-weight: bold;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.fancybox-title-over {
|
|
177
|
+
color: #FFF;
|
|
178
|
+
text-align: left;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
#fancybox-title-over {
|
|
182
|
+
padding: 10px;
|
|
183
|
+
background-image: url('fancy_title_over.png');
|
|
184
|
+
display: block;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
#fancybox-title-wrap {
|
|
188
|
+
display: inline-block;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
#fancybox-title-wrap span {
|
|
192
|
+
height: 32px;
|
|
193
|
+
float: left;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
#fancybox-title-left {
|
|
197
|
+
padding-left: 15px;
|
|
198
|
+
background-image: url('fancybox.png');
|
|
199
|
+
background-position: -40px -90px;
|
|
200
|
+
background-repeat: no-repeat;
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
#fancybox-title-main {
|
|
204
|
+
font-weight: bold;
|
|
205
|
+
line-height: 29px;
|
|
206
|
+
background-image: url('fancybox-x.png');
|
|
207
|
+
background-position: 0px -40px;
|
|
208
|
+
color: #FFF;
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
#fancybox-title-right {
|
|
212
|
+
padding-left: 15px;
|
|
213
|
+
background-image: url('fancybox.png');
|
|
214
|
+
background-position: -55px -90px;
|
|
215
|
+
background-repeat: no-repeat;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
#fancybox-left, #fancybox-right {
|
|
219
|
+
position: absolute;
|
|
220
|
+
bottom: 0px;
|
|
221
|
+
height: 100%;
|
|
222
|
+
width: 35%;
|
|
223
|
+
cursor: pointer;
|
|
224
|
+
outline: none;
|
|
225
|
+
background-image: url('blank.gif');
|
|
226
|
+
z-index: 1102;
|
|
227
|
+
display: none;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
#fancybox-left {
|
|
231
|
+
left: 0px;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
#fancybox-right {
|
|
235
|
+
right: 0px;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
#fancybox-left-ico, #fancybox-right-ico {
|
|
239
|
+
position: absolute;
|
|
240
|
+
top: 50%;
|
|
241
|
+
left: -9999px;
|
|
242
|
+
width: 30px;
|
|
243
|
+
height: 30px;
|
|
244
|
+
margin-top: -15px;
|
|
245
|
+
cursor: pointer;
|
|
246
|
+
z-index: 1102;
|
|
247
|
+
display: block;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
#fancybox-left-ico {
|
|
251
|
+
background-image: url('fancybox.png');
|
|
252
|
+
background-position: -40px -30px;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
#fancybox-right-ico {
|
|
256
|
+
background-image: url('fancybox.png');
|
|
257
|
+
background-position: -40px -60px;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
#fancybox-left:hover, #fancybox-right:hover {
|
|
261
|
+
visibility: visible; /* IE6 */
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
#fancybox-left:hover span {
|
|
265
|
+
left: 20px;
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
#fancybox-right:hover span {
|
|
269
|
+
left: auto;
|
|
270
|
+
right: 20px;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
.fancy-bg {
|
|
274
|
+
position: absolute;
|
|
275
|
+
padding: 0;
|
|
276
|
+
margin: 0;
|
|
277
|
+
border: 0;
|
|
278
|
+
width: 20px;
|
|
279
|
+
height: 20px;
|
|
280
|
+
z-index: 1001;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
#fancy-bg-n {
|
|
284
|
+
top: -20px;
|
|
285
|
+
left: 0;
|
|
286
|
+
width: 100%;
|
|
287
|
+
background-image: url('fancybox-x.png');
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
#fancy-bg-ne {
|
|
291
|
+
top: -20px;
|
|
292
|
+
right: -20px;
|
|
293
|
+
background-image: url('fancybox.png');
|
|
294
|
+
background-position: -40px -162px;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
#fancy-bg-e {
|
|
298
|
+
top: 0;
|
|
299
|
+
right: -20px;
|
|
300
|
+
height: 100%;
|
|
301
|
+
background-image: url('fancybox-y.png');
|
|
302
|
+
background-position: -20px 0px;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
#fancy-bg-se {
|
|
306
|
+
bottom: -20px;
|
|
307
|
+
right: -20px;
|
|
308
|
+
background-image: url('fancybox.png');
|
|
309
|
+
background-position: -40px -182px;
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
#fancy-bg-s {
|
|
313
|
+
bottom: -20px;
|
|
314
|
+
left: 0;
|
|
315
|
+
width: 100%;
|
|
316
|
+
background-image: url('fancybox-x.png');
|
|
317
|
+
background-position: 0px -20px;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
#fancy-bg-sw {
|
|
321
|
+
bottom: -20px;
|
|
322
|
+
left: -20px;
|
|
323
|
+
background-image: url('fancybox.png');
|
|
324
|
+
background-position: -40px -142px;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
#fancy-bg-w {
|
|
328
|
+
top: 0;
|
|
329
|
+
left: -20px;
|
|
330
|
+
height: 100%;
|
|
331
|
+
background-image: url('fancybox-y.png');
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
#fancy-bg-nw {
|
|
335
|
+
top: -20px;
|
|
336
|
+
left: -20px;
|
|
337
|
+
background-image: url('fancybox.png');
|
|
338
|
+
background-position: -40px -122px;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
/* IE */
|
|
342
|
+
|
|
343
|
+
#fancybox-loading.fancybox-ie div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_loading.png', sizingMethod='scale'); }
|
|
344
|
+
.fancybox-ie #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_close.png', sizingMethod='scale'); }
|
|
345
|
+
|
|
346
|
+
.fancybox-ie #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
|
|
347
|
+
.fancybox-ie #fancybox-title-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
|
|
348
|
+
.fancybox-ie #fancybox-title-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
|
|
349
|
+
.fancybox-ie #fancybox-title-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }
|
|
350
|
+
|
|
351
|
+
.fancybox-ie #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
|
|
352
|
+
.fancybox-ie #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }
|
|
353
|
+
|
|
354
|
+
.fancybox-ie .fancy-bg { background: transparent !important; }
|
|
355
|
+
|
|
356
|
+
.fancybox-ie #fancy-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_n.png', sizingMethod='scale'); }
|
|
357
|
+
.fancybox-ie #fancy-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_ne.png', sizingMethod='scale'); }
|
|
358
|
+
.fancybox-ie #fancy-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_e.png', sizingMethod='scale'); }
|
|
359
|
+
.fancybox-ie #fancy-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_se.png', sizingMethod='scale'); }
|
|
360
|
+
.fancybox-ie #fancy-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_s.png', sizingMethod='scale'); }
|
|
361
|
+
.fancybox-ie #fancy-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_sw.png', sizingMethod='scale'); }
|
|
362
|
+
.fancybox-ie #fancy-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_w.png', sizingMethod='scale'); }
|
|
363
|
+
.fancybox-ie #fancy-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_shadow_nw.png', sizingMethod='scale'); }
|