reap 9.2.1 → 9.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. data/CHANGES +4 -0
  2. data/COPYING +675 -674
  3. data/MANIFEST +37 -44
  4. data/NOTES +4 -4
  5. data/Rakefile +1486 -0
  6. data/data/reap/base/COPYING +674 -674
  7. data/data/reap/base/README +23 -2
  8. data/data/reap/base/Rakefile +1486 -0
  9. data/data/reap/base/test/template.rb +16 -0
  10. data/data/reap/init/meta/project.yaml +19 -14
  11. data/lib/reap/default.yaml +57 -45
  12. data/lib/reap/extensions/file.rb +8 -0
  13. data/lib/reap/extensions/net/smtp_tls.rb +108 -0
  14. data/lib/reap/extensions.rb +2 -0
  15. data/lib/reap/metadata.rb +3 -2
  16. data/lib/reap/{manager → project}/announce.rb +3 -3
  17. data/lib/reap/{manager → project}/check.rb +1 -1
  18. data/lib/reap/{manager → project}/clean.rb +1 -1
  19. data/lib/reap/{manager → project}/gem.rb +5 -5
  20. data/lib/reap/{manager → project}/html.rb +25 -24
  21. data/lib/reap/{manager → project}/log.rb +19 -9
  22. data/lib/reap/{manager → project}/make.rb +29 -36
  23. data/lib/reap/{manager → project}/package.rb +4 -8
  24. data/lib/reap/{manager → project}/publish.rb +3 -3
  25. data/lib/reap/{manager → project}/rdoc.rb +13 -30
  26. data/lib/reap/{manager → project}/release.rb +5 -5
  27. data/lib/reap/{manager → project}/rubyforge.rb +7 -6
  28. data/lib/reap/{manager → project}/scaffold.rb +7 -2
  29. data/lib/reap/{manager → project}/scm.rb +3 -3
  30. data/lib/reap/{manager → project}/site.rb +1 -1
  31. data/lib/reap/{manager → project}/spec.rb +1 -1
  32. data/lib/reap/{manager → project}/stamp.rb +14 -11
  33. data/lib/reap/{manager → project}/stats.rb +1 -1
  34. data/lib/reap/{manager → project}/svn.rb +1 -1
  35. data/lib/reap/{manager → project}/test.rb +2 -20
  36. data/lib/reap/project.rb +34 -2
  37. data/lib/reap/systems/rubyforge.rb +5 -12
  38. data/lib/reap/systems/subversion.rb +4 -6
  39. data/lib/reap/{utilities/fileutils.rb → utilities.rb} +148 -60
  40. data/log/Changelog.txt +118 -0
  41. data/log/Fixme.txt +26 -0
  42. data/log/Todo.txt +94 -0
  43. data/meta/VERSION +1 -1
  44. data/meta/project.yaml +1 -1
  45. data/meta/unixname +1 -0
  46. data/test/unit/lib/reap/extensions/test_array.rb +12 -0
  47. metadata +44 -46
  48. data/data/reap/build/rake/Rakefile +0 -130
  49. data/data/reap/build/rake/setup.rb +0 -1616
  50. data/data/reap/build/rake-lite/install.rb +0 -79
  51. data/data/reap/build/tasks/task/rdoc +0 -211
  52. data/data/reap/build/tasks/task/setup +0 -1616
  53. data/data/reap/build/tasks/task/test +0 -38
  54. data/lib/reap/manager.rb +0 -75
  55. data/lib/reap/utilities/netutils.rb +0 -221
  56. data/lib/reap/utilities/setuputils.rb +0 -124
  57. data/lib/reap/utilities/shellutils.rb +0 -175
  58. data/log/FIXME.txt +0 -25
  59. data/log/TODO.txt +0 -72
  60. data/task/man +0 -14
  61. data/task/rdoc +0 -20
  62. data/task/setup +0 -1616
@@ -0,0 +1,16 @@
1
+ require 'test/unit'
2
+
3
+ class TC_Sample < Test::Unit::TestCase
4
+
5
+ def setup
6
+ end
7
+
8
+ def teardown
9
+ end
10
+
11
+ def test_sample
12
+ assert(true)
13
+ end
14
+
15
+ end
16
+
@@ -1,21 +1,26 @@
1
1
  ---
2
- title : Reap
3
- summary : Ruby Project Assistant
4
- description: >
5
- Reap is a Ruby project management system.
2
+ project : foo
3
+ contact : Your Name <yourmail@foomail.com>
4
+ license : GPLv3
5
+ created : 2005-08-09
6
+ homepage : http://orphans.rubyforge.org
7
+ repository : http://orphans.rubyforge.org/svn
6
8
 
7
- project : reap
8
- author : Thomas Sawyer <transfire@gmail.com>
9
- created : "2005-08-09"
10
- homepage : "http://reap.rubyforge.org"
11
- repository : "http://reap.rubyforge.org/svn"
12
- slogan : Reap Your Rewards
9
+ # Title. This defaults to project capitalized, if not given.
10
+ title : Project Title Here
13
11
 
14
- exclude : [ pkg, work, doc, ri ]
12
+ # One line description.
13
+ brief : Foo Foo the Rabbit
15
14
 
16
- dependency :
17
- - [facets, ">= 2.1.0"]
15
+ # Detailed description.
16
+ description: >
17
+ Little rabbit Foo Foo was hoping through the forest.
18
+ Picking up field mice and bopping them on the head.
18
19
 
19
- loadpath: lib/reap
20
+ # Directories to exclude from package.
21
+ exclude : [ pkg, work, doc, ri ]
20
22
 
23
+ # List of dependenices with version constraints.
24
+ dependency :
25
+ - [facets, '>= 2.1.0']
21
26
 
@@ -12,66 +12,78 @@
12
12
  secure: false # Uses TLS security, true or false?
13
13
  login: plain # Login type: plain, cram_md5 or login.
14
14
  cutoff: 30 # How many lines of changelog to provide.
15
+
15
16
  check:
16
- loadpath: #{metadata.loadpath}
17
- exclude: []
17
+ loadpath: ~ # Defaults to metadata.loadpath.
18
+ exclude: [] # Files or directories to specifically exclude.
19
+
18
20
  check-syntax:
19
- loadpath: #{metadata.loadpath}
20
- exclude: [ext]
21
+ loadpath: ~ # Defaults to metadata.loadpath.
22
+ exclude: [ext] # Files or directories to specifically exclude.
23
+
21
24
  check-load:
22
- loadpath: #{metadata.loadpath}
23
- exclude: []
25
+ loadpath: ~ # Defaults to metadata.loadpath.
26
+ exclude: [] # Files or directories to specifically exclude.
27
+
24
28
  clean:
25
- remove: [**/*~, **/*.bak]
29
+ remove: [**/*~, **/*.bak] # Files globs to remove when cleaning.
30
+
26
31
  log:
27
32
  policy: [cap, ext] # How to save log files. (cap=capitialize, up=uppercase, low=lowercase, ext=extension)
28
- output: log
33
+ output: log # Where to store log files. (This is to become convention!)
34
+
29
35
  log-notes:
30
- loadpath: #{metadata.loadpath} # Files to search for notes.
31
- labels: [TODO, FIXME, OPTIMIZE]
32
- make:
33
- extensions: #{metadata.extensions} # Defaults to ext/**/extconf.rb (NOT USED YET)
36
+ loadpath: ~ # File paths to search for notes. Defaults to metadata.loadpath.
37
+ labels: [TODO, FIXME, OPTIMIZE] # Note labels to scan.
38
+
34
39
  package:
35
- formats: [zip, gem]
40
+ formats: [zip, gem] # Package formats to create (gem, zip, tgz)
41
+
36
42
  publish:
37
- source: doc
38
- webdir: ~
39
- username: #{ENV['RUBYFORGE_USERNAME']}
43
+ source: site # Directory to publish.
44
+ webdir: ~ # Remote directory to copy to.
45
+ username: ~ # Account username. Deafults to ENV['RUBYFORGE_USERNAME'].
40
46
  protect: [usage, statcvs, statsvn, robot.txt, wiki] # Used as defaults for creating .rsync-filter (after that edit .rsync-filter)
41
47
  exclude: [.svn, scrap] # Used as defaults for creating .rsync-filter (after that edit .rsync-filter)
48
+
42
49
  rdoc:
43
- template: html
44
- output: doc/rdoc
45
- main: 'README{,.txt}'
46
- inline: true
47
- merge: true
48
- exclude: []
49
- include: ['lib', '[A-Z]*']
50
- adfile: doc/ads/rdoc.html
51
- targets: ~
50
+ template: html # Template to use.
51
+ output: doc # Where to save rdoc files.
52
+ main: 'README{,.txt}' # Main file (pattern).
53
+ inline: true # Inline source?
54
+ merge: true # Merge code?
55
+ include: [lib, '[A-Z]*'] # Which files to include (be careful of including a Rakefile).
56
+ exclude: [] # Paths to specifically exclude. (RDOC SUCKS --THIS DOESN'T WORK!!!)
57
+ adfile: site/ads/rdoc.html # Ad file html snippet to add te html rdocs.
58
+ targets: ~ # If you need more then one rdoc set, use targets.
59
+
52
60
  ri:
53
- output: ri
54
- exclude: []
55
- include: #{metadata.loadpath}
61
+ output: ri # Where to save ri files.
62
+ include: ~ # Defaults to metadata.loadpath.
63
+ exclude: [] # Paths to specifically exclude.
64
+
56
65
  release:
57
- username: #{ENV['RUBYFORGE_USERNAME']}
58
- changelog: 'CHANGES{,.txt}'
59
- notelog: 'NOTES{,.txt}'
66
+ username: ~ # Account username. Deafults to ENV['RUBYFORGE_USERNAME'].
67
+ changelog: 'CHANGES{,.txt}' # File to send as changes.
68
+ notelog: 'NOTES{,.txt}' # File to send as notes.
69
+
60
70
  spec:
61
- specs: [spec/**/*_spec.rb, spec/**/spec_*.rb]
62
- loadpath: #{metadata.loadpath}
63
- require: []
64
- warning: false
65
- command: spec
66
- live: false
71
+ specs: [spec/**/*_spec.rb, spec/**/spec_*.rb] # Pattern for rspec files.
72
+ loadpath: ~ # Defaults to metadata.loadpath.
73
+ require: [] # Any files to pre-require.
74
+ warning: false # Run specs with Ruby's warning turned-on.
75
+ command: spec # The spec command.
76
+ live: false # If true, will not use loadpath setting.
77
+
67
78
  stats:
68
- loadpath: #{metadata.loadpath}
69
- exclude: ['ext']
79
+ loadpath: ~ # Defaults to metadata.loadpath.
80
+ exclude: ['ext'] # File to specifically exclude from stats.
81
+
70
82
  test:
71
- tests: test/**/{test,tc}_*.rb
72
- loadpath: #{metadata.loadpath}
73
- require: []
74
- exclude: ext
75
- command: testrb
76
- live: false
83
+ tests: test/**/{test,tc}_*.rb # Pattern for unit test files.
84
+ loadpath: ~ # Defaults to metadata.loadpath.
85
+ require: [] # Any files to pre-require.
86
+ exclude: ext # ?
87
+ command: testrb # The test command.
88
+ live: false # If true, will not use loadpath setting.
77
89
 
@@ -0,0 +1,8 @@
1
+ class File
2
+
3
+ def self.write(file, str)
4
+ open(file, 'w'){ |f| f << str.to_s }
5
+ end
6
+
7
+ end
8
+
@@ -0,0 +1,108 @@
1
+ require 'net/smtp'
2
+ require 'timeout'
3
+ begin
4
+ require 'openssl'
5
+ rescue LoadError
6
+ end
7
+
8
+ module Net #:nodoc: all
9
+ class SMTP
10
+ module TLS
11
+
12
+ def self.included(base)
13
+ base.extend(ClassMethods)
14
+
15
+ @usetls = base.use_tls?
16
+ end
17
+
18
+ module ClassMethods
19
+ def self.extended(base)
20
+ base.disable_tls
21
+ end
22
+
23
+ def enable_tls()
24
+ @@usetls = true
25
+ end
26
+
27
+ def disable_tls()
28
+ @@usetls = false
29
+ end
30
+
31
+ def use_tls?()
32
+ @@usetls
33
+ end
34
+ end
35
+
36
+ def use_tls?()
37
+ @usetls
38
+ end
39
+
40
+ def enable_tls()
41
+ @usetls = true
42
+ end
43
+
44
+ def disable_tls()
45
+ @usetls = false
46
+ end
47
+
48
+ def use_tls?()
49
+ @usetls
50
+ end
51
+
52
+ private
53
+ def do_start(helodomain, user, secret, authtype)
54
+ raise IOError('SMTP session already started') if @started
55
+ check_auth_args user, secret, authtype if user or secret
56
+
57
+ sock = timeout(@open_timeout) {TCPSocket.open(@address, @port) }
58
+ @socket = Net::InternetMessageIO.new(sock)
59
+ @socket.read_timeout = @read_timeout
60
+ @socket.debug_output = STDERR
61
+
62
+ check_response(critical {recv_response() } )
63
+ do_helo(helodomain)
64
+
65
+ if @@usetls
66
+ raise 'openssl is not installed' unless defined?(OpenSSL)
67
+ ssl = OpenSSL::SSL::SSLSocket.new(sock)
68
+ starttls
69
+ ssl.sync_close = true
70
+ ssl.connect
71
+
72
+ @socket = Net::InternetMessageIO.new(ssl)
73
+ @socket.read_timeout = @read_timeout
74
+ @socket.debug_output = STDERR
75
+ do_helo(helodomain)
76
+ end
77
+
78
+ authenticate user, secret, authtype if user
79
+ @started = true
80
+ ensure
81
+ @socket.close if not @started and @socket and not @socket.closed?
82
+ end
83
+
84
+ def do_helo(helodomain)
85
+ begin
86
+ if @esmtp
87
+ ehlo helodomain
88
+ else
89
+ helo helodomain
90
+ end
91
+ rescue Net::ProtocolError
92
+ if @esmtp
93
+ @esmtp = false
94
+ @error_occured = false
95
+ retry
96
+ end
97
+ raise
98
+ end
99
+ end
100
+
101
+ def starttls
102
+ getok('STARTTLS')
103
+ end
104
+ end
105
+
106
+ end
107
+ end
108
+
@@ -1,6 +1,8 @@
1
1
  require 'facets/dir/multiglob'
2
+ require 'facets/file/write'
2
3
 
3
4
  require 'reap/extensions/array'
4
5
  require 'reap/extensions/hash'
5
6
  require 'reap/extensions/string'
7
+ require 'reap/extensions/net/smtp_tls'
6
8
 
data/lib/reap/metadata.rb CHANGED
@@ -229,7 +229,7 @@ class Project
229
229
 
230
230
  # Status of this release: alpha, beta, RC1, etc.
231
231
  attr_accessor :status do
232
- @stats || 'alpha'
232
+ @status || 'alpha'
233
233
  end
234
234
 
235
235
  # Date of release.
@@ -558,7 +558,8 @@ class Project
558
558
  files -= Dir.multiglob_r('pkg') #package_directory
559
559
  end
560
560
 
561
- files = files.to_a
561
+ # Do not include symlinks.
562
+ files.reject!{ |f| FileTest.symlink?(f) }
562
563
 
563
564
  unless with_dirs
564
565
  files = files.select{ |f| !File.directory?(f) }
@@ -1,6 +1,6 @@
1
1
  module Reap
2
2
 
3
- class Manager
3
+ class Project
4
4
 
5
5
  # Make a release announcement. Generates and can email release
6
6
  # announcements. The announcement if built from the README file
@@ -57,13 +57,13 @@ module Reap
57
57
  version = options.versoin || metadata.version
58
58
 
59
59
  # defaults
60
- subject ||= "%s, v%s released"
60
+ subject ||= "%s, v%s release"
61
61
  account ||= mail_from
62
62
 
63
63
  subject = subject % [title, version]
64
64
 
65
65
  if dryrun?
66
- puts "[DRYRUN] Email '#{subject}'"
66
+ puts "email '#{subject}'"
67
67
  puts "\n#{message}\n\n" if verbose?
68
68
  else
69
69
  puts "\n#{message}\n\n"
@@ -1,6 +1,6 @@
1
1
  module Reap
2
2
 
3
- class Manager
3
+ class Project
4
4
 
5
5
  # Verify syntax of ruby scripts.
6
6
  #
@@ -1,6 +1,6 @@
1
1
  module Reap
2
2
 
3
- class Manager
3
+ class Project
4
4
 
5
5
  # Clean scrap products. All directory paths and or file globs
6
6
  # listed under the clean configuration entry, can be removed via
@@ -1,6 +1,6 @@
1
1
  module Reap
2
2
 
3
- class Manager
3
+ class Project
4
4
 
5
5
  # Remove gem package products.
6
6
 
@@ -26,8 +26,6 @@ module Reap
26
26
  #raise LoadError, "RubyGems is not installed?"
27
27
  end
28
28
 
29
- status "Creating .gem package"
30
-
31
29
  options = configure_options(options, 'package-gem', 'package')
32
30
 
33
31
  prepare(options)
@@ -125,7 +123,7 @@ module Reap
125
123
  # Platform: ruby, mswin32, i586-linux, powerpc-darwin, current
126
124
  spec.platform = 'ruby' # TODO current support!
127
125
 
128
- spec.require_paths = [package.gem_path].flatten.reverse
126
+ spec.require_paths = [package.loadpath].flatten
129
127
 
130
128
  #if package.platform != 'ruby'
131
129
  # spec.require_paths.concat(spec.require_paths.collect{ |d| File.join(d, platform) })
@@ -134,7 +132,9 @@ module Reap
134
132
  spec.bindir = "bin"
135
133
  spec.executables = package.executables
136
134
  spec.requirements = package.requirements
137
- spec.has_rdoc = !(FalseClass===package.document)
135
+
136
+ # TODO: Looks like there is no choice but to auto-rdoc gem install.
137
+ spec.has_rdoc = !(FalseClass===package.document)
138
138
 
139
139
  if package.dependencies
140
140
  package.dependencies.each do |d,v|
@@ -1,10 +1,12 @@
1
1
  module Reap
2
2
 
3
- class Manager
3
+ class Project
4
4
 
5
5
  # Create web index.html from README. (Not yet used)
6
6
 
7
7
  def html
8
+ status_title "Creating HTML documents"
9
+
8
10
  require 'rdoc/markup/simple_markup'
9
11
  require 'rdoc/markup/simple_markup/to_html'
10
12
 
@@ -38,32 +40,31 @@ module Reap
38
40
  end
39
41
  path = File.join(output, name + '.html')
40
42
 
41
- if dryrun?
42
- puts "[DRYRUN] Create #{path}"
43
- else
44
- next unless out_of_date?(path, file)
45
-
46
- title = "#{package.title} #{name.upcase}"
47
-
48
- input = File.read(file)
49
- output = s.convert(input, h)
50
-
51
- File.open(path, 'w') do |f|
52
- f << %{<html>}
53
- f << %{<head>}
54
- f << %{ <title>#{title}<title>}
55
- f << %{ <link rel="stylesheet" TYPE="text/css" HREF="#{style}">} if style
56
- f << %{</head>}
57
- f << %{<body>}
58
- f << output
59
- f << %{</body>}
60
- f << %{</html>}
61
- end
62
- puts "Created #{path}"
63
- end
43
+ next unless out_of_date?(path, file)
44
+
45
+ title = "#{package.title} #{name.upcase}"
46
+
47
+ input = File.read(file)
48
+ output = s.convert(input, h) # FIX
49
+
50
+ text = ''
51
+ text << %{<html>}
52
+ text << %{<head>}
53
+ text << %{ <title>#{title}<title>}
54
+ text << %{ <link rel="stylesheet" TYPE="text/css" HREF="#{style}">} if style
55
+ text << %{</head>}
56
+ text << %{<body>}
57
+ text << output
58
+ text << %{</body>}
59
+ text << %{</html>}
60
+
61
+ write(path, text)
62
+
63
+ puts "Created #{path}"
64
64
  end
65
65
  end
66
66
 
67
67
  end
68
68
 
69
69
  end
70
+
@@ -1,8 +1,8 @@
1
- require 'reap/manager/scm'
1
+ require 'reap/project/scm'
2
2
 
3
3
  module Reap
4
4
 
5
- class Manager
5
+ class Project
6
6
 
7
7
  # Update all logs.
8
8
 
@@ -40,6 +40,8 @@ module Reap
40
40
  labels = options['labels'] || ['TODO', 'FIXME', 'OPTIMIZE']
41
41
  output = options['output'] || 'log'
42
42
 
43
+ loadpath = list_option(loadpath)
44
+
43
45
  labels = labels.split(',') if String === labels
44
46
  labels = [labels].flatten.compact
45
47
 
@@ -62,7 +64,7 @@ module Reap
62
64
  # Gather notes.
63
65
 
64
66
  def log_notes_extract(labels, loadpath=nil)
65
- files = Dir.multiglob_r(*loadpath)
67
+ files = multiglob_r(*loadpath)
66
68
 
67
69
  counts = Hash.new(0)
68
70
  records = []
@@ -148,18 +150,26 @@ module Reap
148
150
  def naming_policy
149
151
  @naming_policy ||= (
150
152
  logconfig = configuration['log'] || {}
151
- logconfig['policy'] || DEFAULT['log']['policy']
153
+ policy = logconfig['policy'] || ['cap', 'ext']
154
+ list_option(policy)
152
155
  )
153
156
  end
154
157
 
155
158
  # TODO: Naming policy needs to be apply to changelog too.
156
159
 
157
160
  def apply_naming_policy(name, ext)
158
- policy = naming_policy
159
- name = name.downcase if /low/i =~ policy
160
- name = name.upcase if /up/i =~ policy
161
- name = name.capitalize if /cap/i =~ policy
162
- name = name + ".#{ext}" if /ext/i =~ policy
161
+ naming_policy.each do |policy|
162
+ case policy
163
+ when /^low/, /^down/
164
+ name = name.downcase
165
+ when /^up/
166
+ name = name.upcase
167
+ when /^cap/
168
+ name = name.capitalize
169
+ when /^ext/
170
+ name = name + ".#{ext}"
171
+ end
172
+ end
163
173
  name
164
174
  end
165
175
 
@@ -1,51 +1,44 @@
1
- #
2
- # The Make tool routes to extension Makefile(s).
3
- # At this point it's designed to support extconf.rb design.
4
- #
5
- # TODO: Perhaps make a true compiler class in the future.
6
- # TODO: win32 cross-compile.
1
+ #require 'reap/project/compile'
7
2
 
8
3
  module Reap
9
4
 
10
- class Manager
5
+ class Project
11
6
 
12
- def extensions
13
- @extensions ||= metadata.extensions || 'ext/**/extconf.rb'
14
- end
7
+ # The Make tool routes to extension Makefile(s).
8
+ # Presently, it is designed to support only extconf.rb design.
9
+ #
10
+ # TODO: win32 cross-compile ?
15
11
 
16
- # Return list of extconf.rb scripts.
12
+ MAKE_COMMAND = ENV['make'] || (RUBY_PLATFORM =~ /(win|w)32$/ ? 'nmake' : 'make')
17
13
 
18
- def extension_scripts
19
- [extensions].flatten.collect do |ext|
20
- Dir.glob(ext)
21
- end.flatten
22
- end
23
14
 
24
- # Return list of directory locations of extconf.rb scripts.
15
+ # Check to see if this project has extensions that need to be compiled.
25
16
 
26
- def extension_directories
27
- glob(extension_scripts).map do |ext|
28
- File.dirname(ext)
29
- end
17
+ def compiles?
18
+ !extensions.empty?
30
19
  end
31
20
 
32
- # Check to see if this project has extensions that need to be compiled.
21
+ # Extension directories. Often this will simply be 'ext'.
22
+ # but sometimes more then one extension is needed and are kept
23
+ # in separate directories. This works by looking for ext/**/*.c
24
+ # files, where ever they are is considered an extension directory.
33
25
 
34
- def compiles?
35
- !extension_directories.empty?
26
+ def extensions
27
+ @extensions ||= Dir['ext/**/*.c'].collect{ |file| File.dirname(file) }.uniq
36
28
  end
37
29
 
30
+
38
31
  # Compile extensions.
39
32
 
40
33
  def make
41
- make_extconf
34
+ make_config
42
35
  make_target
43
36
  end
44
37
 
45
38
  # Compile static.
46
39
 
47
40
  def make_static
48
- make_extconf
41
+ make_config
49
42
  make_target 'static'
50
43
  end
51
44
 
@@ -59,20 +52,21 @@ module Reap
59
52
 
60
53
  def make_distclean
61
54
  make_target 'distclean'
55
+ extensions.each do |directory|
56
+ makefile = File.join(directory, 'Makefile')
57
+ rm(makefile) if File.exist?(makefile)
58
+ end
62
59
  end
63
60
 
64
- # TODO: Clobber should get rid of Makefiles too.
65
-
66
- #alias_method :clobber_make, :make_distclean
61
+ alias_method :clobber_make, :make_distclean
67
62
 
68
63
  # Create Makefile(s).
69
64
 
70
- def make_extconf
71
- extensions.each do |file|
72
- directory = File.dirname(file)
65
+ def make_config
66
+ extensions.each do |directory|
73
67
  next if File.exist?(File.join(directory, 'Makefile'))
74
68
  cd(directory) do
75
- sh "ruby #{File.basename(file)}"
69
+ sh "ruby extconf.rb"
76
70
  end
77
71
  end
78
72
  end
@@ -80,14 +74,13 @@ module Reap
80
74
  private
81
75
 
82
76
  def make_target(target='')
83
- extension_directories.each do |directory|
77
+ extensions.each do |directory|
84
78
  cd(directory) do
85
- sh "make #{target}"
79
+ sh "#{MAKE_COMMAND} #{target}"
86
80
  end
87
81
  end
88
82
  end
89
83
 
90
-
91
84
  # Eric Hodel said NOT to copy the compiled libs.
92
85
  #
93
86
  #task :copy_files do