log_switch 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. data/History.rdoc +8 -0
  2. data/README.rdoc +28 -0
  3. data/Rakefile +14 -7
  4. data/lib/log_switch.rb +16 -7
  5. data/lib/log_switch/mixin.rb +11 -0
  6. data/lib/log_switch/version.rb +1 -1
  7. data/log_switch.gemspec +19 -9
  8. data/spec/coverage/assets/0.5.3/app.js +88 -0
  9. data/spec/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
  10. data/spec/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
  11. data/spec/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
  12. data/spec/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
  13. data/spec/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
  14. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
  15. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
  16. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
  17. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
  18. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
  19. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
  20. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
  21. data/spec/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
  22. data/spec/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
  23. data/spec/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
  24. data/spec/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
  25. data/spec/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
  26. data/spec/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
  27. data/spec/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
  28. data/spec/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
  29. data/spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
  30. data/spec/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  31. data/spec/coverage/assets/0.5.3/favicon_green.png +0 -0
  32. data/spec/coverage/assets/0.5.3/favicon_red.png +0 -0
  33. data/spec/coverage/assets/0.5.3/favicon_yellow.png +0 -0
  34. data/spec/coverage/assets/0.5.3/highlight.css +129 -0
  35. data/spec/coverage/assets/0.5.3/highlight.pack.js +1 -0
  36. data/spec/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
  37. data/spec/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
  38. data/spec/coverage/assets/0.5.3/jquery.timeago.js +141 -0
  39. data/spec/coverage/assets/0.5.3/jquery.url.js +174 -0
  40. data/spec/coverage/assets/0.5.3/loading.gif +0 -0
  41. data/spec/coverage/assets/0.5.3/magnify.png +0 -0
  42. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  43. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  44. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  45. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  46. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  47. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  48. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  49. data/spec/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  50. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
  51. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  52. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
  53. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
  54. data/spec/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  55. data/spec/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  56. data/spec/coverage/assets/0.5.3/stylesheet.css +383 -0
  57. data/spec/coverage/assets/0.7.1/application.css +1110 -0
  58. data/spec/coverage/assets/0.7.1/application.js +626 -0
  59. data/spec/coverage/assets/0.7.1/fancybox/blank.gif +0 -0
  60. data/spec/coverage/assets/0.7.1/fancybox/fancy_close.png +0 -0
  61. data/spec/coverage/assets/0.7.1/fancybox/fancy_loading.png +0 -0
  62. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_left.png +0 -0
  63. data/spec/coverage/assets/0.7.1/fancybox/fancy_nav_right.png +0 -0
  64. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_e.png +0 -0
  65. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_n.png +0 -0
  66. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_ne.png +0 -0
  67. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_nw.png +0 -0
  68. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_s.png +0 -0
  69. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_se.png +0 -0
  70. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_sw.png +0 -0
  71. data/spec/coverage/assets/0.7.1/fancybox/fancy_shadow_w.png +0 -0
  72. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_left.png +0 -0
  73. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_main.png +0 -0
  74. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_over.png +0 -0
  75. data/spec/coverage/assets/0.7.1/fancybox/fancy_title_right.png +0 -0
  76. data/spec/coverage/assets/0.7.1/fancybox/fancybox-x.png +0 -0
  77. data/spec/coverage/assets/0.7.1/fancybox/fancybox-y.png +0 -0
  78. data/spec/coverage/assets/0.7.1/fancybox/fancybox.png +0 -0
  79. data/spec/coverage/assets/0.7.1/favicon_green.png +0 -0
  80. data/spec/coverage/assets/0.7.1/favicon_red.png +0 -0
  81. data/spec/coverage/assets/0.7.1/favicon_yellow.png +0 -0
  82. data/spec/coverage/assets/0.7.1/loading.gif +0 -0
  83. data/spec/coverage/assets/0.7.1/magnify.png +0 -0
  84. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  85. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  86. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  87. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  88. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  89. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  90. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  91. data/spec/coverage/assets/0.7.1/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  92. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_222222_256x240.png +0 -0
  93. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  94. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_454545_256x240.png +0 -0
  95. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_888888_256x240.png +0 -0
  96. data/spec/coverage/assets/0.7.1/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  97. data/spec/coverage/index.html +81 -0
  98. data/spec/log_switch/coverage/assets/0.5.3/app.js +88 -0
  99. data/spec/log_switch/coverage/assets/0.5.3/fancybox/blank.gif +0 -0
  100. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_close.png +0 -0
  101. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_loading.png +0 -0
  102. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_nav_left.png +0 -0
  103. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_nav_right.png +0 -0
  104. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_e.png +0 -0
  105. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_n.png +0 -0
  106. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_ne.png +0 -0
  107. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_nw.png +0 -0
  108. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_s.png +0 -0
  109. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_se.png +0 -0
  110. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_sw.png +0 -0
  111. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_shadow_w.png +0 -0
  112. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_title_left.png +0 -0
  113. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_title_main.png +0 -0
  114. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_title_over.png +0 -0
  115. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancy_title_right.png +0 -0
  116. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancybox-x.png +0 -0
  117. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancybox-y.png +0 -0
  118. data/spec/log_switch/coverage/assets/0.5.3/fancybox/fancybox.png +0 -0
  119. data/spec/log_switch/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.css +363 -0
  120. data/spec/log_switch/coverage/assets/0.5.3/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  121. data/spec/log_switch/coverage/assets/0.5.3/favicon_green.png +0 -0
  122. data/spec/log_switch/coverage/assets/0.5.3/favicon_red.png +0 -0
  123. data/spec/log_switch/coverage/assets/0.5.3/favicon_yellow.png +0 -0
  124. data/spec/log_switch/coverage/assets/0.5.3/highlight.css +129 -0
  125. data/spec/log_switch/coverage/assets/0.5.3/highlight.pack.js +1 -0
  126. data/spec/log_switch/coverage/assets/0.5.3/jquery-1.6.2.min.js +18 -0
  127. data/spec/log_switch/coverage/assets/0.5.3/jquery.dataTables.min.js +152 -0
  128. data/spec/log_switch/coverage/assets/0.5.3/jquery.timeago.js +141 -0
  129. data/spec/log_switch/coverage/assets/0.5.3/jquery.url.js +174 -0
  130. data/spec/log_switch/coverage/assets/0.5.3/loading.gif +0 -0
  131. data/spec/log_switch/coverage/assets/0.5.3/magnify.png +0 -0
  132. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  133. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  134. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  135. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  136. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  137. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  138. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  139. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  140. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_222222_256x240.png +0 -0
  141. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
  142. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_454545_256x240.png +0 -0
  143. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_888888_256x240.png +0 -0
  144. data/spec/log_switch/coverage/assets/0.5.3/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
  145. data/spec/log_switch/coverage/assets/0.5.3/smoothness/jquery-ui-1.8.4.custom.css +295 -0
  146. data/spec/log_switch/coverage/assets/0.5.3/stylesheet.css +383 -0
  147. data/spec/log_switch/coverage/index.html +81 -0
  148. data/spec/log_switch/mixin_spec.rb +48 -8
  149. data/spec/log_switch_spec.rb +27 -27
  150. 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 = %w(--title log_switch Documentation (#{LogSwitch::VERSION}))
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
- # Alias for rubygems-test
19
- task :test => :spec
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
- task :default => :install
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.log_level = :debug
91
+ self.log_class_name = false
83
92
  end
84
93
  end
@@ -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
@@ -1,3 +1,3 @@
1
1
  module LogSwitch
2
- VERSION = '0.3.0'
2
+ VERSION = '0.4.0'
3
3
  end
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 turned on and off.)
11
- s.description = %q(Extends a class for singleton style logging that can easily be turned on and off.)
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}/**/*") + Dir.glob("*.rdoc") +
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 = ["lib"]
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("simplecov", [">= 0"])
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
- s.add_development_dependency("yard", [">= 0.7.2"])
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
+ });
@@ -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'); }