lemon 0.8.4 → 0.8.5

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 (51) hide show
  1. data/.config/cucumber.yml +3 -0
  2. data/.gitignore +8 -0
  3. data/.reap/digest +678 -0
  4. data/.reap/test.reap +7 -0
  5. data/.ruby +42 -45
  6. data/Assembly +43 -0
  7. data/HISTORY.rdoc +10 -0
  8. data/MANIFEST +65 -0
  9. data/PROFILE +9 -6
  10. data/Rakefile +14 -0
  11. data/VERSION +1 -1
  12. data/lemon.gemspec +152 -0
  13. data/lib/lemon.yml +42 -45
  14. data/lib/lemon/cli.rb +4 -2
  15. data/lib/lemon/controller/test_runner.rb +4 -0
  16. data/lib/lemon/model/test_case.rb +122 -40
  17. data/notes/2010-05-05-coverage.rdoc +47 -0
  18. data/notes/2010-05-06-files_not_classes.rdoc +19 -0
  19. data/notes/2010-07-11-acid_testing.rdoc +52 -0
  20. data/notes/2010-08-02-enforcing-the-unit.md +68 -0
  21. data/notes/2010-08-03-new-api.md +37 -0
  22. data/site/.rsync-filter +8 -0
  23. data/site/assets/images/cut-lemon.png +0 -0
  24. data/site/assets/images/forkme.png +0 -0
  25. data/site/assets/images/github-logo.png +0 -0
  26. data/site/assets/images/lemon.jpg +0 -0
  27. data/site/assets/images/lemon.svg +39 -0
  28. data/site/assets/images/lemons-are-good.png +0 -0
  29. data/site/assets/images/opensource.png +0 -0
  30. data/site/assets/images/ruby-logo.png +0 -0
  31. data/site/assets/images/skin.jpg +0 -0
  32. data/site/assets/images/skin1.jpg +0 -0
  33. data/site/assets/images/tap.png +0 -0
  34. data/site/assets/images/title.png +0 -0
  35. data/site/assets/styles/class.css +6 -0
  36. data/site/assets/styles/reset.css +17 -0
  37. data/site/assets/styles/site.css +33 -0
  38. data/site/index.html +217 -0
  39. data/work/deprecated/command/abstract.rb +29 -0
  40. data/work/deprecated/command/coverage.rb +115 -0
  41. data/work/deprecated/command/generate.rb +124 -0
  42. data/work/deprecated/command/test.rb +112 -0
  43. data/work/reference/dsl2.rb +136 -0
  44. data/work/reference/dynamic_constant_lookup.rb +76 -0
  45. data/work/sandbox/lib/sample.rb +13 -0
  46. data/work/sandbox/test/sample_case.rb +12 -0
  47. data/work/trash/example-cover.rb +5 -0
  48. data/work/trash/example.rb +16 -0
  49. metadata +134 -101
  50. data/.yardopts +0 -7
  51. data/QED.rdoc +0 -1
@@ -0,0 +1,7 @@
1
+
2
+ trip :test do
3
+ system "lemon -Ilib test/*.rb"
4
+ system "qed -Ilib qed/"
5
+ #system "cucumber"
6
+ end
7
+
data/.ruby CHANGED
@@ -1,59 +1,56 @@
1
- ---
2
- name: lemon
3
- version: 0.8.4
4
- title: Lemon
5
- summary: Pucker-tight Unit Testing
6
- description: Lemon is a unit testing framework that tightly correlates class to test case and method to test unit.
7
- loadpath:
8
- - lib
9
- manifest: MANIFEST
10
- requires:
1
+ ---
2
+ authors:
3
+ - name: Thomas Sawyer
4
+ email: transfire@gmail.com
5
+ copyrights:
6
+ - holder: Thomas Sawyer
7
+ year: '2009'
8
+ license: BSD-2-Clause
9
+ replacements: []
10
+ conflicts: []
11
+ requirements:
11
12
  - name: ae
12
- version: 0+
13
- group: []
14
-
15
13
  - name: ansi
16
14
  version: 1.3+
17
- group: []
18
-
19
15
  - name: detroit
20
- version: 0+
21
- group:
16
+ groups:
22
17
  - build
18
+ development: true
23
19
  - name: reap
24
- version: 0+
25
- group:
20
+ groups:
26
21
  - build
22
+ development: true
27
23
  - name: qed
28
- version: 0+
29
- group:
24
+ groups:
30
25
  - test
26
+ development: true
31
27
  - name: cucumber
32
- version: 0+
33
- group:
28
+ groups:
34
29
  - test
30
+ development: true
35
31
  - name: aruba
36
- version: 0+
37
- group:
32
+ groups:
38
33
  - test
39
- conflicts: []
40
-
41
- replaces: []
42
-
43
- engine_check: []
44
-
34
+ development: true
35
+ dependencies: []
36
+ repositories:
37
+ - uri: git://github.com/proutils/lemon.git
38
+ scm: git
39
+ name: origin
40
+ resources:
41
+ home: http://rubyworks.github.com/lemon
42
+ code: http://github.com/rubyworks/lemon
43
+ load_path:
44
+ - lib
45
+ extra:
46
+ manifest: MANIFEST
47
+ alternatives: []
48
+ revision: 0
49
+ title: Lemon
45
50
  suite: proutils
46
- contact: trans <transfire@gmail.com>
47
- copyright: Copyright 2009 Thomas Sawyer
48
- licenses:
49
- - Apache 2.0
50
- authors:
51
- - Thomas Sawyer
52
- maintainers: []
53
-
54
- resources:
55
- home: http://proutils.github.com/lemon
56
- repository: git://github.com/proutils/lemon.git
57
- repositories: {}
58
-
59
- spec_version: 1.0.0
51
+ summary: Pucker-tight Unit Testing
52
+ description: Lemon is a unit testing framework that tightly correlates class to test
53
+ case and method to test unit.
54
+ version: 0.8.5
55
+ name: lemon
56
+ date: '2011-07-16'
@@ -0,0 +1,43 @@
1
+ ---
2
+ email:
3
+ service : Email
4
+ file : ~
5
+ subject : ~
6
+ mailto :
7
+ - ruby-talk@ruby-lang.org
8
+ - rubyworks-mailinglist@googlegroups.com
9
+ #parts : [readme]
10
+ active : true
11
+
12
+ gem:
13
+ active : true
14
+
15
+ github: {}
16
+
17
+ dnote:
18
+ labels : ~
19
+ output : log/DNOTE.rdoc
20
+
21
+ yard:
22
+ yardopts: true
23
+ priority: 2
24
+
25
+ qedoc:
26
+ title: Lemony Testing
27
+ output: QED.rdoc
28
+
29
+ cucumber:
30
+ service : Custom
31
+ test : |
32
+ system 'cucumber -q -f progress test/cli'
33
+
34
+ lemon:
35
+ service : Custom
36
+ test : |
37
+ system 'lemon -Itest/fixtures test/*.rb'
38
+
39
+ vclog:
40
+ output :
41
+ - log/AHISTORY.rdoc
42
+ - log/CHANGELOG.rdoc
43
+
@@ -1,5 +1,15 @@
1
1
  = RELEASE HISTORY
2
2
 
3
+ == 0.8.5 / 2011-07-15
4
+
5
+ This release fixes exit code status, which should be -1 if there
6
+ are errors or failures.
7
+
8
+ Changes:
9
+
10
+ * Fix exit code status.
11
+
12
+
3
13
  == 0.8.4 / 2011-07-11
4
14
 
5
15
  Fix reported issue #6 to get lemon passing it own tests. (Note: the
@@ -0,0 +1,65 @@
1
+ #!mast .yardopts .ruby bin demo features lib man qed spec test [A-Z][A-Z]*
2
+ .yardopts
3
+ .ruby
4
+ bin/lemon
5
+ demo/case_example_error.rb
6
+ demo/case_example_fail.rb
7
+ demo/case_example_pass.rb
8
+ demo/case_example_pending.rb
9
+ demo/case_example_untested.rb
10
+ demo/fixture/example-use.rb
11
+ demo/fixture/example.rb
12
+ features/coverage.feature
13
+ features/generate.feature
14
+ features/step_definitions/coverage_steps.rb
15
+ features/support/ae.rb
16
+ features/support/aruba.rb
17
+ features/test.feature
18
+ lib/lemon/cli.rb
19
+ lib/lemon/controller/coverage_analyzer.rb
20
+ lib/lemon/controller/scaffold_generator.rb
21
+ lib/lemon/controller/test_runner.rb
22
+ lib/lemon/model/ae.rb
23
+ lib/lemon/model/cover_unit.rb
24
+ lib/lemon/model/main.rb
25
+ lib/lemon/model/pending.rb
26
+ lib/lemon/model/snapshot.rb
27
+ lib/lemon/model/source_parser.rb
28
+ lib/lemon/model/test_case.rb
29
+ lib/lemon/model/test_context.rb
30
+ lib/lemon/model/test_suite.rb
31
+ lib/lemon/model/test_unit.rb
32
+ lib/lemon/view/cover_reports/abstract.rb
33
+ lib/lemon/view/cover_reports/compact.rb
34
+ lib/lemon/view/cover_reports/outline.rb
35
+ lib/lemon/view/cover_reports/verbose.rb
36
+ lib/lemon/view/cover_reports/yaml.rb
37
+ lib/lemon/view/test_reports/abstract.rb
38
+ lib/lemon/view/test_reports/dotprogress.rb
39
+ lib/lemon/view/test_reports/html.rb
40
+ lib/lemon/view/test_reports/outline.rb
41
+ lib/lemon/view/test_reports/summary.rb
42
+ lib/lemon/view/test_reports/tap.rb
43
+ lib/lemon/view/test_reports/tapj.rb
44
+ lib/lemon/view/test_reports/tapy.rb
45
+ lib/lemon/view/test_reports/verbose.rb
46
+ lib/lemon.rb
47
+ lib/lemon.yml
48
+ qed/applique/fs.rb
49
+ qed/coverage/01_complete.rdoc
50
+ qed/coverage/02_incomplete.rdoc
51
+ qed/coverage/03_extensions.rdoc
52
+ test/case_coverage_analyzer.rb
53
+ test/case_test_case_dsl.rb
54
+ test/fixtures/case_complete.rb
55
+ test/fixtures/case_inclusion.rb
56
+ test/fixtures/case_incomplete.rb
57
+ test/fixtures/example.rb
58
+ test/fixtures/helper.rb
59
+ test/runner
60
+ HISTORY.rdoc
61
+ PROFILE
62
+ README.rdoc
63
+ QED.rdoc
64
+ VERSION
65
+ COPYING.rdoc
data/PROFILE CHANGED
@@ -2,21 +2,24 @@
2
2
  title : Lemon
3
3
  suite : proutils
4
4
  summary: Pucker-tight Unit Testing
5
- authors: Thomas Sawyer
6
- contact: trans <transfire@gmail.com>
7
- license: Apache 2.0
5
+ authors:
6
+ - Thomas Sawyer <transfire@gmail.com>
8
7
 
9
8
  description:
10
9
  Lemon is a unit testing framework that tightly correlates
11
10
  class to test case and method to test unit.
12
11
 
13
12
  resources:
14
- homepage: http://proutils.github.com/lemon
15
- repository: git://github.com/proutils/lemon.git
13
+ home: http://rubyworks.github.com/lemon
14
+ code: http://github.com/rubyworks/lemon
15
+
16
+ repositories:
17
+ origin: git://github.com/proutils/lemon.git
16
18
 
17
19
  copyright: Copyright 2009 Thomas Sawyer
20
+ license: BSD-2-Clause
18
21
 
19
- requires:
22
+ requirements:
20
23
  - ae
21
24
  - ansi 1.3+
22
25
  - detroit (build)
@@ -0,0 +1,14 @@
1
+ namespace :test do
2
+
3
+ desc 'run lemon unit tests'
4
+ task :unit do
5
+ sh 'lemon -Itest/fixtures test/*.rb'
6
+ end
7
+
8
+ desc 'run qed demonstration tests'
9
+ task :qed do
10
+ sh 'qed'
11
+ end
12
+
13
+ end
14
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.8.4
1
+ 0.8.5
@@ -0,0 +1,152 @@
1
+ # encoding: utf-8
2
+
3
+ require 'yaml'
4
+
5
+ Gem::Specification.new do |gemspec|
6
+
7
+ manifest = Dir.glob('manifest{,.txt)', File::FNM_CASEFOLD).first
8
+
9
+ scm = case
10
+ when File.directory?('.git')
11
+ :git
12
+ end
13
+
14
+ files = case
15
+ when manifest
16
+ File.readlines(manifest).
17
+ map{ |line| line.srtip }.
18
+ reject{ |line| line.empty? || line[0,1] == '#' }
19
+ when scm == :git
20
+ `git ls-files -z`.split("\0")
21
+ else
22
+ Dir.glob('{**/}{.*,*}') # TODO: be more specific using standard locations ?
23
+ end.select{ |path| File.file?(path) }
24
+
25
+ patterns = {
26
+ :bin_files => 'bin/*',
27
+ :lib_files => 'lib/{**/}*.rb',
28
+ :ext_files => 'ext/{**/}extconf.rb',
29
+ :doc_files => '*.{txt,rdoc,md,markdown,tt,textile}',
30
+ :test_files => '{test/{**/}*_test.rb,spec/{**/}*_spec.rb}'
31
+ }
32
+
33
+ glob_files = lambda { |pattern|
34
+ Dir.glob(pattern).select { |path|
35
+ File.file?(path) && files.include?(path)
36
+ }
37
+ }
38
+
39
+ #files = glob_files[patterns[:files]]
40
+
41
+ executables = glob_files[patterns[:bin_files]].map do |path|
42
+ File.basename(path)
43
+ end
44
+
45
+ extensions = glob_files[patterns[:ext_files]].map do |path|
46
+ File.basename(path)
47
+ end
48
+
49
+ metadata = YAML.load_file('.ruby')
50
+
51
+ # build-out the gemspec
52
+
53
+ case metadata['revision']
54
+ when 0
55
+ gemspec.name = metadata['name']
56
+ gemspec.version = metadata['version']
57
+ gemspec.summary = metadata['summary']
58
+ gemspec.description = metadata['description']
59
+
60
+ metadata['authors'].each do |author|
61
+ gemspec.authors << author['name']
62
+
63
+ if author.has_key?('email')
64
+ if gemspec.email
65
+ gemspec.email << author['email']
66
+ else
67
+ gemspec.email = [author['email']]
68
+ end
69
+ end
70
+ end
71
+
72
+ gemspec.licenses = metadata['licenses']
73
+
74
+ metadata['requirements'].each do |req|
75
+ name = req['name']
76
+ version = req['version']
77
+ groups = req['groups'] || []
78
+
79
+ if md = /^(.*?)([+-~])$/.match(version)
80
+ version = case md[2]
81
+ when '+' then ">= #{$1}"
82
+ when '-' then "< #{$1}"
83
+ when '~' then "~> #{$1}"
84
+ else version
85
+ end
86
+ end
87
+
88
+ #development = req['development']
89
+ #if development
90
+ # # populate development dependencies
91
+ # if gemspec.respond_to?(:add_development_dependency)
92
+ # gemspec.add_development_dependency(name,*version)
93
+ # else
94
+ # gemspec.add_dependency(name,*version)
95
+ # end
96
+ #else
97
+ # # populate runtime dependencies
98
+ # if gemspec.respond_to?(:add_runtime_dependency)
99
+ # gemspec.add_runtime_dependency(name,*version)
100
+ # else
101
+ # gemspec.add_dependency(name,*version)
102
+ # end
103
+ #end
104
+
105
+ if groups.empty? or groups.include?('runtime')
106
+ # populate runtime dependencies
107
+ if gemspec.respond_to?(:add_runtime_dependency)
108
+ gemspec.add_runtime_dependency(name,*version)
109
+ else
110
+ gemspec.add_dependency(name,*version)
111
+ end
112
+ else
113
+ # populate development dependencies
114
+ if gemspec.respond_to?(:add_development_dependency)
115
+ gemspec.add_development_dependency(name,*version)
116
+ else
117
+ gemspec.add_dependency(name,*version)
118
+ end
119
+ end
120
+ end
121
+
122
+ # convert external dependencies into a requirements
123
+ if metadata['external_dependencies']
124
+ ##gemspec.requirements = [] unless metadata['external_dependencies'].empty?
125
+ metadata['external_dependencies'].each do |req|
126
+ gemspec.requirements << req.to_s
127
+ end
128
+ end
129
+
130
+ # determine homepage from resources
131
+ homepage = metadata['resources'].find{ |key, url| key =~ /^home/ }
132
+ gemspec.homepage = homepage.last if homepage
133
+
134
+ gemspec.require_paths = metadata['load_path'] || ['lib']
135
+ gemspec.post_install_message = metadata['install_message']
136
+
137
+ # RubyGems specific metadata
138
+ gemspec.files = files
139
+ gemspec.extensions = extensions
140
+ gemspec.executables = executables
141
+
142
+ if Gem::VERSION < '1.7.'
143
+ gemspec.default_executable = gemspec.executables.first
144
+ end
145
+
146
+ gemspec.test_files = glob_files[patterns[:test_files]]
147
+
148
+ unless gemspec.files.include?('.document')
149
+ gemspec.extra_rdoc_files = glob_files[patterns[:doc_files]]
150
+ end
151
+ end
152
+ end
@@ -1,59 +1,56 @@
1
- ---
2
- name: lemon
3
- version: 0.8.4
4
- title: Lemon
5
- summary: Pucker-tight Unit Testing
6
- description: Lemon is a unit testing framework that tightly correlates class to test case and method to test unit.
7
- loadpath:
8
- - lib
9
- manifest: MANIFEST
10
- requires:
1
+ ---
2
+ authors:
3
+ - name: Thomas Sawyer
4
+ email: transfire@gmail.com
5
+ copyrights:
6
+ - holder: Thomas Sawyer
7
+ year: '2009'
8
+ license: BSD-2-Clause
9
+ replacements: []
10
+ conflicts: []
11
+ requirements:
11
12
  - name: ae
12
- version: 0+
13
- group: []
14
-
15
13
  - name: ansi
16
14
  version: 1.3+
17
- group: []
18
-
19
15
  - name: detroit
20
- version: 0+
21
- group:
16
+ groups:
22
17
  - build
18
+ development: true
23
19
  - name: reap
24
- version: 0+
25
- group:
20
+ groups:
26
21
  - build
22
+ development: true
27
23
  - name: qed
28
- version: 0+
29
- group:
24
+ groups:
30
25
  - test
26
+ development: true
31
27
  - name: cucumber
32
- version: 0+
33
- group:
28
+ groups:
34
29
  - test
30
+ development: true
35
31
  - name: aruba
36
- version: 0+
37
- group:
32
+ groups:
38
33
  - test
39
- conflicts: []
40
-
41
- replaces: []
42
-
43
- engine_check: []
44
-
34
+ development: true
35
+ dependencies: []
36
+ repositories:
37
+ - uri: git://github.com/proutils/lemon.git
38
+ scm: git
39
+ name: origin
40
+ resources:
41
+ home: http://rubyworks.github.com/lemon
42
+ code: http://github.com/rubyworks/lemon
43
+ load_path:
44
+ - lib
45
+ extra:
46
+ manifest: MANIFEST
47
+ alternatives: []
48
+ revision: 0
49
+ title: Lemon
45
50
  suite: proutils
46
- contact: trans <transfire@gmail.com>
47
- copyright: Copyright 2009 Thomas Sawyer
48
- licenses:
49
- - Apache 2.0
50
- authors:
51
- - Thomas Sawyer
52
- maintainers: []
53
-
54
- resources:
55
- home: http://proutils.github.com/lemon
56
- repository: git://github.com/proutils/lemon.git
57
- repositories: {}
58
-
59
- spec_version: 1.0.0
51
+ summary: Pucker-tight Unit Testing
52
+ description: Lemon is a unit testing framework that tightly correlates class to test
53
+ case and method to test unit.
54
+ version: 0.8.5
55
+ name: lemon
56
+ date: '2011-07-16'