cucumber 0.4.4 → 0.4.5.rc1
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/Caliper.yml +5 -0
- data/History.txt +24 -1
- data/Rakefile +1 -1
- data/VERSION.yml +2 -2
- data/cucumber.gemspec +18 -27
- data/cucumber.yml +10 -4
- data/examples/i18n/README.textile +1 -1
- data/examples/i18n/bg/features/consecutive_calculations.feature +1 -1
- data/examples/i18n/bg/features/division.feature +1 -1
- data/examples/i18n/en-lol/Rakefile +1 -3
- data/examples/i18n/en/features/division.feature +4 -4
- data/examples/i18n/et/features/jagamine.feature +1 -1
- data/examples/i18n/fr/features/addition2.feature +17 -0
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +13 -0
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +3 -3
- data/examples/i18n/lt/features/addition.feature +2 -2
- data/examples/i18n/lt/features/division.feature +1 -1
- data/examples/i18n/zh-CN/Rakefile +1 -3
- data/examples/i18n/zh-TW/Rakefile +1 -3
- data/examples/tcl/README.textile +11 -0
- data/examples/tcl/Rakefile +6 -0
- data/examples/tcl/features/fibonnacci.feature +17 -0
- data/examples/tcl/features/step_definitions/fib_steps.rb +7 -0
- data/examples/tcl/features/support/env.rb +6 -0
- data/examples/tcl/src/fib.tcl +3 -0
- data/examples/tickets/features/177/1.feature +3 -4
- data/examples/tickets/features/177/2.feature +2 -3
- data/examples/tickets/features/241.feature +2 -3
- data/examples/tickets/features/301/filter_background_tagged_hooks.feature +1 -1
- data/features/cucumber_cli.feature +4 -2
- data/features/custom_formatter.feature +32 -31
- data/features/html_formatter/a.html +319 -102
- data/features/language_help.feature +12 -14
- data/features/support/env.rb +1 -1
- data/features/transform.feature +17 -3
- data/gem_tasks/features.rake +3 -1
- data/lib/cucumber/ast/scenario_outline.rb +1 -1
- data/lib/cucumber/ast/step_invocation.rb +2 -2
- data/lib/cucumber/cli/configuration.rb +2 -17
- data/lib/cucumber/cli/language_help_formatter.rb +1 -1
- data/lib/cucumber/cli/options.rb +5 -4
- data/lib/cucumber/formatter/cucumber.css +198 -82
- data/lib/cucumber/formatter/cucumber.sass +173 -71
- data/lib/cucumber/formatter/html.rb +371 -195
- data/lib/cucumber/formatter/io.rb +33 -0
- data/lib/cucumber/formatter/junit.rb +16 -7
- data/lib/cucumber/formatter/pdf.rb +5 -5
- data/lib/cucumber/formatter/pretty.rb +6 -8
- data/lib/cucumber/formatter/progress.rb +4 -2
- data/lib/cucumber/formatter/rerun.rb +4 -2
- data/lib/cucumber/formatter/steps.rb +2 -2
- data/lib/cucumber/formatter/tag_cloud.rb +6 -2
- data/lib/cucumber/formatter/usage.rb +2 -2
- data/lib/cucumber/languages.yml +205 -281
- data/lib/cucumber/parser/feature.rb +348 -82
- data/lib/cucumber/parser/feature.tt +47 -11
- data/lib/cucumber/parser/i18n.tt +7 -17
- data/lib/cucumber/parser/natural_language.rb +45 -18
- data/lib/cucumber/rb_support/rb_transform.rb +1 -1
- data/lib/cucumber/step_mother.rb +2 -3
- data/lib/cucumber/webrat/element_locator.rb +9 -5
- data/spec/cucumber/cli/options_spec.rb +0 -3
- data/spec/cucumber/formatter/html_spec.rb +15 -2
- data/spec/cucumber/formatter/junit_spec.rb +3 -0
- data/spec/cucumber/treetop_parser/fit_scenario.feature +2 -2
- data/spec/cucumber/treetop_parser/given_scenario.feature +1 -1
- data/spec/cucumber/treetop_parser/multiple_tables.feature +2 -2
- data/spec/cucumber/treetop_parser/test_dos.feature +1 -1
- metadata +17 -26
- data/Manifest.txt +0 -0
- data/lib/cucumber/rails/action_controller.rb +0 -38
- data/lib/cucumber/rails/active_record.rb +0 -30
- data/lib/cucumber/rails/rspec.rb +0 -10
- data/lib/cucumber/rails/test_unit.rb +0 -9
- data/lib/cucumber/rails/world.rb +0 -30
- data/rails_generators/cucumber/USAGE +0 -11
- data/rails_generators/cucumber/cucumber_generator.rb +0 -117
- data/rails_generators/cucumber/templates/cucumber +0 -17
- data/rails_generators/cucumber/templates/cucumber.rake +0 -46
- data/rails_generators/cucumber/templates/cucumber_environment.rb +0 -30
- data/rails_generators/cucumber/templates/env.rb +0 -49
- data/rails_generators/cucumber/templates/paths.rb +0 -27
- data/rails_generators/cucumber/templates/spork_env.rb +0 -57
- data/rails_generators/cucumber/templates/version_check.rb +0 -31
- data/rails_generators/cucumber/templates/webrat_steps.rb +0 -241
- data/rails_generators/feature/USAGE +0 -12
- data/rails_generators/feature/feature_generator.rb +0 -40
- data/rails_generators/feature/templates/feature.erb +0 -31
- data/rails_generators/feature/templates/steps.erb +0 -14
@@ -6,20 +6,18 @@ Feature: Language help
|
|
6
6
|
When I run cucumber -l pt help
|
7
7
|
Then it should pass with
|
8
8
|
"""
|
9
|
-
| name
|
10
|
-
| native
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
| and | 'E' |
|
22
|
-
| but | 'Mas' |
|
9
|
+
| name | Portuguese |
|
10
|
+
| native | português |
|
11
|
+
| feature | Funcionalidade |
|
12
|
+
| background | Contexto |
|
13
|
+
| scenario | Cenário / Cenario |
|
14
|
+
| scenario_outline | Esquema do Cenário / Esquema do Cenario |
|
15
|
+
| examples | Exemplos |
|
16
|
+
| given | * / Dado |
|
17
|
+
| when | * / Quando |
|
18
|
+
| then | * / Então / Entao |
|
19
|
+
| and | * / E |
|
20
|
+
| but | * / Mas |
|
23
21
|
|
24
22
|
"""
|
25
23
|
Scenario: List languages
|
data/features/support/env.rb
CHANGED
data/features/transform.feature
CHANGED
@@ -30,6 +30,10 @@ Feature: transform
|
|
30
30
|
Then /^I should not transform ('\d+') to an Integer$/ do |string|
|
31
31
|
string.should be_kind_of(String)
|
32
32
|
end
|
33
|
+
|
34
|
+
Then /^I should transform ((?:nothing|'\d+') to an optional Integer)$/ do |integer|
|
35
|
+
integer.should be_nil
|
36
|
+
end
|
33
37
|
"""
|
34
38
|
And a file named "features/support/env.rb" with:
|
35
39
|
"""
|
@@ -37,6 +41,10 @@ Feature: transform
|
|
37
41
|
/'(\d+)' to an Integer/.match(step_arg).captures[0].to_i
|
38
42
|
end
|
39
43
|
|
44
|
+
Transform /^(?:nothing|'(\d+)') to an optional Integer$/ do |str|
|
45
|
+
str ? str.to_i : nil
|
46
|
+
end
|
47
|
+
|
40
48
|
Transform /^'(\d+)' to a Float$/ do |integer_string|
|
41
49
|
Transform("'#{integer_string}' to an Integer").to_f
|
42
50
|
end
|
@@ -82,8 +90,11 @@ Feature: transform
|
|
82
90
|
|
83
91
|
Scenario: transform without matches
|
84
92
|
Then I should not transform '10' to an Integer
|
93
|
+
|
94
|
+
Scenario: transform with optional arguments not given
|
95
|
+
Then I should transform nothing to an optional Integer
|
85
96
|
"""
|
86
|
-
When I run cucumber -s features
|
97
|
+
When I run cucumber --backtrace -s features
|
87
98
|
Then it should pass with
|
88
99
|
"""
|
89
100
|
Feature: Step argument transformations
|
@@ -106,8 +117,11 @@ Feature: transform
|
|
106
117
|
Scenario: transform without matches
|
107
118
|
Then I should not transform '10' to an Integer
|
108
119
|
|
109
|
-
|
110
|
-
|
120
|
+
Scenario: transform with optional arguments not given
|
121
|
+
Then I should transform nothing to an optional Integer
|
122
|
+
|
123
|
+
7 scenarios (7 passed)
|
124
|
+
7 steps (7 passed)
|
111
125
|
|
112
126
|
"""
|
113
127
|
|
data/gem_tasks/features.rake
CHANGED
@@ -3,7 +3,9 @@ require 'cucumber/rake/task'
|
|
3
3
|
require 'cucumber/platform'
|
4
4
|
|
5
5
|
Cucumber::Rake::Task.new do |t|
|
6
|
-
if(
|
6
|
+
if(ENV["RUN_CODE_RUN"])
|
7
|
+
t.profile = 'run_code_run'
|
8
|
+
elsif(Cucumber::JRUBY)
|
7
9
|
t.profile = 'jruby'
|
8
10
|
elsif(Cucumber::WINDOWS_MRI)
|
9
11
|
t.profile = 'windows_mri'
|
@@ -106,7 +106,7 @@ module Cucumber
|
|
106
106
|
|
107
107
|
def filter_backtrace(e)
|
108
108
|
return e if Cucumber.use_full_backtrace
|
109
|
-
pwd = /#{Dir.pwd}\//m
|
109
|
+
pwd = /#{Regexp.escape(Dir.pwd)}\//m
|
110
110
|
(e.backtrace || []).each{|line| line.gsub!(pwd, "./")}
|
111
111
|
|
112
112
|
filtered = (e.backtrace || []).reject do |line|
|
@@ -142,7 +142,7 @@ module Cucumber
|
|
142
142
|
end
|
143
143
|
|
144
144
|
def actual_keyword
|
145
|
-
repeat_keywords = [language.but_keywords, language.and_keywords].flatten
|
145
|
+
repeat_keywords = [language.but_keywords(false), language.and_keywords(false)].flatten
|
146
146
|
if repeat_keywords.index(@step.keyword) && previous
|
147
147
|
previous.actual_keyword
|
148
148
|
else
|
@@ -130,25 +130,10 @@ module Cucumber
|
|
130
130
|
return [Formatter::Pretty.new(step_mother, nil, @options)] if @options[:autoformat]
|
131
131
|
@options[:formats].map do |format_and_out|
|
132
132
|
format = format_and_out[0]
|
133
|
-
|
134
|
-
if String === out # file name
|
135
|
-
unless File.directory?(out)
|
136
|
-
out = File.open(out, Cucumber.file_mode('w'))
|
137
|
-
at_exit do
|
138
|
-
|
139
|
-
# Since Spork "never" actually exits, I want to flush and close earlier...
|
140
|
-
unless out.closed?
|
141
|
-
out.flush
|
142
|
-
out.close
|
143
|
-
end
|
144
|
-
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
148
|
-
|
133
|
+
path_or_io = format_and_out[1]
|
149
134
|
begin
|
150
135
|
formatter_class = formatter_class(format)
|
151
|
-
formatter_class.new(step_mother,
|
136
|
+
formatter_class.new(step_mother, path_or_io, @options)
|
152
137
|
rescue Exception => e
|
153
138
|
e.message << "\nError creating formatter: #{format}"
|
154
139
|
raise e
|
@@ -31,7 +31,7 @@ http://wiki.github.com/aslakhellesoy/cucumber/spoken-languages
|
|
31
31
|
def list_keywords(io, lang)
|
32
32
|
language = Parser::NaturalLanguage.get(nil, lang)
|
33
33
|
raw = Parser::NaturalLanguage::KEYWORD_KEYS.map do |key|
|
34
|
-
[key, language.keywords(key)]
|
34
|
+
[key, language.keywords(key).join(" / ")]
|
35
35
|
end
|
36
36
|
|
37
37
|
print_table io, raw, :incomplete => language.incomplete?
|
data/lib/cucumber/cli/options.rb
CHANGED
@@ -101,7 +101,7 @@ module Cucumber
|
|
101
101
|
"Examples:",
|
102
102
|
"cucumber examples/i18n/en/features",
|
103
103
|
"cucumber @features.txt (See --format rerun)",
|
104
|
-
"cucumber
|
104
|
+
"cucumber examples/i18n/it/features/somma.feature:6:98:113",
|
105
105
|
"cucumber -s -i http://rubyurl.com/eeCl", "", "",
|
106
106
|
].join("\n")
|
107
107
|
opts.on("-r LIBRARY|DIR", "--require LIBRARY|DIR",
|
@@ -115,15 +115,16 @@ module Cucumber
|
|
115
115
|
"This option can be specified multiple times.") do |v|
|
116
116
|
@options[:require] << v
|
117
117
|
end
|
118
|
-
opts.on("-l LANG", "--language LANG",
|
118
|
+
opts.on("-l LANG", "--language LANG (DEPRECATED)",
|
119
119
|
"Specify language for features (Default: #{@options[:lang]})",
|
120
120
|
%{Run with "--language help" to see all languages},
|
121
121
|
%{Run with "--language LANG help" to list keywords for LANG}) do |v|
|
122
122
|
if v == 'help'
|
123
123
|
list_languages_and_exit
|
124
|
-
elsif args==['help']
|
124
|
+
elsif args==['help']
|
125
125
|
list_keywords_and_exit(v)
|
126
126
|
else
|
127
|
+
warn("\nWARNING: --language is deprecated and will be removed in version 0.5.\nSee http://wiki.github.com/aslakhellesoy/cucumber/spoken-languages")
|
127
128
|
@options[:lang] = v
|
128
129
|
end
|
129
130
|
end
|
@@ -188,7 +189,7 @@ module Cucumber
|
|
188
189
|
@options[:dry_run] = true
|
189
190
|
@options[:snippets] = false
|
190
191
|
end
|
191
|
-
opts.on("-a", "--autoformat
|
192
|
+
opts.on("-a", "--autoformat DIR",
|
192
193
|
"Reformats (pretty prints) feature files and write them to DIRECTORY.",
|
193
194
|
"Be careful if you choose to overwrite the originals.",
|
194
195
|
"Implies --dry-run --formatter pretty.") do |directory|
|
@@ -1,132 +1,248 @@
|
|
1
|
+
/* cucumber.css is generated from cucumber.sass */
|
2
|
+
/* Regenerate with rake sass */
|
3
|
+
body {
|
4
|
+
font-size: 0px;
|
5
|
+
color: #FFFFFF;
|
6
|
+
margin: 0px;
|
7
|
+
padding: 0px;
|
8
|
+
}
|
1
9
|
|
2
|
-
|
3
|
-
|
4
|
-
font-family: "Lucida Grande", Helvetica, sans-serif;
|
5
|
-
font-size: 0.7em;
|
10
|
+
.cucumber, td, th {
|
11
|
+
font: normal 11px "Lucida Grande", Helvetica, sans-serif;
|
6
12
|
background: white;
|
7
|
-
|
13
|
+
color: #000000;
|
14
|
+
}
|
15
|
+
.cucumber #cucumber-header, td #cucumber-header, th #cucumber-header {
|
16
|
+
background: #65C400;
|
17
|
+
color: #FFFFFF;
|
18
|
+
height: 5em;
|
19
|
+
}
|
20
|
+
.cucumber .scenario h3, td .scenario h3, th .scenario h3 {
|
21
|
+
font-size: 11px;
|
22
|
+
padding: 3px;
|
23
|
+
margin: 0;
|
24
|
+
background: #65C400;
|
25
|
+
color: #FFFFFF;
|
26
|
+
font-weight: bold;
|
8
27
|
}
|
9
|
-
.cucumber h1,
|
10
|
-
|
11
|
-
padding:
|
12
|
-
|
28
|
+
.cucumber h1, td h1, th h1 {
|
29
|
+
margin: 0px 10px 0px 10px;
|
30
|
+
padding: 10px;
|
31
|
+
font-family: "Lucida Grande", Helvetica, sans-serif;
|
32
|
+
font-size: 1.8em;
|
33
|
+
position: absolute;
|
13
34
|
}
|
14
|
-
.cucumber
|
15
|
-
|
16
|
-
padding: 2px;
|
17
|
-
margin: 4px;
|
35
|
+
.cucumber h4, td h4, th h4 {
|
36
|
+
margin-bottom: 2px;
|
18
37
|
}
|
19
|
-
.cucumber div.feature
|
20
|
-
padding:
|
38
|
+
.cucumber div.feature, td div.feature, th div.feature {
|
39
|
+
padding: 2px;
|
40
|
+
margin: 0px 10px 5px 10px;
|
21
41
|
}
|
22
|
-
.cucumber div.
|
42
|
+
.cucumber div.examples, td div.examples, th div.examples {
|
23
43
|
padding: 0em 0em 0em 1em;
|
24
44
|
}
|
25
|
-
.cucumber .stats {
|
45
|
+
.cucumber .stats, td .stats, th .stats {
|
26
46
|
margin: 2em;
|
27
47
|
}
|
28
|
-
.cucumber .summary ul.features li {
|
48
|
+
.cucumber .summary ul.features li, td .summary ul.features li, th .summary ul.features li {
|
29
49
|
display: inline;
|
30
50
|
}
|
31
|
-
.cucumber .
|
51
|
+
.cucumber .tag, td .tag, th .tag {
|
52
|
+
font-weight: bold;
|
53
|
+
color: #246AC1;
|
54
|
+
}
|
55
|
+
.cucumber .backtrace, td .backtrace, th .backtrace {
|
32
56
|
margin-top: 0;
|
33
57
|
margin-bottom: 0;
|
34
58
|
margin-left: 1em;
|
59
|
+
color: #000000;
|
35
60
|
}
|
36
|
-
.cucumber a {
|
61
|
+
.cucumber a, td a, th a {
|
37
62
|
text-decoration: none;
|
38
|
-
color:
|
63
|
+
color: #BE5C00;
|
39
64
|
}
|
40
|
-
.cucumber a:hover {
|
65
|
+
.cucumber a:hover, td a:hover, th a:hover {
|
41
66
|
text-decoration: underline;
|
42
67
|
}
|
43
|
-
.cucumber a:visited {
|
68
|
+
.cucumber a:visited, td a:visited, th a:visited {
|
44
69
|
font-weight: normal;
|
45
70
|
}
|
46
|
-
.cucumber a div.examples {
|
47
|
-
|
48
|
-
|
49
|
-
margin: 4px;
|
71
|
+
.cucumber a div.examples, td a div.examples, th a div.examples {
|
72
|
+
margin: 5px 0px 5px 15px;
|
73
|
+
color: #000000;
|
50
74
|
}
|
51
|
-
.cucumber table {
|
75
|
+
.cucumber .outline table, td .outline table, th .outline table {
|
76
|
+
margin: 0px 0px 5px 10px;
|
77
|
+
}
|
78
|
+
.cucumber table, td table, th table {
|
52
79
|
border-collapse: collapse;
|
53
80
|
}
|
54
|
-
.cucumber table td,
|
55
|
-
|
56
|
-
border: 1px solid #AAAAAA;
|
81
|
+
.cucumber table td, td table td, th table td {
|
82
|
+
padding: 3px 3px 3px 5px;
|
57
83
|
}
|
58
|
-
.cucumber table td.failed {
|
59
|
-
|
60
|
-
|
84
|
+
.cucumber table td.failed, .cucumber table td.passed, .cucumber table td.skipped, .cucumber table td.pending, .cucumber table td.undefined, td table td.failed, td table td.passed, td table td.skipped, td table td.pending, td table td.undefined, th table td.failed, th table td.passed, th table td.skipped, th table td.pending, th table td.undefined {
|
85
|
+
padding-left: 18px;
|
86
|
+
padding-right: 10px;
|
61
87
|
}
|
62
|
-
.cucumber table td.
|
63
|
-
|
64
|
-
|
88
|
+
.cucumber table td.failed, td table td.failed, th table td.failed {
|
89
|
+
border-left: 5px solid #c20000;
|
90
|
+
border-bottom: 1px solid #c20000;
|
91
|
+
background: #fffbd3;
|
92
|
+
color: #c20000;
|
93
|
+
}
|
94
|
+
.cucumber table td.passed, td table td.passed, th table td.passed {
|
95
|
+
border-left: 5px solid #65c400;
|
96
|
+
border-bottom: 1px solid #65c400;
|
97
|
+
background: #dbffb4;
|
98
|
+
color: #3d7700;
|
65
99
|
}
|
66
|
-
.cucumber table td.skipped {
|
100
|
+
.cucumber table td.skipped, td table td.skipped, th table td.skipped {
|
101
|
+
border-left: 5px solid aqua;
|
102
|
+
border-bottom: 1px solid aqua;
|
67
103
|
background: #e0ffff;
|
68
104
|
color: #001111;
|
69
105
|
}
|
70
|
-
.cucumber table td.pending {
|
71
|
-
|
72
|
-
|
106
|
+
.cucumber table td.pending, td table td.pending, th table td.pending {
|
107
|
+
border-left: 5px solid #faf834;
|
108
|
+
border-bottom: 1px solid #faf834;
|
109
|
+
background: #fcfb98;
|
110
|
+
color: #131313;
|
73
111
|
}
|
74
|
-
.cucumber table td.undefined {
|
75
|
-
|
76
|
-
|
112
|
+
.cucumber table td.undefined, td table td.undefined, th table td.undefined {
|
113
|
+
border-left: 5px solid #faf834;
|
114
|
+
border-bottom: 1px solid #faf834;
|
115
|
+
background: #fcfb98;
|
116
|
+
color: #131313;
|
77
117
|
}
|
78
|
-
.cucumber ol {
|
118
|
+
.cucumber ol, td ol, th ol {
|
79
119
|
list-style: none;
|
120
|
+
margin: 0px;
|
121
|
+
padding: 0px;
|
122
|
+
}
|
123
|
+
.cucumber ol li.step, td ol li.step, th ol li.step {
|
124
|
+
padding: 3px 3px 3px 18px;
|
125
|
+
margin: 5px 0px 5px 5px;
|
80
126
|
}
|
81
|
-
.cucumber ol li {
|
127
|
+
.cucumber ol li, td ol li, th ol li {
|
82
128
|
margin: 0em 0em 0em 1em;
|
83
129
|
padding: 0em 0em 0em 0.2em;
|
84
130
|
}
|
85
|
-
.cucumber ol li span.param {
|
131
|
+
.cucumber ol li span.param, td ol li span.param, th ol li span.param {
|
86
132
|
font-weight: bold;
|
87
133
|
}
|
88
|
-
.cucumber ol li.failed {
|
89
|
-
border-left: 5px solid #
|
90
|
-
border-bottom: 1px solid #
|
91
|
-
background: #
|
92
|
-
color: #
|
134
|
+
.cucumber ol li.failed, td ol li.failed, th ol li.failed {
|
135
|
+
border-left: 5px solid #c20000;
|
136
|
+
border-bottom: 1px solid #c20000;
|
137
|
+
background: #fffbd3;
|
138
|
+
color: #c20000;
|
139
|
+
}
|
140
|
+
.cucumber ol li.passed, td ol li.passed, th ol li.passed {
|
141
|
+
border-left: 5px solid #65c400;
|
142
|
+
border-bottom: 1px solid #65c400;
|
143
|
+
background: #dbffb4;
|
144
|
+
color: #3d7700;
|
145
|
+
}
|
146
|
+
.cucumber ol li.skipped, td ol li.skipped, th ol li.skipped {
|
147
|
+
border-left: 5px solid aqua;
|
148
|
+
border-bottom: 1px solid aqua;
|
149
|
+
background: #e0ffff;
|
150
|
+
color: #001111;
|
93
151
|
}
|
94
|
-
.cucumber ol li.
|
95
|
-
|
152
|
+
.cucumber ol li.pending, td ol li.pending, th ol li.pending {
|
153
|
+
border-left: 5px solid #faf834;
|
154
|
+
border-bottom: 1px solid #faf834;
|
155
|
+
background: #fcfb98;
|
156
|
+
color: #131313;
|
96
157
|
}
|
97
|
-
.cucumber ol li.
|
98
|
-
border-left: 5px solid #
|
99
|
-
border-bottom: 1px solid #
|
100
|
-
background: #
|
101
|
-
color: #
|
158
|
+
.cucumber ol li.undefined, td ol li.undefined, th ol li.undefined {
|
159
|
+
border-left: 5px solid #faf834;
|
160
|
+
border-bottom: 1px solid #faf834;
|
161
|
+
background: #fcfb98;
|
162
|
+
color: #131313;
|
102
163
|
}
|
103
|
-
.cucumber
|
104
|
-
|
164
|
+
.cucumber #summary, td #summary, th #summary {
|
165
|
+
margin: 0px;
|
166
|
+
padding: 5px 10px;
|
167
|
+
text-align: right;
|
168
|
+
top: 0px;
|
169
|
+
right: 0px;
|
170
|
+
float: right;
|
105
171
|
}
|
106
|
-
.cucumber
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
172
|
+
.cucumber #summary p, td #summary p, th #summary p {
|
173
|
+
margin: 0 0 0 2px;
|
174
|
+
}
|
175
|
+
.cucumber #summary #totals, td #summary #totals, th #summary #totals {
|
176
|
+
font-size: 1.2em;
|
177
|
+
}
|
178
|
+
|
179
|
+
.ruby {
|
180
|
+
font-size: 12px;
|
181
|
+
font-family: monospace;
|
182
|
+
color: white;
|
183
|
+
background: black;
|
184
|
+
padding: 0.1em 0 0.2em 0;
|
185
|
+
}
|
186
|
+
.ruby .keyword {
|
187
|
+
color: #FF6600;
|
188
|
+
}
|
189
|
+
.ruby .constant {
|
190
|
+
color: #339999;
|
191
|
+
}
|
192
|
+
.ruby .attribute {
|
193
|
+
color: white;
|
194
|
+
}
|
195
|
+
.ruby .global {
|
196
|
+
color: white;
|
197
|
+
}
|
198
|
+
.ruby .module {
|
199
|
+
color: white;
|
200
|
+
}
|
201
|
+
.ruby .class {
|
202
|
+
color: white;
|
203
|
+
}
|
204
|
+
.ruby .string {
|
205
|
+
color: #66FF00;
|
206
|
+
}
|
207
|
+
.ruby .ident {
|
208
|
+
color: white;
|
209
|
+
}
|
210
|
+
.ruby .method {
|
211
|
+
color: #FFCC00;
|
212
|
+
}
|
213
|
+
.ruby .number {
|
214
|
+
color: white;
|
215
|
+
}
|
216
|
+
.ruby .char {
|
217
|
+
color: white;
|
218
|
+
}
|
219
|
+
.ruby .comment {
|
220
|
+
color: #9933CC;
|
221
|
+
}
|
222
|
+
.ruby .symbol {
|
223
|
+
color: white;
|
224
|
+
}
|
225
|
+
.ruby .regex {
|
226
|
+
color: #44B4CC;
|
227
|
+
}
|
228
|
+
.ruby .punct {
|
229
|
+
color: white;
|
111
230
|
}
|
112
|
-
.
|
113
|
-
|
231
|
+
.ruby .escape {
|
232
|
+
color: white;
|
114
233
|
}
|
115
|
-
.
|
116
|
-
|
117
|
-
border-bottom: 1px solid #ff8000;
|
118
|
-
background: #ffff00;
|
119
|
-
color: #2a1b0a;
|
234
|
+
.ruby .interp {
|
235
|
+
color: white;
|
120
236
|
}
|
121
|
-
.
|
122
|
-
|
237
|
+
.ruby .expr {
|
238
|
+
color: white;
|
123
239
|
}
|
124
|
-
.
|
125
|
-
|
126
|
-
border-bottom: 1px solid #ff8000;
|
127
|
-
background: #ffff00;
|
128
|
-
color: #2a1b0a;
|
240
|
+
.ruby .offending {
|
241
|
+
background: #333333;
|
129
242
|
}
|
130
|
-
.
|
131
|
-
|
243
|
+
.ruby .linenum {
|
244
|
+
width: 75px;
|
245
|
+
padding: 0.1em 1em 0.2em 0;
|
246
|
+
color: #000000;
|
247
|
+
background: #FFFBD3;
|
132
248
|
}
|