EasyLogger 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/.gitignore +10 -0
  2. data/EasyLogger.gemspec +28 -0
  3. data/EasyLogger.rdoc +62 -0
  4. data/Gemfile +21 -0
  5. data/README.rdoc +64 -0
  6. data/Rakefile +71 -0
  7. data/bin/EasyLogger +104 -0
  8. data/doc/ArubaOverrides.html +204 -0
  9. data/doc/EasyLogger.html +130 -0
  10. data/doc/EasyLogger/EasyLogger.html +188 -0
  11. data/doc/EasyLogger_rdoc.html +207 -0
  12. data/doc/File.html +208 -0
  13. data/doc/Gemfile.html +123 -0
  14. data/doc/README_rdoc.html +211 -0
  15. data/doc/Rakefile.html +136 -0
  16. data/doc/_index.html +101 -0
  17. data/doc/bin/EasyLogger.html +62 -0
  18. data/doc/class_list.html +36 -0
  19. data/doc/created.rid +11 -0
  20. data/doc/css/common.css +1 -0
  21. data/doc/css/full_list.css +53 -0
  22. data/doc/css/style.css +310 -0
  23. data/doc/features/support/env_rb.html +56 -0
  24. data/doc/file.README.html +60 -0
  25. data/doc/file_list.html +38 -0
  26. data/doc/frames.html +13 -0
  27. data/doc/index.html +60 -0
  28. data/doc/js/app.js +202 -0
  29. data/doc/js/full_list.js +149 -0
  30. data/doc/js/jquery.js +154 -0
  31. data/doc/lib/EasyLogger_version_rb.html +52 -0
  32. data/doc/lib/easy_logger/easy_logger_rb.html +52 -0
  33. data/doc/lib/easy_logger_rb.html +54 -0
  34. data/doc/method_list.html +43 -0
  35. data/doc/rdoc.css +706 -0
  36. data/doc/top-level-namespace.html +88 -0
  37. data/features/class_filtering.feature +79 -0
  38. data/features/class_method_filtering.feature +29 -0
  39. data/features/command_line.feature +25 -0
  40. data/features/method_filtering.feature +72 -0
  41. data/features/step_definitions/command_line_steps.rb +1 -0
  42. data/features/support/env.rb +14 -0
  43. data/html/EasyLogger.html +170 -0
  44. data/html/EasyLogger/EasyLogger.html +379 -0
  45. data/html/File.html +200 -0
  46. data/html/Logging.html +280 -0
  47. data/html/README_rdoc.html +212 -0
  48. data/html/bin/EasyLogger.html +64 -0
  49. data/html/created.rid +7 -0
  50. data/html/index.html +198 -0
  51. data/html/lib/EasyLogger_version_rb.html +52 -0
  52. data/html/lib/easy_logger/easy_logger_rb.html +54 -0
  53. data/html/lib/easy_logger/logging_example_rb.html +54 -0
  54. data/html/lib/easy_logger_rb.html +54 -0
  55. data/html/rdoc.css +706 -0
  56. data/lib/EasyLogger_version.rb +3 -0
  57. data/lib/easy_logger.rb +1 -0
  58. data/lib/easy_logger/easy_logger.rb +116 -0
  59. data/lib/easy_logger/logging_example.rb +46 -0
  60. data/spec/EasyLogger/easy_logger_spec.rb +63 -0
  61. data/spec/spec_helper.rb +22 -0
  62. metadata +132 -0
@@ -0,0 +1,10 @@
1
+ pkg/*
2
+ *.gem
3
+ .bundle
4
+ nbproject/**/*
5
+ nbproject
6
+ .yardoc
7
+ .yardoc/**/*
8
+ Gemfile.lock
9
+ tmp
10
+ coverage*
@@ -0,0 +1,28 @@
1
+ # Ensure we require the local version and not one we might have installed already
2
+ require File.join([File.dirname(__FILE__),'lib','EasyLogger_version.rb'])
3
+ spec = Gem::Specification.new do |s|
4
+ s.name = 'EasyLogger'
5
+ s.version = EasyLogger::VERSION
6
+ s.author = "Sylvain Desbureaux"
7
+ s.email = ["sylvain@desbureaux.fr"]
8
+ s.homepage = ""
9
+ s.summary = "EasyLogger permit to filter in lines in logs"
10
+ s.description = "EasyLogger permit to filter in lines in logs, allowing to
11
+ view only the inputs you want based on Class or Method"
12
+
13
+ # Add your other files here if you make them
14
+ s.files = %w(
15
+ bin/EasyLogger
16
+ )
17
+ s.require_paths << 'lib'
18
+ s.has_rdoc = true
19
+ s.extra_rdoc_files = ['README.rdoc','EasyLogger.rdoc']
20
+ s.rdoc_options << '--title' << 'EasyLogger' << '--main' << 'README.rdoc' << '-ri'
21
+
22
+ s.rubyforge_project = "EasyLogger"
23
+
24
+ s.files = `git ls-files`.split("\n")
25
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
26
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
27
+ s.require_paths = ["lib"]
28
+ end
@@ -0,0 +1,62 @@
1
+ = <tt>EasyLogger</tt>
2
+
3
+ EasyLogger command_name [command-specific options] [--] arguments...
4
+
5
+ * Use the command +help+ to get a summary of commands
6
+ * Use the command <tt>help command_name</tt> to get a help for +command_name+
7
+ * Use <tt>--</tt> to stop command line argument processing; useful if your arguments have dashes in them
8
+
9
+ == Commands
10
+ [<tt>help</tt>] Shows list of commands or help for one command
11
+ [<tt>text</tt>] View the line matching model and/or methods on a log file in command line
12
+
13
+ === <tt>help [command]</tt>
14
+
15
+ Shows list of commands or help for one command
16
+
17
+ Gets help for the application or its commands. Can also list the commands in a way helpful to creating a bash-style completion function
18
+
19
+ ==== Options
20
+ These options are specified *after* the command.
21
+
22
+ [<tt>-c, --completion</tt>] List all commands one line at a time, for use with shell completion ([command] argument is partial command to match)
23
+ === <tt>text log_file [command]</tt>
24
+
25
+ View the line matching model and/or methods on a log file in command line
26
+
27
+ This will display the lines of the log file matching the model and/or the method
28
+ in a command line .
29
+ If tail-mode is set, only the new lines matching will be displayed whereas if
30
+ file-mode is set, it will be only the the already logged lines matching that will
31
+ be displayed. Without any of these options, both of them will be displayed.
32
+
33
+
34
+ ==== Options
35
+ These options are specified *after* the command.
36
+
37
+ [<tt>-c, --class=arg</tt>] classe(s) to match
38
+
39
+ The classe(s) to match in the log file. Can be mixed with method to match.
40
+ To put several classes, use a comma without space. Example -c Class1,Class2
41
+
42
+
43
+ [<tt>-f, --filemode</tt>] file-mode
44
+
45
+ if set, easy logger will sho only the matching past line of the file and exit.
46
+ if both file-mode and tail-mode is activated, file-mode will be chosen.
47
+
48
+
49
+ [<tt>-m, --method=arg</tt>] method(s) to match
50
+
51
+ The method(s) to match in the log file. Can be mixed with class to match.
52
+ To put several methods, use a comma without space. Example -m Method1,Method2
53
+
54
+
55
+ [<tt>-t, --tailmode</tt>] tail-mode
56
+
57
+ if set, easy logger will show only the new lines
58
+
59
+ [<tt>-v, --verbose</tt>] verbose
60
+
61
+ Switch to verbose mode where more outputs will be shown
62
+
data/Gemfile ADDED
@@ -0,0 +1,21 @@
1
+ source :rubygems
2
+
3
+ # Specify your gem's dependencies in EasyLogger.gemspec
4
+ gemspec
5
+
6
+ gem 'file-tail'
7
+ gem 'rake'
8
+ gem 'rdoc'
9
+ gem 'gli'
10
+
11
+
12
+ group(:test) do
13
+ gem 'rspec'
14
+ gem 'rspec-core'
15
+ gem 'rspec-expectations'
16
+ gem 'rspec-mocks'
17
+ gem 'cucumber'
18
+ #gem 'cover_me', '>= 1.0.0.rc4'
19
+ gem 'rcov'
20
+ gem 'aruba'
21
+ end
@@ -0,0 +1,64 @@
1
+ = <tt>EasyLogger</tt>
2
+
3
+ View the line matching model and/or methods on a log file in command line
4
+
5
+ EasyLogger command_name [command-specific options] [--] arguments...
6
+
7
+ * Use the command +help+ to get a summary of commands
8
+ * Use the command <tt>help command_name</tt> to get a help for +command_name+
9
+ * Use <tt>--</tt> to stop command line argument processing; useful if your arguments have dashes in them
10
+
11
+ == Commands
12
+ [<tt>help</tt>] Shows list of commands or help for one command
13
+ [<tt>text</tt>] View the line matching model and/or methods on a log file in command line
14
+
15
+ === <tt>help [command]</tt>
16
+
17
+ Shows list of commands or help for one command
18
+
19
+ Gets help for the application or its commands. Can also list the commands in a way helpful to creating a bash-style completion function
20
+
21
+ ==== Options
22
+ These options are specified *after* the command.
23
+
24
+ [<tt>-c, --completion</tt>] List all commands one line at a time, for use with shell completion ([command] argument is partial command to match)
25
+ === <tt>text log_file [command]</tt>
26
+
27
+ View the line matching model and/or methods on a log file in command line
28
+
29
+ This will display the lines of the log file matching the model and/or the method
30
+ in a command line .
31
+ If tail-mode is set, only the new lines matching will be displayed whereas if
32
+ file-mode is set, it will be only the the already logged lines matching that will
33
+ be displayed. Without any of these options, both of them will be displayed.
34
+
35
+
36
+ ==== Options
37
+ These options are specified *after* the command.
38
+
39
+ [<tt>-c, --class=arg</tt>] classe(s) to match
40
+
41
+ The classe(s) to match in the log file. Can be mixed with method to match.
42
+ To put several classes, use a comma without space. Example -c Class1,Class2
43
+
44
+
45
+ [<tt>-f, --filemode</tt>] file-mode
46
+
47
+ if set, easy logger will sho only the matching past line of the file and exit.
48
+ if both file-mode and tail-mode is activated, file-mode will be chosen.
49
+
50
+
51
+ [<tt>-m, --method=arg</tt>] method(s) to match
52
+
53
+ The method(s) to match in the log file. Can be mixed with class to match.
54
+ To put several methods, use a comma without space. Example -m Method1,Method2
55
+
56
+
57
+ [<tt>-t, --tailmode</tt>] tail-mode
58
+
59
+ if set, easy logger will show only the new lines
60
+
61
+ [<tt>-v, --verbose</tt>] verbose
62
+
63
+ Switch to verbose mode where more outputs will be shown
64
+
@@ -0,0 +1,71 @@
1
+ require 'rake/clean'
2
+ require 'rubygems'
3
+ require 'rake/gempackagetask'
4
+ require 'rake/rdoctask'
5
+ require 'bundler'
6
+ require 'cucumber/rake/task'
7
+
8
+
9
+ Bundler::GemHelper.install_tasks
10
+
11
+ Rake::RDocTask.new do |rd|
12
+ rd.main = "README.rdoc"
13
+ rd.rdoc_files.include("README.rdoc","lib/**/*.rb","bin/**/*")
14
+ rd.title = 'Your application title'
15
+ end
16
+
17
+ spec = eval(File.read('EasyLogger.gemspec'))
18
+
19
+ Rake::GemPackageTask.new(spec) do |pkg|
20
+ end
21
+
22
+ require 'rake/testtask'
23
+ Rake::TestTask.new do |t|
24
+ t.libs << "test"
25
+ t.test_files = FileList['test/tc_*.rb']
26
+ end
27
+
28
+ task :default => :test
29
+
30
+ require 'rspec/core/rake_task'
31
+
32
+ desc "Run all tests"
33
+ RSpec::Core::RakeTask.new do |t|
34
+ t.rspec_opts = ["-c", "-f progress"]
35
+ t.pattern = 'spec/**/*_spec.rb'
36
+ end
37
+
38
+ namespace :cover_me do
39
+
40
+ task :report do
41
+ require 'cover_me'
42
+ require File.join(File.expand_path(File.dirname(__FILE__)), "coverage", "cover_me_config")
43
+ CoverMe.complete!
44
+ end
45
+
46
+ end
47
+
48
+ namespace :cov do
49
+ Cucumber::Rake::Task.new(:cucumber) do |t|
50
+ t.rcov = true
51
+ t.rcov_opts = %w{ -Ilib --exclude .rvm\/,osx\/objc,gems\/,spec\/,features\/,doc\/ --aggregate coverage.data}
52
+ t.rcov_opts << %w{ -T}
53
+ t.rcov_opts << %[-o "coverage.features"]
54
+ end
55
+
56
+ RSpec::Core::RakeTask.new(:rspec) do |t|
57
+ t.pattern = 'spec/**/*_spec.rb'
58
+ t.rcov = true
59
+ t.rcov_opts = %w{ -Ilib --exclude .rvm\/,osx\/objc,gems\/,spec\/,features\/ --aggregate coverage.data}
60
+ t.rcov_opts << %w{ -T}
61
+ t.rcov_opts << %[-o "coverage.spec"]
62
+ end
63
+
64
+ desc "Run both specs and features to generate aggregated coverage"
65
+ task :all do |t|
66
+ rm "coverage.data" if File.exist?("coverage.data")
67
+ Rake::Task['cov:cucumber'].invoke
68
+ Rake::Task["cov:rspec"].invoke
69
+ end
70
+ end
71
+
@@ -0,0 +1,104 @@
1
+ #!/usr/bin/ruby -W0
2
+ # 1.9 adds realpath to resolve symlinks; 1.8 doesn't
3
+ # have this method, so we add it so we get resolved symlinks
4
+ # and compatibility
5
+ unless File.respond_to? :realpath
6
+ class File
7
+ def self.realpath path
8
+ return realpath(File.readlink(path)) if symlink?(path)
9
+ path
10
+ end
11
+ end
12
+ end
13
+ $: << File.expand_path(File.dirname(File.realpath(__FILE__)) + '/../lib')
14
+ require 'rubygems'
15
+ require 'gli'
16
+ require 'EasyLogger_version'
17
+ require 'easy_logger'
18
+
19
+ include GLI
20
+
21
+ version EasyLogger::VERSION
22
+
23
+ desc 'View the line matching model and/or methods on a log file in command line'
24
+ long_desc <<EOS
25
+ This will display the lines of the log file matching the model and/or the method
26
+ in a command line .
27
+ If tail-mode is set, only the new lines matching will be displayed whereas if
28
+ file-mode is set, it will be only the the already logged lines matching that will
29
+ be displayed. Without any of these options, both of them will be displayed.
30
+ EOS
31
+ arg_name 'log_file [command]'
32
+ command [:text] do |c|
33
+ c. desc 'tail-mode'
34
+ c.long_desc 'if set, easy logger will show only the new lines'
35
+ c.switch [:t, :tailmode]
36
+
37
+ c.desc 'file-mode'
38
+ c.long_desc <<EOS
39
+ if set, easy logger will sho only the matching past line of the file and exit.
40
+ if both file-mode and tail-mode is activated, file-mode will be chosen.
41
+ EOS
42
+ c.switch [:f, :filemode]
43
+
44
+ c.desc 'verbose'
45
+ c.long_desc 'Switch to verbose mode where more outputs will be shown'
46
+ c.switch [:v, :verbose]
47
+
48
+ c.desc 'classe(s) to match'
49
+ c.long_desc <<EOS
50
+ The classe(s) to match in the log file. Can be mixed with method to match.
51
+ To put several classes, use a comma without space. Example -c Class1,Class2
52
+ EOS
53
+ c.flag [:c, :class]
54
+
55
+ c.desc 'method(s) to match'
56
+ c.long_desc <<EOS
57
+ The method(s) to match in the log file. Can be mixed with class to match.
58
+ To put several methods, use a comma without space. Example -m Method1,Method2
59
+ EOS
60
+ c.flag [:m, :method]
61
+ c.action do |g,o,args|
62
+ if args.length < 1
63
+ raise 'You must specify the name of the log file'
64
+ end
65
+
66
+ start_time = Time.now
67
+
68
+ puts "Log file to look at: #{args[0]}" if o[:v]
69
+ puts " * Class to match: #{o[:c]}" if o[:v] && o[:c]
70
+ puts " * Method to match: #{o[:m]}" if o[:v] && o[:m]
71
+ puts " - Tail Mode activated" if o[:v] && o[:t] && !o[:f]
72
+ puts " - Tail Mode activated by command line but disabled by file-mode" if o[:v] && o[:t] && o[:f]
73
+ puts " - File Mode activated" if o[:v] && o[:f]
74
+ o[:t] = false if (o[:t] && o[:f])
75
+ unless o[:t] || o[:f]
76
+ o[:t] = true
77
+ o[:f] = true
78
+ end
79
+
80
+ easylog = EasyLogger::EasyLogger.new
81
+ easylog.file(args[0],o[:c],o[:m],o[:v]) if o[:f]
82
+ easylog.tail(args[0], o[:c],o[:m],o[:v]) if o[:t]
83
+ puts " Line(s) processed in #{(Time.now - start_time).to_i} seconds" if o[:v]
84
+ end
85
+ end
86
+
87
+ pre do |global,command,options,args|
88
+ # Pre logic here
89
+ # Return true to proceed; false to abort and not call the
90
+ # chosen command
91
+ true
92
+ end
93
+
94
+ post do |global,command,options,args|
95
+ # Post logic here
96
+ end
97
+
98
+ on_error do |exception|
99
+ # Error logic here
100
+ # return false to skip default error handling
101
+ true
102
+ end
103
+
104
+ exit GLI.run(ARGV)
@@ -0,0 +1,204 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Module: ArubaOverrides</title>
9
+
10
+ <link rel="stylesheet" href="./rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="./js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="./js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="./js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="./js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="module">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="./index.html">Home</a>
29
+ <a href="./index.html#classes">Classes</a>
30
+ <a href="./index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="./features/support/env_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="features/support/env.rb">features/support/env.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+
56
+ <!-- Namespace Contents -->
57
+
58
+
59
+ <!-- Method Quickref -->
60
+
61
+ <div id="method-list-section" class="section">
62
+ <h3 class="section-header">Methods</h3>
63
+ <ul class="link-list">
64
+
65
+ <li><a href="#method-i-detect_ruby_script">#detect_ruby_script</a></li>
66
+
67
+ </ul>
68
+ </div>
69
+
70
+
71
+ <!-- Included Modules -->
72
+
73
+ </div>
74
+
75
+ <div id="project-metadata">
76
+
77
+
78
+ <div id="fileindex-section" class="section project-section">
79
+ <h3 class="section-header">Files</h3>
80
+ <ul>
81
+
82
+ <li class="file"><a href="./EasyLogger_rdoc.html">EasyLogger.rdoc</a></li>
83
+
84
+ <li class="file"><a href="./Gemfile.html">Gemfile</a></li>
85
+
86
+ <li class="file"><a href="./README_rdoc.html">README.rdoc</a></li>
87
+
88
+ <li class="file"><a href="./Rakefile.html">Rakefile</a></li>
89
+
90
+ <li class="file"><a href="./nbproject/private/rake-d_txt.html">rake-d.txt</a></li>
91
+
92
+ </ul>
93
+ </div>
94
+
95
+
96
+ <div id="classindex-section" class="section project-section">
97
+ <h3 class="section-header">Class Index
98
+ <span class="search-toggle"><img src="./images/find.png"
99
+ height="16" width="16" alt="[+]"
100
+ title="show/hide quicksearch" /></span></h3>
101
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
102
+ <fieldset>
103
+ <legend>Quicksearch</legend>
104
+ <input type="text" name="quicksearch" value=""
105
+ class="quicksearch-field" />
106
+ </fieldset>
107
+ </form>
108
+
109
+ <ul class="link-list">
110
+
111
+ <li><a href="./EasyLogger.html">EasyLogger</a></li>
112
+
113
+ <li><a href="./EasyLogger/EasyLogger.html">EasyLogger::EasyLogger</a></li>
114
+
115
+ <li><a href="./ArubaOverrides.html">ArubaOverrides</a></li>
116
+
117
+ <li><a href="./File.html">File</a></li>
118
+
119
+ </ul>
120
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
121
+ </div>
122
+
123
+
124
+ </div>
125
+ </div>
126
+
127
+ <div id="documentation">
128
+ <h1 class="module">ArubaOverrides</h1>
129
+
130
+ <div id="description">
131
+
132
+ </div>
133
+
134
+ <!-- Constants -->
135
+
136
+
137
+ <!-- Attributes -->
138
+
139
+
140
+ <!-- Methods -->
141
+
142
+ <div id="public-instance-method-details" class="method-section section">
143
+ <h3 class="section-header">Public Instance Methods</h3>
144
+
145
+
146
+ <div id="detect-ruby-script-method" class="method-detail ">
147
+ <a name="method-i-detect_ruby_script"></a>
148
+
149
+ <div class="method-heading">
150
+
151
+ <span class="method-name">detect_ruby_script</span><span
152
+ class="method-args">(cmd)</span>
153
+ <span class="method-click-advice">click to toggle source</span>
154
+
155
+ </div>
156
+
157
+ <div class="method-description">
158
+
159
+
160
+
161
+
162
+
163
+ <div class="method-source-code"
164
+ id="detect-ruby-script-source">
165
+ <pre>
166
+ <span class="ruby-comment cmt"># File features/support/env.rb, line 5</span>
167
+ 5: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">detect_ruby_script</span>(<span class="ruby-identifier">cmd</span>)
168
+ 6: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">cmd</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^easylog.rb /</span>
169
+ 7: <span class="ruby-node">&quot;rvm 1.9.2-head lib/#{cmd}&quot;</span>
170
+ 8: <span class="ruby-keyword kw">else</span>
171
+ 9: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">cmd</span>)
172
+ 10: <span class="ruby-keyword kw">end</span>
173
+ 11: <span class="ruby-keyword kw">end</span></pre>
174
+ </div>
175
+
176
+ </div>
177
+
178
+
179
+
180
+
181
+ </div>
182
+
183
+
184
+ </div>
185
+
186
+
187
+ </div>
188
+
189
+
190
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
191
+
192
+ <p>Disabled; run with --debug to generate this.</p>
193
+
194
+ </div>
195
+
196
+ <div id="validator-badges">
197
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
198
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
199
+ Rdoc Generator</a> 1.1.6</small>.</p>
200
+ </div>
201
+
202
+ </body>
203
+ </html>
204
+