greenpepper-ruby 0.0.1

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 (120) hide show
  1. data/bin/greenpepperize +71 -0
  2. data/bin/greenpepperrails +33 -0
  3. data/bin/greenpepperruby +15 -0
  4. data/data/greenpepper.rake +37 -0
  5. data/data/helper.rb +32 -0
  6. data/data/tags +6 -0
  7. data/lib/greenpepper/argumentparser.rb +161 -0
  8. data/lib/greenpepper/common/loadpath.rb +7 -0
  9. data/lib/greenpepper/context/htmlcontext.rb +26 -0
  10. data/lib/greenpepper/converter.rb +347 -0
  11. data/lib/greenpepper/core.rb +152 -0
  12. data/lib/greenpepper/example/collectionexample.rb +305 -0
  13. data/lib/greenpepper/example/dowithexample.rb +192 -0
  14. data/lib/greenpepper/example/exampleheader.rb +41 -0
  15. data/lib/greenpepper/example/examplewithfixture.rb +73 -0
  16. data/lib/greenpepper/example/executionresults.rb +160 -0
  17. data/lib/greenpepper/example/fieldaccessor.rb +36 -0
  18. data/lib/greenpepper/example/freetextexample.rb +51 -0
  19. data/lib/greenpepper/example/importexample.rb +39 -0
  20. data/lib/greenpepper/example/nameresolver.rb +69 -0
  21. data/lib/greenpepper/example/ruleforexample.rb +117 -0
  22. data/lib/greenpepper/example/setupexample.rb +79 -0
  23. data/lib/greenpepper/example/silentexample.rb +14 -0
  24. data/lib/greenpepper/example/unknownexample.rb +17 -0
  25. data/lib/greenpepper/exception/greenpepperexception.rb +57 -0
  26. data/lib/greenpepper/executionunit.rb +39 -0
  27. data/lib/greenpepper/factory/collectionexamplefactory.rb +59 -0
  28. data/lib/greenpepper/factory/dowithexamplefactory.rb +71 -0
  29. data/lib/greenpepper/factory/examplefactory.rb +14 -0
  30. data/lib/greenpepper/factory/freetextexamplefactory.rb +29 -0
  31. data/lib/greenpepper/factory/htmlexamplefactory.rb +49 -0
  32. data/lib/greenpepper/factory/importexamplefactory.rb +27 -0
  33. data/lib/greenpepper/factory/ruleforexamplefactory.rb +46 -0
  34. data/lib/greenpepper/factory/setupexamplefactory.rb +31 -0
  35. data/lib/greenpepper/factory/silentexamplefactory.rb +21 -0
  36. data/lib/greenpepper/factory/unknownexamplefactory.rb +16 -0
  37. data/lib/greenpepper/freetext.rb +164 -0
  38. data/lib/greenpepper/grammar/array.treetop +51 -0
  39. data/lib/greenpepper/grammar/arrayparser.rb +14 -0
  40. data/lib/greenpepper/greenpepperconfig.rb +19 -0
  41. data/lib/greenpepper/greenpeppertask.rb +60 -0
  42. data/lib/greenpepper/logger.rb +45 -0
  43. data/lib/greenpepper/parser/freetextparser.rb +96 -0
  44. data/lib/greenpepper/parser/htmlparser.rb +70 -0
  45. data/lib/greenpepper/parser/scenario.rb +25 -0
  46. data/lib/greenpepper/parser/table.rb +37 -0
  47. data/lib/greenpepper/parser/wikiparser.rb +26 -0
  48. data/lib/greenpepper/pass/freetextpass.rb +24 -0
  49. data/lib/greenpepper/pass/greenpepperpass.rb +92 -0
  50. data/lib/greenpepper/pass/tablepass.rb +38 -0
  51. data/lib/greenpepper/railsargumentparser.rb +46 -0
  52. data/lib/greenpepper/redpeppertask.rb +89 -0
  53. data/lib/greenpepper/repository/atlassianrepository.rb +100 -0
  54. data/lib/greenpepper/writer/consolewriter.rb +21 -0
  55. data/lib/greenpepper/writer/freetextresult.rb +233 -0
  56. data/lib/greenpepper/writer/freetextwriter.rb +44 -0
  57. data/lib/greenpepper/writer/html.rb +14 -0
  58. data/lib/greenpepper/writer/htmldocwriter.rb +82 -0
  59. data/lib/greenpepper/writer/htmlresult.rb +192 -0
  60. data/lib/greenpepper/writer/htmlwriter.rb +112 -0
  61. data/lib/greenpepper/writer/output.rb +26 -0
  62. data/lib/greenpepper/writer/result.rb +35 -0
  63. data/lib/greenpepper/writer/xmlwriter.rb +32 -0
  64. data/test/coreseedstest.rb +39 -0
  65. data/test/greenpepper/argumentparsertest.rb +162 -0
  66. data/test/greenpepper/common/loadpathtest.rb +24 -0
  67. data/test/greenpepper/common/stattest.rb +186 -0
  68. data/test/greenpepper/convertertest.rb +371 -0
  69. data/test/greenpepper/coretest.rb +159 -0
  70. data/test/greenpepper/example/collectionexampletest.rb +484 -0
  71. data/test/greenpepper/example/dowithexampletest.rb +148 -0
  72. data/test/greenpepper/example/exampletest.rb +28 -0
  73. data/test/greenpepper/example/freetextexampletest.rb +151 -0
  74. data/test/greenpepper/example/importexampletest.rb +79 -0
  75. data/test/greenpepper/example/nameresolvertest.rb +56 -0
  76. data/test/greenpepper/example/ruleforexampletest.rb +225 -0
  77. data/test/greenpepper/example/setupexampletest.rb +140 -0
  78. data/test/greenpepper/example/silentexampletest.rb +17 -0
  79. data/test/greenpepper/example/unknownexampletest.rb +17 -0
  80. data/test/greenpepper/factory/collectionexamplefactorytest.rb +51 -0
  81. data/test/greenpepper/factory/dowithexamplefactorytest.rb +48 -0
  82. data/test/greenpepper/factory/examplefactorytest.rb +88 -0
  83. data/test/greenpepper/factory/freetextexamplefactorytest.rb +54 -0
  84. data/test/greenpepper/factory/importexamplefactorytest.rb +40 -0
  85. data/test/greenpepper/factory/ruleforexamplefactorytest.rb +55 -0
  86. data/test/greenpepper/factory/setupexamplefactorytest.rb +29 -0
  87. data/test/greenpepper/factory/silentexamplefactorytest.rb +38 -0
  88. data/test/greenpepper/freetexttest.rb +222 -0
  89. data/test/greenpepper/grammar/arrayparsertest.rb +45 -0
  90. data/test/greenpepper/loggertest.rb +26 -0
  91. data/test/greenpepper/parser/freetextparsertest.rb +124 -0
  92. data/test/greenpepper/parser/htmlparsertest.rb +77 -0
  93. data/test/greenpepper/parser/wikiparsertest.rb +21 -0
  94. data/test/greenpepper/pass/freetextpasstest.rb +54 -0
  95. data/test/greenpepper/pass/greenpepperpasstest.rb +47 -0
  96. data/test/greenpepper/pass/tablepasstest.rb +23 -0
  97. data/test/greenpepper/repository/atlassionrepositorytest.rb +85 -0
  98. data/test/greenpepper/writer/freetextwritertest.rb +301 -0
  99. data/test/greenpepper/writer/htmlcollectionwritertest.rb +145 -0
  100. data/test/greenpepper/writer/htmldowithwritertest.rb +87 -0
  101. data/test/greenpepper/writer/htmlruleforwritertest.rb +147 -0
  102. data/test/greenpepper/writer/htmlsetupwritertest.rb +107 -0
  103. data/test/greenpepper/writer/htmlstatresulttest.rb +118 -0
  104. data/test/greenpepper/writer/htmlwriterpositiontest.rb +53 -0
  105. data/test/greenpepper/writer/writertest.rb +33 -0
  106. data/test/greenpepper/writer/xmlwritertest.rb +34 -0
  107. data/test/integration/collectionexampleintegrationtest.rb +64 -0
  108. data/test/integration/errorhandlingintegrationtest.rb +68 -0
  109. data/test/integration/freetextexampleintegrationtest.rb +75 -0
  110. data/test/integration/greenpepperexecutableintegrationtest.rb +22 -0
  111. data/test/integration/importexampleintegrationtest.rb +41 -0
  112. data/test/integration/interpretationordertest.rb +48 -0
  113. data/test/integration/ruleforexampleintegrationtest.rb +102 -0
  114. data/test/integration/securityintegrationtest.rb +30 -0
  115. data/test/integration/setupexampleintegrationtest.rb +31 -0
  116. data/test/integration/silentexampleintegrationtest.rb +29 -0
  117. data/test/task/greenpeppertasktest.rb +96 -0
  118. data/test/task/redpeppertasktest.rb +120 -0
  119. data/vendor/accents.rb +85 -0
  120. metadata +234 -0
@@ -0,0 +1,30 @@
1
+ =begin
2
+ Author: Simon Mathieu (simon.math@gmail.com)
3
+ Date: March 29, 2009
4
+ =end
5
+ require 'test/unit'
6
+ require 'greenpepper/example/dowithexample'
7
+ require 'greenpepper/core'
8
+ include GreenPepper
9
+
10
+ class SecurityIntegrationTest < Test::Unit::TestCase
11
+
12
+ def setup
13
+ @old_stdout, $stdout = $stdout, StringIO.new
14
+ end
15
+
16
+ def teardown
17
+ $stdout = @old_stdout
18
+ end
19
+
20
+ def test_code_injection_should_be_prevented
21
+ core = GreenPepperCore.new
22
+ args = ["test/seeds/security1.html",
23
+ "test/results/security1.html"]
24
+ res = core.run args
25
+ output = ""
26
+ File.open(args[1], 'r') {|f| output = f.read }
27
+ assert(/GreenPepper::GreenPepperSecurityError: Can't instantiate a subclass of Class./ === output)
28
+ end
29
+ end
30
+
@@ -0,0 +1,31 @@
1
+ require 'test/helper/assertion'
2
+ require 'greenpepper/core'
3
+ require 'test/fixtures/fixture'
4
+ require 'test/fixtures/setupfixture'
5
+ require 'stringio'
6
+
7
+ include GreenPepper
8
+
9
+ class SetupExampleIntegrationTest < Test::Unit::TestCase
10
+
11
+ def setup
12
+ @core = GreenPepperCore.new
13
+ #Disable console output
14
+ @old_stdout, $stdout = $stdout, StringIO.new
15
+ end
16
+
17
+ def teardown
18
+ $stdout = @old_stdout
19
+ end
20
+
21
+ def test_setup_integration
22
+
23
+ args = ["test/seeds/setup_integration.html",
24
+ "test/results/setup_integration.html",
25
+ "--no-exception-stack"]
26
+
27
+ @core.run args
28
+
29
+ assert_file_equal 'test/expected/setup_integration.html', args[1]
30
+ end
31
+ end
@@ -0,0 +1,29 @@
1
+ require 'stringio'
2
+
3
+ require 'greenpepper/core'
4
+ require '../common/test/helper/assertion'
5
+ require 'test/fixtures/fixture'
6
+
7
+ include GreenPepper
8
+
9
+ class SilentExampleIntegrationTest < Test::Unit::TestCase
10
+ def setup
11
+ @core = GreenPepperCore.new
12
+ #Disable console output
13
+ @old_stdout, $stdout = $stdout, StringIO.new
14
+ end
15
+
16
+ def teardown
17
+ $stdout = @old_stdout
18
+ end
19
+
20
+ def test_silent_example_yields_ignore_in_stats
21
+ args = ['test/seeds/ignored_integration_seed.html',
22
+ 'test/results/ignored_integration_seed.html']
23
+
24
+ @core.run args
25
+
26
+ assert_file_equal 'test/expected/ignored_integration_seed.html',
27
+ args[1]
28
+ end
29
+ end
@@ -0,0 +1,96 @@
1
+ =begin
2
+ author: Simon Mathieu (simon.math@gmail.com)
3
+ date: November 8, 2009
4
+ =end
5
+
6
+ require 'rubygems'
7
+ require 'test/unit'
8
+ require 'mocha'
9
+
10
+ require 'lib/greenpepper/greenpeppertask'
11
+ require 'lib/greenpepper/core'
12
+
13
+ include GreenPepper
14
+
15
+ class GreenPepperTaskTest < Test::Unit::TestCase
16
+ TEST_DATA_DIR = 'test/task/test_data'
17
+
18
+ def setup
19
+ @old_stdout, $stdout = $stdout, StringIO.new
20
+
21
+ #Don't load config for all test
22
+ GreenPepperConfig.instance.spec_dir = nil
23
+ GreenPepperConfig.instance.result_dir = nil
24
+ GreenPepperConfig.instance.greenpepper_path = nil
25
+ end
26
+
27
+ def tear_down
28
+ $stdout = @old_stdout
29
+ end
30
+
31
+ def test_rake_task_should_execute_spec_when_execute_arg_is_specified
32
+ name = 'testexecuteraketask'
33
+
34
+ expected_args = [File.join(TEST_DATA_DIR, 'myspec.html'),
35
+ 'output/myspec.html']
36
+
37
+ GreenPepperCore.any_instance.expects(:run).with(expected_args).
38
+ once.returns(true)
39
+
40
+ GreenPepperTask.new name do |t|
41
+ t.spec_dir = TEST_DATA_DIR
42
+ t.spec_name = 'myspec.html'
43
+ t.result_dir = 'output'
44
+ t.greenpepper_path = 'lib'
45
+ end
46
+
47
+ Rake::Task[name].execute nil
48
+ end
49
+
50
+ def test_rake_task_can_execute_multiple_specs
51
+ name = 'testexecuteraketaskmultiple'
52
+
53
+ dir = File.join TEST_DATA_DIR, 'rake_task_two_files'
54
+ expected_args1 = [File.join(dir, 'myspec.html'), 'output/myspec.html']
55
+ expected_args2 = [File.join(dir, 'myspec2.html'), 'output/myspec2.html']
56
+
57
+ GreenPepperCore.any_instance.expects(:run).with(expected_args1).
58
+ returns(true)
59
+ GreenPepperCore.any_instance.expects(:run).with(expected_args2).
60
+ returns(true)
61
+
62
+ GreenPepperTask.new name do |t|
63
+ t.spec_dir = dir
64
+ t.spec_name = '*.html'
65
+ t.result_dir = 'output'
66
+ t.greenpepper_path = 'lib'
67
+ end
68
+
69
+ Rake::Task[name].execute nil
70
+ end
71
+
72
+ def test_rake_task_outputs_error_when_it_can_t_require_greenpepper_core
73
+ name = 'testgreenpeppercorerequire'
74
+
75
+ GreenPepperTask.new name do |t|
76
+ t.greenpepper_path = 'dummy'
77
+ end
78
+
79
+ assert_raise(RuntimeError) {
80
+ Rake::Task[name].execute nil
81
+ }
82
+ end
83
+
84
+ def test_rake_task_loads_value_in_config_file
85
+ load 'test/task/test_data/test_config.rb'
86
+ name = 'testconfigfile'
87
+
88
+ task = GreenPepperTask.new name
89
+
90
+ assert_equal "/my/spec/dir", task.spec_dir
91
+ assert_equal "my_result", task.result_dir
92
+ assert_equal "/my/core/path", task.greenpepper_path
93
+ assert !task.instance_variable_defined?("@undefined_var")
94
+ end
95
+
96
+ end
@@ -0,0 +1,120 @@
1
+ =begin
2
+ author: Simon Mathieu (simon.math@gmail.com)
3
+ date: October 23, 2009
4
+ =end
5
+
6
+ require 'rubygems'
7
+ require 'test/unit'
8
+ require 'mocha'
9
+ require 'tempfile'
10
+ require 'cgi'
11
+
12
+ require 'greenpepper/redpeppertask'
13
+
14
+ include GreenPepper
15
+
16
+ class RedPepperTaskTest < Test::Unit::TestCase
17
+ def setup
18
+ @server = "http://www.greenpeppersoftware.com"
19
+ @path = Dir::tmpdir
20
+ @content = ["<title>name1</title>Content of spec 1",
21
+ "<title>name2</title>Content of spec 2"]
22
+
23
+ #Don't load config for all test
24
+ GreenPepperConfig.instance.server = nil
25
+ GreenPepperConfig.instance.path = nil
26
+ end
27
+
28
+ def test_rake_task_should_fetch_a_page_on_server_and_save_it_specified_path
29
+ spec_id = 1
30
+ name = "test"
31
+
32
+ expected_uri = "#{@server}/specifications/spec/#{spec_id}"
33
+
34
+ http_request = get_mock(expected_uri)
35
+
36
+ RedPepperTask.new name, http_request do |t|
37
+ t.server = @server
38
+ t.spec_id = spec_id
39
+ t.path = @path
40
+ end
41
+ execute_and_test name, ["name1.html"]
42
+ end
43
+
44
+ def test_rake_task_should_fetch_the_spec_by_name
45
+ spec_name = "My Spec Name"
46
+ name = "test2"
47
+
48
+ expected_uri =
49
+ "#{@server}/specifications/spec/name/#{CGI::escape spec_name}"
50
+
51
+ http_request = get_mock(expected_uri)
52
+
53
+ RedPepperTask.new name, http_request do |t|
54
+ t.server = @server
55
+ t.spec_name = spec_name
56
+ t.path = @path
57
+ end
58
+ execute_and_test name, ["name1.html"]
59
+ end
60
+
61
+ def test_rake_task_should_fetch_all_specs
62
+ expected_uri = "#{@server}/specifications/all"
63
+ http_request = get_all_ids_mock(expected_uri)
64
+ name = 'allspecs'
65
+ files_names = ['name1.html', 'name2.html']
66
+
67
+ RedPepperTask.new(name, http_request) do |t|
68
+ t.server = @server
69
+ t.path = @path
70
+ end
71
+
72
+ execute_and_test name, files_names
73
+ end
74
+
75
+ def test_rake_task_loads_value_in_config_file
76
+ load 'test/task/test_data/test_config.rb'
77
+ name = 'testconfigfile'
78
+ task = RedPepperTask.new name
79
+
80
+ assert_equal "config server", task.server
81
+ assert_equal "config path", task.path
82
+ assert !task.instance_variable_defined?("@undefined_var")
83
+ end
84
+
85
+ private
86
+ def get_mock(expected_uri)
87
+ http_request = mock
88
+ http_request.expects(:get).with{|uri| uri.to_s == expected_uri}.
89
+ once.returns(@content[0])
90
+ http_request
91
+ end
92
+
93
+ def get_all_ids_mock(expected_uri)
94
+ http_request = mock
95
+ http_request.expects(:get).times(3).returns("spec1\nspec2").then.
96
+ returns(@content[0]).then.returns(@content[1])
97
+ http_request
98
+ end
99
+
100
+ def execute_and_test(task_name, files)
101
+ Rake::Task[task_name].execute nil
102
+
103
+ files.each_with_index{ |file, index|
104
+ begin
105
+ file = File.join(@path, file)
106
+ validate_file_existence_and_content file, @content[index]
107
+ File.delete file if File.exist?(file)
108
+ ensure
109
+ File.delete file if File.exist?(file)
110
+ end
111
+ }
112
+ end
113
+
114
+ def validate_file_existence_and_content(filename, content_to_assert)
115
+ puts "filename #{filename}"
116
+ assert File.exist?(filename)
117
+ file_content = File.read(filename)
118
+ assert_equal file_content, content_to_assert
119
+ end
120
+ end
@@ -0,0 +1,85 @@
1
+ # RemoveAccents version 1.0.3 (c) 2008-2009 Solutions Informatiques Techniconseils inc.
2
+ #
3
+ # This module adds 2 methods to the string class.
4
+ # Up-to-date version and documentation available at:
5
+ #
6
+ # http://www.techniconseils.ca/en/scripts-remove-accents-ruby.php
7
+ #
8
+ # This script is available under the following license :
9
+ # Creative Commons Attribution-Share Alike 2.5.
10
+ #
11
+ # See full license and details at :
12
+ # http://creativecommons.org/licenses/by-sa/2.5/ca/
13
+ #
14
+ # Version history:
15
+ # * 1.0.3 : July 23 2009
16
+ # Corrected some incorrect character codes. Source is now wikipedia at:
17
+ # http://en.wikipedia.org/wiki/ISO/IEC_8859-1#Related_character_maps
18
+ # Thanks to Raimon Fernandez for pointing out the incorrect codes.
19
+ # * 1.0.2 : October 29 2008
20
+ # Slightly optimized version of urlize - Jonathan Grenier (jgrenier@techniconseils.ca)
21
+ # * 1.0.1 : October 29 2008
22
+ # First public revision - Jonathan Grenier (jgrenier@techniconseils.ca)
23
+ #
24
+
25
+ class String
26
+ # The extended characters map used by removeaccents. The accented characters
27
+ # are coded here using their numerical equivalent to sidestep encoding issues.
28
+ # These correspond to ISO-8859-1 encoding.
29
+ ACCENTS_MAPPING = {
30
+ 'E' => [200,201,202,203],
31
+ 'e' => [232,233,234,235],
32
+ 'A' => [192,193,194,195,196,197],
33
+ 'a' => [224,225,226,227,228,229,230],
34
+ 'C' => [199],
35
+ 'c' => [231],
36
+ 'O' => [210,211,212,213,214,216],
37
+ 'o' => [242,243,244,245,246,248],
38
+ 'I' => [204,205,206,207],
39
+ 'i' => [236,237,238,239],
40
+ 'U' => [217,218,219,220],
41
+ 'u' => [249,250,251,252],
42
+ 'N' => [209],
43
+ 'n' => [241],
44
+ 'Y' => [221],
45
+ 'y' => [253,255],
46
+ 'AE' => [306],
47
+ 'ae' => [346],
48
+ 'OE' => [188],
49
+ 'oe' => [189]
50
+ }
51
+
52
+
53
+ # Remove the accents from the string. Uses String::ACCENTS_MAPPING as the source map.
54
+ def removeaccents
55
+ str = String.new(self)
56
+ String::ACCENTS_MAPPING.each {|letter,accents|
57
+ packed = accents.pack('U*')
58
+ rxp = Regexp.new("[#{packed}]", nil, 'U')
59
+ str.gsub!(rxp, letter)
60
+ }
61
+
62
+ str
63
+ end
64
+
65
+
66
+ # Convert a string to a format suitable for a URL without ever using escaped characters.
67
+ # It calls strip, removeaccents, downcase (optional) then removes the spaces (optional)
68
+ # and finally removes any characters matching the default regexp (/[^-_A-Za-z0-9]/).
69
+ #
70
+ # Options
71
+ #
72
+ # * :downcase => call downcase on the string (defaults to true)
73
+ # * :convert_spaces => Convert space to underscore (defaults to false)
74
+ # * :regexp => The regexp matching characters that will be converting to an empty string (defaults to /[^-_A-Za-z0-9]/)
75
+ def urlize(options = {})
76
+ options[:downcase] ||= true
77
+ options[:convert_spaces] ||= false
78
+ options[:regexp] ||= /[^-_A-Za-z0-9]/
79
+
80
+ str = self.strip.removeaccents
81
+ str.downcase! if options[:downcase]
82
+ str.gsub!(/\ /,'_') if options[:convert_spaces]
83
+ str.gsub(options[:regexp], '')
84
+ end
85
+ end
metadata ADDED
@@ -0,0 +1,234 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: greenpepper-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - GreenPepper Ruby Team
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-12-02 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: treetop
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 1.2.4
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: libxml-ruby
27
+ type: :runtime
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.1.0
34
+ version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: mocha
37
+ type: :development
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: "0"
44
+ version:
45
+ - !ruby/object:Gem::Dependency
46
+ name: rcov
47
+ type: :development
48
+ version_requirement:
49
+ version_requirements: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ">="
52
+ - !ruby/object:Gem::Version
53
+ version: "0"
54
+ version:
55
+ - !ruby/object:Gem::Dependency
56
+ name: RedCloth
57
+ type: :development
58
+ version_requirement:
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ version: "0"
64
+ version:
65
+ - !ruby/object:Gem::Dependency
66
+ name: diff-lcs
67
+ type: :development
68
+ version_requirement:
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: "0"
74
+ version:
75
+ description:
76
+ email: greenpepper@kzeon.com
77
+ executables:
78
+ - greenpepperruby
79
+ - greenpepperize
80
+ - greenpepperrails
81
+ extensions: []
82
+
83
+ extra_rdoc_files: []
84
+
85
+ files:
86
+ - bin/greenpepperize
87
+ - bin/greenpepperrails
88
+ - bin/greenpepperruby
89
+ - lib/greenpepper/argumentparser.rb
90
+ - lib/greenpepper/common/loadpath.rb
91
+ - lib/greenpepper/context/htmlcontext.rb
92
+ - lib/greenpepper/converter.rb
93
+ - lib/greenpepper/core.rb
94
+ - lib/greenpepper/example/collectionexample.rb
95
+ - lib/greenpepper/example/dowithexample.rb
96
+ - lib/greenpepper/example/exampleheader.rb
97
+ - lib/greenpepper/example/examplewithfixture.rb
98
+ - lib/greenpepper/example/executionresults.rb
99
+ - lib/greenpepper/example/fieldaccessor.rb
100
+ - lib/greenpepper/example/freetextexample.rb
101
+ - lib/greenpepper/example/importexample.rb
102
+ - lib/greenpepper/example/nameresolver.rb
103
+ - lib/greenpepper/example/ruleforexample.rb
104
+ - lib/greenpepper/example/setupexample.rb
105
+ - lib/greenpepper/example/silentexample.rb
106
+ - lib/greenpepper/example/unknownexample.rb
107
+ - lib/greenpepper/exception/greenpepperexception.rb
108
+ - lib/greenpepper/executionunit.rb
109
+ - lib/greenpepper/factory/collectionexamplefactory.rb
110
+ - lib/greenpepper/factory/dowithexamplefactory.rb
111
+ - lib/greenpepper/factory/examplefactory.rb
112
+ - lib/greenpepper/factory/freetextexamplefactory.rb
113
+ - lib/greenpepper/factory/htmlexamplefactory.rb
114
+ - lib/greenpepper/factory/importexamplefactory.rb
115
+ - lib/greenpepper/factory/ruleforexamplefactory.rb
116
+ - lib/greenpepper/factory/setupexamplefactory.rb
117
+ - lib/greenpepper/factory/silentexamplefactory.rb
118
+ - lib/greenpepper/factory/unknownexamplefactory.rb
119
+ - lib/greenpepper/freetext.rb
120
+ - lib/greenpepper/grammar/array.treetop
121
+ - lib/greenpepper/grammar/arrayparser.rb
122
+ - lib/greenpepper/greenpepperconfig.rb
123
+ - lib/greenpepper/greenpeppertask.rb
124
+ - lib/greenpepper/logger.rb
125
+ - lib/greenpepper/parser/freetextparser.rb
126
+ - lib/greenpepper/parser/htmlparser.rb
127
+ - lib/greenpepper/parser/scenario.rb
128
+ - lib/greenpepper/parser/table.rb
129
+ - lib/greenpepper/parser/wikiparser.rb
130
+ - lib/greenpepper/pass/freetextpass.rb
131
+ - lib/greenpepper/pass/greenpepperpass.rb
132
+ - lib/greenpepper/pass/tablepass.rb
133
+ - lib/greenpepper/railsargumentparser.rb
134
+ - lib/greenpepper/redpeppertask.rb
135
+ - lib/greenpepper/repository/atlassianrepository.rb
136
+ - lib/greenpepper/writer/consolewriter.rb
137
+ - lib/greenpepper/writer/freetextresult.rb
138
+ - lib/greenpepper/writer/freetextwriter.rb
139
+ - lib/greenpepper/writer/html.rb
140
+ - lib/greenpepper/writer/htmldocwriter.rb
141
+ - lib/greenpepper/writer/htmlresult.rb
142
+ - lib/greenpepper/writer/htmlwriter.rb
143
+ - lib/greenpepper/writer/output.rb
144
+ - lib/greenpepper/writer/result.rb
145
+ - lib/greenpepper/writer/xmlwriter.rb
146
+ - data/greenpepper.rake
147
+ - data/helper.rb
148
+ - data/tags
149
+ - vendor/accents.rb
150
+ has_rdoc: true
151
+ homepage: http://www.greenpeppersoftware.com
152
+ licenses: []
153
+
154
+ post_install_message:
155
+ rdoc_options: []
156
+
157
+ require_paths:
158
+ - lib
159
+ - vendor
160
+ required_ruby_version: !ruby/object:Gem::Requirement
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ version: "0"
165
+ version:
166
+ required_rubygems_version: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - ">="
169
+ - !ruby/object:Gem::Version
170
+ version: "0"
171
+ version:
172
+ requirements: []
173
+
174
+ rubyforge_project:
175
+ rubygems_version: 1.3.5
176
+ signing_key:
177
+ specification_version: 3
178
+ summary: An executable specification framework.
179
+ test_files:
180
+ - test/coreseedstest.rb
181
+ - test/greenpepper/argumentparsertest.rb
182
+ - test/greenpepper/common/loadpathtest.rb
183
+ - test/greenpepper/common/stattest.rb
184
+ - test/greenpepper/convertertest.rb
185
+ - test/greenpepper/coretest.rb
186
+ - test/greenpepper/example/collectionexampletest.rb
187
+ - test/greenpepper/example/dowithexampletest.rb
188
+ - test/greenpepper/example/exampletest.rb
189
+ - test/greenpepper/example/freetextexampletest.rb
190
+ - test/greenpepper/example/importexampletest.rb
191
+ - test/greenpepper/example/nameresolvertest.rb
192
+ - test/greenpepper/example/ruleforexampletest.rb
193
+ - test/greenpepper/example/setupexampletest.rb
194
+ - test/greenpepper/example/silentexampletest.rb
195
+ - test/greenpepper/example/unknownexampletest.rb
196
+ - test/greenpepper/factory/collectionexamplefactorytest.rb
197
+ - test/greenpepper/factory/dowithexamplefactorytest.rb
198
+ - test/greenpepper/factory/examplefactorytest.rb
199
+ - test/greenpepper/factory/freetextexamplefactorytest.rb
200
+ - test/greenpepper/factory/importexamplefactorytest.rb
201
+ - test/greenpepper/factory/ruleforexamplefactorytest.rb
202
+ - test/greenpepper/factory/setupexamplefactorytest.rb
203
+ - test/greenpepper/factory/silentexamplefactorytest.rb
204
+ - test/greenpepper/freetexttest.rb
205
+ - test/greenpepper/grammar/arrayparsertest.rb
206
+ - test/greenpepper/loggertest.rb
207
+ - test/greenpepper/parser/freetextparsertest.rb
208
+ - test/greenpepper/parser/htmlparsertest.rb
209
+ - test/greenpepper/parser/wikiparsertest.rb
210
+ - test/greenpepper/pass/freetextpasstest.rb
211
+ - test/greenpepper/pass/greenpepperpasstest.rb
212
+ - test/greenpepper/pass/tablepasstest.rb
213
+ - test/greenpepper/repository/atlassionrepositorytest.rb
214
+ - test/greenpepper/writer/freetextwritertest.rb
215
+ - test/greenpepper/writer/htmlcollectionwritertest.rb
216
+ - test/greenpepper/writer/htmldowithwritertest.rb
217
+ - test/greenpepper/writer/htmlruleforwritertest.rb
218
+ - test/greenpepper/writer/htmlsetupwritertest.rb
219
+ - test/greenpepper/writer/htmlstatresulttest.rb
220
+ - test/greenpepper/writer/htmlwriterpositiontest.rb
221
+ - test/greenpepper/writer/writertest.rb
222
+ - test/greenpepper/writer/xmlwritertest.rb
223
+ - test/integration/collectionexampleintegrationtest.rb
224
+ - test/integration/errorhandlingintegrationtest.rb
225
+ - test/integration/freetextexampleintegrationtest.rb
226
+ - test/integration/greenpepperexecutableintegrationtest.rb
227
+ - test/integration/importexampleintegrationtest.rb
228
+ - test/integration/interpretationordertest.rb
229
+ - test/integration/ruleforexampleintegrationtest.rb
230
+ - test/integration/securityintegrationtest.rb
231
+ - test/integration/setupexampleintegrationtest.rb
232
+ - test/integration/silentexampleintegrationtest.rb
233
+ - test/task/greenpeppertasktest.rb
234
+ - test/task/redpeppertasktest.rb