reap 6.0.2 → 9.2.0

Sign up to get free protection for your applications and to get access to all the features.
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