rspec 0.5.11 → 0.5.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/CHANGES +12 -0
  2. data/README +4 -2
  3. data/Rakefile +14 -4
  4. data/bin/spec +7 -7
  5. data/bin/test2spec +13 -8
  6. data/lib/spec/api/helper/diff.rb +53 -0
  7. data/lib/spec/api/helper/instance_helper.rb +11 -11
  8. data/lib/spec/api/helper/instance_negator.rb +11 -11
  9. data/lib/spec/api/helper/kind_helper.rb +11 -11
  10. data/lib/spec/api/helper/kind_negator.rb +11 -11
  11. data/lib/spec/api/helper/respond_helper.rb +11 -11
  12. data/lib/spec/api/helper/respond_negator.rb +11 -11
  13. data/lib/spec/api/helper/should_base.rb +6 -6
  14. data/lib/spec/api/helper/should_helper.rb +35 -35
  15. data/lib/spec/api/helper/should_negator.rb +20 -20
  16. data/lib/spec/rake/spectask.rb +15 -6
  17. data/lib/spec/runner.rb +1 -0
  18. data/lib/spec/runner/backtrace_tweaker.rb +2 -0
  19. data/lib/spec/runner/base_text_formatter.rb +3 -1
  20. data/lib/spec/runner/html_formatter.rb +153 -0
  21. data/lib/spec/runner/option_parser.rb +9 -2
  22. data/lib/spec/runner/progress_bar_formatter.rb +4 -0
  23. data/lib/spec/runner/rdoc_formatter.rb +3 -0
  24. data/lib/spec/runner/reporter.rb +5 -5
  25. data/lib/spec/runner/specdoc_formatter.rb +3 -0
  26. data/lib/spec/test_to_spec/sexp_transformer.rb +1 -0
  27. data/lib/spec/test_to_spec/translation_test_runner.rb +10 -2
  28. data/lib/spec/version.rb +1 -1
  29. data/test/spec/api/helper/arbitrary_predicate_test.rb +49 -73
  30. data/test/spec/api/helper/diff_test.rb +60 -0
  31. data/test/spec/api/helper/equality_test.rb +14 -0
  32. data/test/spec/api/helper/should_have_test.rb +0 -29
  33. data/test/spec/api/helper/typing_test.rb +87 -87
  34. data/test/spec/api/sugar_test.rb +0 -6
  35. data/test/spec/runner/backtrace_tweaker_test.rb +8 -2
  36. data/test/spec/runner/html_formatter_test.rb +47 -0
  37. data/test/spec/runner/option_parser_test.rb +0 -5
  38. data/test/test_classes.rb +73 -0
  39. data/test/test_helper.rb +3 -0
  40. metadata +8 -49
  41. data/doc/README +0 -3
  42. data/doc/config.yaml +0 -2
  43. data/doc/plugin/syntax.rb +0 -60
  44. data/doc/plugin/version.rb +0 -19
  45. data/doc/src/core_team.page +0 -31
  46. data/doc/src/default.css +0 -199
  47. data/doc/src/default.template +0 -31
  48. data/doc/src/documentation/index.page +0 -188
  49. data/doc/src/documentation/meta.info +0 -22
  50. data/doc/src/documentation/mocks.page +0 -287
  51. data/doc/src/documentation/underscores.page +0 -21
  52. data/doc/src/examples.page +0 -9
  53. data/doc/src/images/David_and_Aslak.jpg +0 -0
  54. data/doc/src/images/Whats_That_Dude.jpg +0 -0
  55. data/doc/src/images/ducks1.png +0 -0
  56. data/doc/src/images/ul.gif +0 -0
  57. data/doc/src/index.page +0 -74
  58. data/doc/src/meta.info +0 -33
  59. data/doc/src/tools/index.page +0 -49
  60. data/doc/src/tools/meta.info +0 -18
  61. data/doc/src/tools/rails.page +0 -132
  62. data/doc/src/tools/rake.page +0 -21
  63. data/doc/src/tools/rcov.page +0 -28
  64. data/doc/src/tools/spec.page +0 -129
  65. data/doc/src/tools/test2spec.page +0 -103
  66. data/doc/src/tutorials/index.page +0 -52
  67. data/doc/src/tutorials/meta.info +0 -36
  68. data/doc/src/tutorials/notes.txt +0 -263
  69. data/doc/src/tutorials/stack.rb +0 -11
  70. data/doc/src/tutorials/stack_01.page +0 -226
  71. data/doc/src/tutorials/stack_02.page +0 -182
  72. data/doc/src/tutorials/stack_03.page +0 -283
  73. data/doc/src/tutorials/stack_04.page +0 -164
  74. data/doc/src/tutorials/stack_04.page.orig +0 -123
  75. data/doc/src/tutorials/stack_05.page +0 -90
  76. data/doc/src/tutorials/stack_05.page.orig +0 -124
  77. data/doc/src/tutorials/stack_06.page +0 -359
  78. data/doc/src/tutorials/stack_06.page.orig +0 -359
  79. data/doc/src/tutorials/stack_spec.rb +0 -25
  80. data/doc/src/ul.gif +0 -0
@@ -61,11 +61,5 @@ module Spec
61
61
  end
62
62
 
63
63
  end
64
-
65
- class ClassWithMultiWordPredicate
66
- def multi_word_predicate?
67
- true
68
- end
69
- end
70
64
  end
71
65
  end
@@ -65,14 +65,20 @@ module Spec
65
65
  @error.backtrace.should_be_empty
66
66
  end
67
67
 
68
+ def test_should_remove_bin_spec
69
+ @error.set_backtrace ["bin/spec:"]
70
+ @tweaker.tweak_backtrace @error, 'spec name'
71
+ @error.backtrace.should_be_empty
72
+ end
73
+
68
74
  def test_should_remove_anything_from_textmate_ruby_bundle
69
75
  @error.set_backtrace ["/Applications/TextMate.app/Contents/SharedSupport/Bundles/Ruby.tmbundle/Support/tmruby.rb:147"]
70
76
  @tweaker.tweak_backtrace @error, 'spec name'
71
77
  @error.backtrace.should_be_empty
72
78
  end
73
79
 
74
- def test_should_remove_bin_spec
75
- @error.set_backtrace ["bin/spec:"]
80
+ def test_should_remove_anything_from_rspec_on_rails
81
+ @error.set_backtrace ["/usr/local/lib/ruby/gems/1.8/gems/rspec_generator-0.5.12/lib/rspec_on_rails.rb:33:in `run'"]
76
82
  @tweaker.tweak_backtrace @error, 'spec name'
77
83
  @error.backtrace.should_be_empty
78
84
  end
@@ -0,0 +1,47 @@
1
+ require File.dirname(__FILE__) + '/../../test_helper'
2
+ module Spec
3
+ module Runner
4
+ class HtmlFormatterTest < Test::Unit::TestCase
5
+
6
+ def setup
7
+ @io = StringIO.new
8
+ @formatter = HtmlFormatter.new(@io)
9
+ end
10
+
11
+ def test_should_push_header_on_start
12
+ @formatter.start(5)
13
+ assert_equal(HtmlFormatter::HEADER, @io.string)
14
+ end
15
+
16
+ def test_should_push_context_name
17
+ @formatter.add_context("fruit", true)
18
+ assert_equal("<div class=\"context\">\n <div>fruit</div>\n <div>\n", @io.string)
19
+ end
20
+
21
+ def test_should_push_div_with_spec_passed_class
22
+ @formatter.spec_started("spec")
23
+ @formatter.spec_passed("spec")
24
+ assert_equal("<div class=\"spec passed\">spec</div>\n", @io.string)
25
+ end
26
+
27
+ def test_should_push_div_with_spec_failed_class
28
+ exception = StandardError.new("boo")
29
+ failure = Reporter::Failure.new("context_name", "spec_name", exception)
30
+ @formatter.spec_started("spec_name")
31
+ @formatter.spec_failed("spec_name", 98, failure)
32
+ assert_match(/<div class="spec failed">/, @io.string)
33
+ end
34
+
35
+ def test_should_close_html_on_dump_summary
36
+ @formatter.dump_summary(3,2,1)
37
+ assert_equal("</body></html>", @io.string)
38
+ end
39
+
40
+ def test_should_push_div_on_start_dump
41
+ @formatter.start_dump
42
+ assert_equal("</div>", @io.string.split.last)
43
+ end
44
+
45
+ end
46
+ end
47
+ end
@@ -1,10 +1,5 @@
1
1
  require File.dirname(__FILE__) + '/../../test_helper'
2
2
 
3
- module Custom
4
- class Formatter
5
- end
6
- end
7
-
8
3
  module Spec
9
4
  module Runner
10
5
  class OptionParserTest < Test::Unit::TestCase
@@ -0,0 +1,73 @@
1
+ # This file contains various classes used by the tests.
2
+ # They are kept in a separate file so that they can also
3
+ # be accessed by the test2spec-translated specs
4
+ module Spec
5
+ module Api
6
+ class ClassWithMultiWordPredicate
7
+ def multi_word_predicate?
8
+ true
9
+ end
10
+ end
11
+
12
+ module Helper
13
+ class CollectionWithSizeMethod
14
+ def initialize; @list = []; end
15
+ def size; @list.size; end
16
+ def push(item); @list.push(item); end
17
+ end
18
+
19
+ class CollectionWithLengthMethod
20
+ def initialize; @list = []; end
21
+ def length; @list.size; end
22
+ def push(item); @list.push(item); end
23
+ end
24
+
25
+ class CollectionOwner
26
+ attr_reader :items_in_collection_with_size_method, :items_in_collection_with_length_method
27
+
28
+ def initialize
29
+ @items_in_collection_with_size_method = CollectionWithSizeMethod.new
30
+ @items_in_collection_with_length_method = CollectionWithLengthMethod.new
31
+ end
32
+
33
+ def add_to_collection_with_size_method(item)
34
+ @items_in_collection_with_size_method.push(item)
35
+ end
36
+
37
+ def add_to_collection_with_length_method(item)
38
+ @items_in_collection_with_length_method.push(item)
39
+ end
40
+ end
41
+
42
+ class XxxMock
43
+ def initialize(return_val)
44
+ @return_val = return_val
45
+ @xxx_called = false
46
+ end
47
+
48
+ def xxx?
49
+ @xxx_called = true
50
+ @return_val
51
+ end
52
+
53
+ def yyy?(a, b, c)
54
+ a.should.be 1
55
+ b.should.be 2
56
+ c.should.be 3
57
+ @xxx_called = true
58
+ @return_val
59
+ end
60
+
61
+ def __verify
62
+ @xxx_called.should.be true
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
68
+
69
+ module Custom
70
+ class Formatter
71
+ end
72
+ end
73
+
@@ -3,6 +3,9 @@ require 'stringio'
3
3
  $LOAD_PATH.push File.dirname(__FILE__) + '/../lib'
4
4
  $LOAD_PATH.push File.dirname(__FILE__) + '/../test'
5
5
  require 'spec'
6
+ require 'test_classes'
7
+ RSPEC_TESTING = true unless defined? RSPEC_TESTING # This causes the diff extension to not be loaded
8
+ require 'spec/api/helper/diff'
6
9
  $context_runner = ::Spec::Runner::OptionParser.create_context_runner(['test'], false, STDERR, STDOUT)
7
10
 
8
11
  # helpers for test_to_spec tests
metadata CHANGED
@@ -3,9 +3,9 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: rspec
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.5.11
7
- date: 2006-06-15 00:00:00 -05:00
8
- summary: RSpec-0.5.11 - BDD for Ruby http://rspec.rubyforge.org/
6
+ version: 0.5.12
7
+ date: 2006-06-16 00:00:00 -05:00
8
+ summary: RSpec-0.5.12 - BDD for Ruby http://rspec.rubyforge.org/
9
9
  require_paths:
10
10
  - lib
11
11
  email: rspec-devel@rubyforge.org
@@ -40,6 +40,7 @@ files:
40
40
  - lib/spec/api/expectations.rb
41
41
  - lib/spec/api/helper.rb
42
42
  - lib/spec/api/sugar.rb
43
+ - lib/spec/api/helper/diff.rb
43
44
  - lib/spec/api/helper/have_helper.rb
44
45
  - lib/spec/api/helper/instance_helper.rb
45
46
  - lib/spec/api/helper/instance_negator.rb
@@ -61,6 +62,7 @@ files:
61
62
  - lib/spec/runner/context.rb
62
63
  - lib/spec/runner/context_runner.rb
63
64
  - lib/spec/runner/execution_context.rb
65
+ - lib/spec/runner/html_formatter.rb
64
66
  - lib/spec/runner/instance_exec.rb
65
67
  - lib/spec/runner/kernel_ext.rb
66
68
  - lib/spec/runner/option_parser.rb
@@ -74,11 +76,13 @@ files:
74
76
  - lib/spec/test_to_spec/sexp_transformer.rb
75
77
  - lib/spec/test_to_spec/test_case_ext.rb
76
78
  - lib/spec/test_to_spec/translation_test_runner.rb
79
+ - test/test_classes.rb
77
80
  - test/test_helper.rb
78
81
  - test/spec/api/duck_type_test.rb
79
82
  - test/spec/api/sugar_test.rb
80
83
  - test/spec/api/helper/arbitrary_predicate_test.rb
81
84
  - test/spec/api/helper/containment_test.rb
85
+ - test/spec/api/helper/diff_test.rb
82
86
  - test/spec/api/helper/equality_test.rb
83
87
  - test/spec/api/helper/identity_test.rb
84
88
  - test/spec/api/helper/raising_test.rb
@@ -98,6 +102,7 @@ files:
98
102
  - test/spec/runner/context_test.rb
99
103
  - test/spec/runner/execution_context_test.rb
100
104
  - test/spec/runner/failure_dump_test.rb
105
+ - test/spec/runner/html_formatter_test.rb
101
106
  - test/spec/runner/kernel_ext_test.rb
102
107
  - test/spec/runner/option_parser_test.rb
103
108
  - test/spec/runner/progress_bar_formatter_test.rb
@@ -119,52 +124,6 @@ files:
119
124
  - examples/stack.rb
120
125
  - examples/stack_spec.rb
121
126
  - examples/sugar_spec.rb
122
- - doc/config.yaml
123
- - doc/plugin
124
- - doc/README
125
- - doc/src
126
- - doc/plugin/syntax.rb
127
- - doc/plugin/version.rb
128
- - doc/src/core_team.page
129
- - doc/src/default.css
130
- - doc/src/default.template
131
- - doc/src/documentation
132
- - doc/src/examples.page
133
- - doc/src/images
134
- - doc/src/index.page
135
- - doc/src/meta.info
136
- - doc/src/tools
137
- - doc/src/tutorials
138
- - doc/src/ul.gif
139
- - doc/src/documentation/index.page
140
- - doc/src/documentation/meta.info
141
- - doc/src/documentation/mocks.page
142
- - doc/src/documentation/underscores.page
143
- - doc/src/images/David_and_Aslak.jpg
144
- - doc/src/images/ducks1.png
145
- - doc/src/images/ul.gif
146
- - doc/src/images/Whats_That_Dude.jpg
147
- - doc/src/tools/index.page
148
- - doc/src/tools/meta.info
149
- - doc/src/tools/rails.page
150
- - doc/src/tools/rake.page
151
- - doc/src/tools/rcov.page
152
- - doc/src/tools/spec.page
153
- - doc/src/tools/test2spec.page
154
- - doc/src/tutorials/index.page
155
- - doc/src/tutorials/meta.info
156
- - doc/src/tutorials/notes.txt
157
- - doc/src/tutorials/stack.rb
158
- - doc/src/tutorials/stack_01.page
159
- - doc/src/tutorials/stack_02.page
160
- - doc/src/tutorials/stack_03.page
161
- - doc/src/tutorials/stack_04.page
162
- - doc/src/tutorials/stack_04.page.orig
163
- - doc/src/tutorials/stack_05.page
164
- - doc/src/tutorials/stack_05.page.orig
165
- - doc/src/tutorials/stack_06.page
166
- - doc/src/tutorials/stack_06.page.orig
167
- - doc/src/tutorials/stack_spec.rb
168
127
  test_files: []
169
128
 
170
129
  rdoc_options:
data/doc/README DELETED
@@ -1,3 +0,0 @@
1
- The website can be generated with
2
- webgen
3
- (Install the following gems: webgen, redcloth, syntax)
@@ -1,2 +0,0 @@
1
- # Configuration file for webgen
2
- # Used to set the parameters of the plugins
@@ -1,60 +0,0 @@
1
- # gem install syntax
2
- require 'syntax/convertors/html'
3
- RUBY2HTML = Syntax::Convertors::HTML.for_syntax "ruby"
4
-
5
- class ERB
6
- class Compiler
7
- alias old_compile compile
8
-
9
- def compile(s)
10
- s.gsub! /<ruby>/n, "<notextile><%= ruby <<-EOR"
11
- s.gsub! /<\/ruby>/n, "EOR\n%></notextile>"
12
- s.gsub! /<ruby\s+file="(.*)"\s*\/>/, "{ruby_inline: {filename: \\1}}"
13
- old_compile(s)
14
- end
15
- end
16
- end
17
-
18
- module FileHandlers
19
- class PageFileHandler < DefaultFileHandler
20
- def ruby(code)
21
- RUBY2HTML.convert(code)
22
- end
23
- end
24
- end
25
-
26
- module Tags
27
-
28
- # prints out nicely formatted ruby code in html
29
- class RubyInliner < DefaultTag
30
- summary "renders a ruby file in html and inserts it"
31
- depends_on "Tags"
32
- add_param 'filename', nil, 'The File to insert'
33
- set_mandatory 'filename', true
34
-
35
-
36
- def initialize
37
- super
38
- register_tag('ruby_inline')
39
- end
40
-
41
- def process_tag(tag, node, ref_node)
42
- content = ''
43
- begin
44
- filename = get_param('filename')
45
- if !File.exists?(filename)
46
- if filename[0...1] == "~"
47
- filename = File.expand_path(filename)
48
- else
49
- filename = ref_node.parent.recursive_value( 'src' ) + get_param( 'filename' )
50
- end
51
- end
52
- self.logger.debug { "File location: <#{filename}>" }
53
- content = File.read( filename )
54
- rescue
55
- self.logger.error { "Given file <#{filename}> does not exist (tag specified in <#{ref_node.recursive_value( 'src' )}>" }
56
- end
57
- RUBY2HTML.convert(content)
58
- end
59
- end
60
- end
@@ -1,19 +0,0 @@
1
- require 'webgen/plugins/tags/tags'
2
- require File.dirname(__FILE__) + '/../../lib/spec/version'
3
-
4
- module Tags
5
-
6
- class VersionTag < DefaultTag
7
-
8
- summary "Puts the version on the page"
9
- depends_on 'Tags'
10
-
11
- tag 'version'
12
-
13
- def process_tag(tag, node, refNode)
14
- return Spec::VERSION::STRING
15
- end
16
-
17
- end
18
-
19
- end
@@ -1,31 +0,0 @@
1
- ---
2
- title: The Core Team
3
- inMenu: true
4
- ---
5
-
6
- h2. The Core Team
7
-
8
- * Dave Astels
9
- * Steve Baker
10
- * David Chelimsky
11
- * Aslak Hellesoy
12
-
13
- <notextile>
14
- <table>
15
- <tr>
16
- <td><img src="images/David_and_Aslak.jpg" /></td>
17
- <td><img src="images/Whats_That_Dude.jpg" /></td>
18
- <td><img src="http://static.flickr.com/1/127260733_84714abc76_o_d.png" /></td>
19
- </tr>
20
- <tr>
21
- <td align="center">David and Aslak tweaking backtraces</td>
22
- <td align="center">What's that, Dude?</td>
23
- <td align="center">Dave Astels</td>
24
- </tr>
25
- </table>
26
- </notextile>
27
-
28
- h2. Contributors
29
-
30
- * Lachie Cox (Rails support)
31
- * Rich Kilmer (Underscore syntactic sugar)
@@ -1,199 +0,0 @@
1
- /* CSS Document by JM (ISeeYou-Designs.com) */
2
-
3
- body {
4
- background-color:#fff;
5
- font-family:"Trebuchet MS",arial,sans-serif;
6
- font-size:62.5%;
7
- color:#777;
8
- margin:0;
9
- padding:0;
10
- }
11
- a {
12
- text-decoration:none;
13
- color:#222;
14
- }
15
- a:hover {
16
- color:#c00;
17
- }
18
- acronym {
19
- cursor:help;
20
- border-bottom:1px dotted #ddd;
21
- }
22
- #container {
23
- font-size:1.2em;
24
- width:94%;
25
- margin:0 auto;
26
- border-right:3px double #000;
27
- }
28
- #header {
29
- color:#444;
30
- margin:0;
31
- padding:10px;
32
- background:#fff url(business_card.jpg) no-repeat bottom right;
33
- }
34
- #header h1 {
35
- font-family:"Trebuchet MS",arial,sans-serif;
36
- font-size:2em;
37
- color:#333;
38
- margin:0;
39
- font-weight:normal;
40
- }
41
- #header h1 strong {
42
- color:#c00;
43
- }
44
- #header h2 {
45
- margin:30px 0 0 0;
46
- font-size:1em;
47
- font-weight:normal;
48
- color:#999;
49
- }
50
- #header h2 strong {
51
- color:#c00;
52
- }
53
- #navigation {
54
- text-align:right;
55
- margin:0 18px 10px auto;
56
- padding:0;
57
- }
58
- #navigation li {
59
- margin:0;
60
- padding:0;
61
- list-style:none;
62
- display:inline;
63
- }
64
- #navigation li a {
65
- padding:5px 5px 2px 5px;
66
- margin:0 1px 0 1px;
67
- color:#666;
68
- text-decoration:none;
69
- font-weight:bold;
70
- border-bottom:1px solid #c00;
71
- }
72
- #navigation li a:hover {
73
- color:#C00;
74
- border-bottom:1px solid #ddd;
75
- }
76
- #navigation li.webgen-menu-item-selected a, #naviation li.webgen-menu-item-selected a:hover {
77
- color: #000;
78
- }
79
- #content {
80
- margin:20px 0 20px 10px;
81
- padding:0;
82
- }
83
- #content p {
84
- padding:2px 20px;
85
- text-align:justify;
86
- line-height:1.4em;
87
- }
88
- #content h1 {
89
- display:block;
90
- margin:50px 0 0 10px;
91
- padding:0;
92
- font-family:"Trebuchet MS",arial,sans-serif;
93
- font-size:1.8em;
94
- color:#c00;
95
- border-color:#ddd;
96
- border-style:solid;
97
- border-width:0 0 1px 0;
98
- }
99
- #content h2 {
100
- display:block;
101
- margin:20px 20px 0 0px;
102
- padding:0;
103
- font-family:"Trebuchet MS",arial,sans-serif;
104
- font-size:1.1em;
105
- letter-spacing:2px;
106
- color:#444;
107
- border-color:#c00;
108
- border-style:solid;
109
- border-width:0 0 1px 0;
110
- }
111
- #content .post_info {
112
- text-align:right;
113
- margin:0 25px 5px 25px;
114
- padding:2px;
115
- font-size:0.8em;
116
- font-family:arial,sans-serif;
117
- color:#aaa;
118
- line-height:0.9em;
119
- word-spacing:1px;
120
- border-top:1px solid #ddd;
121
- }
122
- #content .post_info a {
123
- text-transform:uppercase;
124
- }
125
- #content blockquote {
126
- margin:10px 60px;
127
- padding:5px;
128
- font-family:"Trebuchet MS",arial,sans-serif;
129
- font-size:0.9em;
130
- color:#444;
131
- border:1px solid #ddd;
132
- background-color:#eee;
133
- }
134
- #content blockquote p {
135
- margin:0;
136
- padding:0;
137
- text-indent:0;
138
- }
139
- #content code {
140
- font-family:monospace;
141
- color:#222;
142
- font-size:1.3em;
143
- }
144
- #content pre {
145
- padding:10px;
146
- margin:0 18px 0 18px;
147
- color:#444;
148
- border:1px solid #444;
149
- background-color:#ddd;
150
- }
151
- #content ul {
152
- margin-left:70px;
153
- list-style:upper-roman outside;
154
- font-family:arial,sans-serif;
155
- font-size:0.9em;
156
- }
157
- #content li {
158
- padding:3px;
159
- }
160
- #footer {
161
- font-size:0.9em;
162
- font-family:arial,sans-serif;
163
- margin:60px 18px 20px 0;
164
- padding:5px;
165
- border-top:1px solid #c00;
166
- }
167
- #footer p {
168
- text-align:right;
169
- line-height:1.1em;
170
- color:#bbb;
171
- font-size:0.9em;
172
- font-family:arial,sans-serif;
173
- margin:0;
174
- padding:0;
175
- }
176
- #footer span {
177
- color:#888;
178
- }
179
- #footer a {
180
- color:#888;
181
- }
182
- #footer a:hover {
183
- color:#aaa;
184
- }
185
-
186
- /* Ruby code */
187
- pre {
188
- font-size: 12px;
189
- }
190
- .keyword { font-family: monospace; color: #8B0000; }
191
- .constant, .attribute, .global, .class, .module { font-family: monospace; color: black;}
192
- .string { font-family: monospace; color: #00008B; }
193
- .ident, .method { font-family: monospace; color: #006400; }
194
- .number, .char { font-family: monospace; color: #888800; }
195
- .comment { font-family: monospace; color: purple; }
196
- .symbol { font-family: monospace; color: #884400; }
197
- .regex { font-family: monospace; color: #808080; }
198
- .punct { font-family: monospace; color: black; }
199
- .escape, .interp, .expr { font-family: monospace; color: black; background-color: #dddddd; }