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.
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'); }