reap 6.0.2 → 9.2.0

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 (174) hide show
  1. data/CHANGES +6 -0
  2. data/COPYING +666 -395
  3. data/MANIFEST +139 -0
  4. data/NOTES +12 -0
  5. data/README +19 -163
  6. data/bin/reap-announce +7 -0
  7. data/bin/reap-check-load +8 -0
  8. data/bin/reap-check-syntax +7 -0
  9. data/bin/reap-clean +7 -0
  10. data/bin/reap-clobber +7 -0
  11. data/bin/reap-doc +7 -0
  12. data/bin/reap-doc-rdoc +7 -0
  13. data/bin/reap-doc-ri +7 -0
  14. data/bin/reap-init +69 -0
  15. data/bin/reap-inspect +7 -0
  16. data/bin/reap-install +8 -0
  17. data/bin/reap-install-gem +8 -0
  18. data/bin/reap-log +7 -0
  19. data/bin/reap-log-changes +8 -0
  20. data/bin/reap-log-notes +8 -0
  21. data/bin/reap-make +7 -0
  22. data/bin/reap-make-clean +7 -0
  23. data/bin/reap-make-distclean +7 -0
  24. data/bin/reap-make-extconf +7 -0
  25. data/bin/reap-make-static +8 -0
  26. data/bin/reap-package +8 -0
  27. data/bin/reap-package-gem +7 -0
  28. data/bin/reap-package-tgz +7 -0
  29. data/bin/reap-package-zip +7 -0
  30. data/bin/reap-prepare +7 -0
  31. data/bin/reap-publish +7 -0
  32. data/bin/reap-release +7 -0
  33. data/bin/reap-scaffold +8 -0
  34. data/bin/reap-scm-branch +7 -0
  35. data/bin/reap-scm-tag +7 -0
  36. data/bin/reap-spec +7 -0
  37. data/bin/reap-spec-doc +8 -0
  38. data/bin/reap-stamp +7 -0
  39. data/bin/reap-stats +7 -0
  40. data/bin/reap-test +7 -0
  41. data/bin/reap-test-cross +7 -0
  42. data/bin/reap-test-load +9 -0
  43. data/bin/reap-test-solo +7 -0
  44. data/bin/reap-uninstall +7 -0
  45. data/bin/reap-uninstall-gem +7 -0
  46. data/data/reap/base/CHANGES +19 -0
  47. data/data/reap/base/COPYING +674 -0
  48. data/data/reap/base/NOTES +12 -0
  49. data/data/reap/base/README +8 -0
  50. data/data/reap/build/rake/Rakefile +130 -0
  51. data/{forge/reference/installers → data/reap/build/rake}/setup.rb +155 -97
  52. data/data/reap/build/rake-lite/install.rb +79 -0
  53. data/data/reap/build/tasks/task/rdoc +211 -0
  54. data/data/reap/{setup.rb → build/tasks/task/setup} +248 -200
  55. data/data/reap/build/tasks/task/test +38 -0
  56. data/data/reap/init/meta/project.yaml +21 -0
  57. data/demo/README +15 -0
  58. data/demo/lib/foo/foo.rb +7 -0
  59. data/demo/meta/VERSION +1 -0
  60. data/demo/meta/project.yaml +21 -0
  61. data/lib/reap/application.rb +80 -0
  62. data/lib/reap/default.yaml +77 -0
  63. data/lib/reap/extensions/array.rb +50 -0
  64. data/lib/reap/extensions/hash.rb +63 -0
  65. data/lib/reap/extensions/string.rb +31 -0
  66. data/lib/reap/extensions.rb +6 -0
  67. data/lib/reap/iobject.rb +264 -0
  68. data/lib/reap/manager/announce.rb +193 -0
  69. data/lib/reap/manager/check.rb +109 -0
  70. data/lib/reap/manager/clean.rb +58 -0
  71. data/lib/reap/manager/gem.rb +200 -0
  72. data/lib/reap/manager/html.rb +69 -0
  73. data/lib/reap/manager/log.rb +214 -0
  74. data/lib/reap/manager/make.rb +109 -0
  75. data/lib/reap/manager/pack.rb +232 -0
  76. data/lib/reap/manager/publish.rb +72 -0
  77. data/lib/reap/manager/rdoc.rb +194 -0
  78. data/lib/reap/manager/release.rb +78 -0
  79. data/lib/reap/manager/rubyforge.rb +44 -0
  80. data/lib/reap/manager/scaffold.rb +138 -0
  81. data/lib/reap/manager/scm.rb +66 -0
  82. data/lib/reap/manager/site.rb +27 -0
  83. data/lib/reap/manager/spec.rb +94 -0
  84. data/lib/reap/manager/stats.rb +145 -0
  85. data/lib/reap/manager/svn.rb +76 -0
  86. data/lib/reap/manager/test.rb +389 -0
  87. data/lib/reap/manager.rb +74 -0
  88. data/lib/reap/metadata.rb +603 -0
  89. data/lib/reap/project.rb +165 -0
  90. data/lib/reap/settings.rb +67 -0
  91. data/lib/reap/systems/rubyforge.rb +737 -0
  92. data/lib/reap/systems/subversion.rb +333 -0
  93. data/lib/reap/utilities/fileutils.rb +304 -0
  94. data/lib/reap/utilities/netutils.rb +221 -0
  95. data/lib/reap/utilities/setuputils.rb +124 -0
  96. data/lib/reap/utilities/shellutils.rb +175 -0
  97. data/log/Changelog.txt +107 -0
  98. data/log/FIXME.txt +25 -0
  99. data/log/TODO.txt +72 -0
  100. data/meta/VERSION +1 -0
  101. data/meta/description +4 -0
  102. data/meta/project.yaml +20 -0
  103. data/task/man +14 -0
  104. data/task/rdoc +20 -0
  105. data/{data/reap/scaffold/standard/setup.rb → task/setup} +248 -200
  106. metadata +225 -153
  107. data/ProjectInfo +0 -105
  108. data/bin/reap +0 -5
  109. data/bin/rubytest +0 -5
  110. data/data/reap/install.rb +0 -62
  111. data/data/reap/scaffold/standard/COPYING +0 -403
  112. data/data/reap/scaffold/standard/ChangeLog +0 -0
  113. data/data/reap/scaffold/standard/INSTALL +0 -14
  114. data/data/reap/scaffold/standard/ProjectInfo +0 -77
  115. data/data/reap/scaffold/standard/README +0 -3
  116. data/data/reap/scaffold/standard/Rakefile +0 -10
  117. data/data/reap/scaffold/standard/TODO +0 -0
  118. data/data/reap/scaffold/subversion/trunk/COPYING +0 -403
  119. data/data/reap/scaffold/subversion/trunk/ChangeLog +0 -0
  120. data/data/reap/scaffold/subversion/trunk/INSTALL +0 -14
  121. data/data/reap/scaffold/subversion/trunk/ProjectInfo +0 -76
  122. data/data/reap/scaffold/subversion/trunk/README +0 -3
  123. data/data/reap/scaffold/subversion/trunk/Rakefile +0 -10
  124. data/data/reap/scaffold/subversion/trunk/TODO +0 -0
  125. data/data/reap/scaffold/subversion/trunk/setup.rb +0 -1568
  126. data/forge/ProjectInfo +0 -38
  127. data/forge/ProjectInfo.rb +0 -76
  128. data/forge/TODO +0 -10
  129. data/forge/installer.rb +0 -250
  130. data/forge/reference/Rakefile +0 -124
  131. data/forge/reference/Rakefile.htm +0 -69
  132. data/forge/reference/aRakefile +0 -60
  133. data/forge/reference/compositepublisher.rb +0 -24
  134. data/forge/reference/ftptools.rb +0 -139
  135. data/forge/reference/installers/package.rb +0 -629
  136. data/forge/reference/license-each.rb +0 -85
  137. data/forge/reference/publisher.rb +0 -75
  138. data/forge/reference/rubyforge.rb +0 -247
  139. data/forge/reference/rubyforgepublisher.rb +0 -18
  140. data/forge/reference/sshpublisher.rb +0 -47
  141. data/forge/reference/suby-cvs.rb +0 -46
  142. data/forge/scaffold.rb +0 -126
  143. data/forge/unit_runner/README +0 -6
  144. data/forge/unit_runner/commentrunner.rb +0 -62
  145. data/forge/unit_runner/cunit.rb +0 -17
  146. data/forge/unit_runner/forkedrunner.rb +0 -91
  147. data/forge/unit_runner/sample.rb +0 -16
  148. data/lib/reap/bin/reap.rb +0 -230
  149. data/lib/reap/bin/rubytest.rb +0 -53
  150. data/lib/reap/class/announce.rb +0 -220
  151. data/lib/reap/class/doap.rb +0 -80
  152. data/lib/reap/class/extest.rb +0 -146
  153. data/lib/reap/class/filer.rb +0 -62
  154. data/lib/reap/class/manifest.rb +0 -68
  155. data/lib/reap/class/package.rb +0 -576
  156. data/lib/reap/class/publish.rb +0 -152
  157. data/lib/reap/class/rdoc.rb +0 -123
  158. data/lib/reap/class/test.rb +0 -264
  159. data/lib/reap/projectinfo.rb +0 -208
  160. data/lib/reap/rake.rb +0 -42
  161. data/lib/reap/reap.rb +0 -89
  162. data/lib/reap/tasks.rb +0 -756
  163. data/lib/reap/taskutils.rb +0 -122
  164. data/note/LATEST +0 -44
  165. data/note/doap.xml +0 -28
  166. data/note/history/Rakefile-0.1 +0 -308
  167. data/sample/ProjectInfo +0 -96
  168. data/sample/Rakefile +0 -9
  169. data/sample/Reapfile +0 -11
  170. data/sample/task/demo.rb +0 -15
  171. data/setup.rb +0 -1568
  172. data/web/ProjectInfo.html +0 -75
  173. data/web/images/grape.jpg +0 -0
  174. data/web/index.html +0 -312
@@ -1,146 +0,0 @@
1
- #--
2
- # _____ _ ___ _
3
- # |_ _|__ __| |_ | __|_ _| |_
4
- # | |/ -_|_-< _| | _|\ \ / _|_
5
- # |_|\___/__/\__| |___/_\_\\__(_)
6
- #
7
- #++
8
-
9
- require 'facet/string/margin'
10
- require 'facet/progressbar'
11
- require 'facet/filelist.rb' unless defined?( FileList )
12
-
13
- module Reap
14
-
15
- # = Test Extraction
16
- #
17
- # This task scans every package script looking for sections of the form:
18
- #
19
- # =begin test
20
- # ...
21
- # =end
22
- #
23
- # With appropriate headers, it copies these sections to files in your
24
- # project's test/ dir, which then can be run using the Reap test task.
25
- # The exact directory layout of the files to be tested is reflected in
26
- # the test directory. You can then use Reap's test task to run the tests.
27
- #
28
- # Specific Settings:
29
- #
30
- # dir Specify the test directory. Default is 'test'.
31
- # files Specify files to extract. Default is 'lib/**/*.rb'.
32
- #
33
-
34
- class ExTest
35
-
36
- include TaskUtils
37
-
38
- attr_accessor :dir, :files, :options
39
-
40
- def initialize( tst )
41
- @dir = 'test'
42
- @files = [ 'lib/**/*.rb' ]
43
- @options = {}
44
-
45
- super
46
-
47
- @files = [ @files ].flatten
48
- end
49
-
50
- # Extract tests.
51
-
52
- def extract
53
- extract_tests
54
- end
55
-
56
- alias_method :call, :extract
57
-
58
- private
59
-
60
- def extract_tests
61
- #test_libs = @libs.join(':')
62
- filelist = FileList.new
63
- filelist.include(*@files)
64
- if filelist.empty?
65
- tell "No script files found."
66
- return
67
- end
68
- #tell "Reap is scanning and copying embedded tests..."
69
- if @dir.strip.empty?
70
- tell "Test directory must be specified. Aborting."
71
- return # TODO use #abort or sepcial method to do a nice exit?
72
- end
73
- unless File.directory?( @dir )
74
- tell "Test directory doesn't exist: #{File.expand_path( @dir )}"
75
- return
76
- end
77
- pbar = Console::ProgressBar.new( 'Extracting', filelist.size )
78
- filelist.each { |file|
79
- pbar.inc
80
- testing = extract_from_file( file )
81
- unless testing.strip.empty?
82
- complete_test = create( testing, file )
83
- libpath = File.dirname( file )
84
- testfile = "test_" + File.basename( file )
85
- fp = File.join( dir, libpath, testfile )
86
- unless File.directory?( File.dirname( fp ) )
87
- FileUtils.mkdir_p( File.dirname(fp) )
88
- end
89
- File.open( fp, "w" ) { |fw| fw << complete_test }
90
- end
91
- }
92
- pbar.finish
93
- end
94
-
95
- private
96
-
97
- def extract_from_file( file )
98
- return nil if ! File.file?( file )
99
- tests = ""; inside = false
100
- fstr = File.read( file )
101
- fstr.split(/\n/).each do |l|
102
- if l =~ /^=begin[ ]*test/i
103
- tests << "\n"
104
- inside = true
105
- next
106
- elsif inside and l =~ /^=[ ]*end/
107
- inside = false
108
- next
109
- end
110
- if inside
111
- tests << l << "\n"
112
- end
113
- end
114
- tests
115
- end
116
-
117
- def create( testing, file )
118
- fp = file.split(/[\/]/)
119
- if fp[0] == 'lib'
120
- reqf = "require '#{fp[1..-1].join('/')}'"
121
- else
122
- reqf = ''
123
- end
124
- teststr = <<-HERE.margin
125
- `# _____ _
126
- `# |_ _|__ ___| |_
127
- `# | |/ _ \\/ __| __|
128
- `# | | __/\\__ \\ |_
129
- `# |_|\\___||___/\\__|
130
- `#
131
- `# for #{file}
132
- `#
133
- `# Extracted #{Time.now}
134
- `# Unit Tools Reap Test Extractor
135
- `#
136
- `
137
- `#{reqf}
138
- `
139
- HERE
140
- teststr << testing << "\n"
141
- teststr
142
- end
143
-
144
- end
145
-
146
- end #module Reap
@@ -1,62 +0,0 @@
1
- #--
2
- #++
3
-
4
- #require 'digest/md5'
5
-
6
- module Reap
7
-
8
- # = Filer
9
- #
10
- #
11
-
12
- class Filer
13
-
14
- include TaskUtils
15
-
16
- attr_accessor :source
17
-
18
- def initialize( name, source, &build )
19
- @name = name
20
- @source = [source].flatten
21
- @build = build
22
- end
23
-
24
- # Is this file task needed? Yes if it doesn't exist, or if its time
25
- # stamp is out of date.
26
- def needed?
27
- return true unless ::File.exist?( @name )
28
- return true if out_of_date?( timestamp( @name ) )
29
- false
30
- end
31
-
32
- # Check timestamp.
33
- def timestamp( name )
34
- if ::File.exist?( name.to_s )
35
- ::File.mtime( name.to_s )
36
- else
37
- Time::EARLY # TODO replace with Facets' -Infinity class (?)
38
- end
39
- end
40
-
41
- # Are there any sources with a later time than the given timestamp?
42
- def out_of_date?( stamp )
43
- @source.any? { |n| timestamp(n) > stamp }
44
- end
45
-
46
- # Build file.
47
-
48
- def build
49
- @build.call if needed?
50
- end
51
-
52
- alias_method :call, :build
53
-
54
- private
55
-
56
- #def salt( file )
57
- # Digest::MD5.new( File.read( file ) ).hexdigest
58
- #end
59
-
60
- end
61
-
62
- end #module Reap
@@ -1,68 +0,0 @@
1
- #--
2
- # __ __ _ __ _
3
- # | \/ |__ _ _ _ (_)/ _|___ __| |_
4
- # | |\/| / _` | ' \| | _/ -_|_-< _|
5
- # |_| |_\__,_|_||_|_|_| \___/__/\__|
6
- #
7
- #++
8
-
9
- require 'digest/md5'
10
-
11
- module Reap
12
-
13
- # = Manifest
14
- #
15
- # Create a manifest file for the package. Presently it is a very simple
16
- # md5 + filename manifest. In the future this will be exanded to build
17
- # a varity of manifest formats.
18
- #
19
- # Task specific settings:
20
- #
21
- # include Files to include
22
- # exclude Files to exclude
23
- #
24
-
25
- class Manifest
26
-
27
- include TaskUtils
28
-
29
- MUST_EXCLUDE = [ 'InstalledFiles', '**/CVS/**/*', '**/*~' ] #, 'dist', 'pkg' ]
30
-
31
- attr_accessor :dir, :include, :exclude
32
-
33
- def initialize( man )
34
- @dir = '.'
35
- @include = ['**/*']
36
- @exclude = []
37
-
38
- super
39
-
40
- @exclude |= MUST_EXCLUDE
41
- end
42
-
43
- # Generate manifest file.
44
-
45
- def generate #( type=nil )
46
- manifest_file = File.join( File.expand_path( @dir ), 'MANIFEST' )
47
- package_files = FileList.new
48
-
49
- package_files.include(*@include)
50
- package_files.exclude(*@exclude) #if @exclude and not @exclude.empty?
51
- File.open( manifest_file, 'w+') do |f|
52
- package_files.each do |pf|
53
- f << "#{salt(pf)} #{pf}\n" if File.file?(pf)
54
- end
55
- end
56
- end
57
-
58
- alias_method :call, :generate
59
-
60
- private
61
-
62
- def salt( file )
63
- Digest::MD5.new( File.read( file ) ).hexdigest
64
- end
65
-
66
- end
67
-
68
- end #module Reap