Skip to content

Commit 721af7d

Browse files
committed
Change Gemfile, Rakefile to allow multiple gems
1 parent 7fe63f0 commit 721af7d

File tree

2 files changed

+34
-3
lines changed

2 files changed

+34
-3
lines changed

Gemfile

+9-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,10 @@
11
source 'https://rubygems.org'
2-
gemspec
2+
3+
#main gemspec
4+
gemspec :name => 'nmatrix'
5+
6+
#plugin gemspecs
7+
Dir['nmatrix-*.gemspec'].each do |gemspec_file|
8+
plugin_name = gemspec_file.match(/(nmatrix-.*)\.gemspec/)[1]
9+
gemspec(:name => plugin_name, :development_group => :plugin)
10+
end

Rakefile

+25-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,26 @@ require 'rubygems'
44
require 'rubygems/package_task'
55
require 'bundler'
66

7-
Bundler::GemHelper.install_tasks
7+
#install_tasks adds build, install, and release tasks, but doesn't work with multiple gemspecs
8+
#Bundler::GemHelper.install_tasks
9+
10+
desc 'Build gem into the pkg directory'
11+
task :build do
12+
FileUtils.rm_rf('pkg')
13+
Dir['*.gemspec'].each do |gemspec|
14+
system "gem build -V #{gemspec}"
15+
end
16+
FileUtils.mkdir_p('pkg')
17+
FileUtils.mv(Dir['*.gem'], 'pkg')
18+
end
19+
20+
#desc 'Tags version, pushes to remote, and pushes gem'
21+
#task :release => :build do
22+
# sh 'git', 'tag', '-m', changelog, "v#{Qu::VERSION}"
23+
# sh "git push origin master"
24+
# sh "git push origin v#{Qu::VERSION}"
25+
# sh "ls pkg/*.gem | xargs -n 1 gem push"
26+
#end
827

928
begin
1029
Bundler.setup(:default, :development)
@@ -31,9 +50,13 @@ Rake::ExtensionTask.new do |ext|
3150
end
3251

3352
gemspec = eval(IO.read("nmatrix.gemspec"))
34-
3553
Gem::PackageTask.new(gemspec).define
3654

55+
Dir['nmatrix-*.gemspec'].each do |gemspec_file|
56+
gemspec = eval(IO.read(gemspec_file))
57+
Gem::PackageTask.new(gemspec).define
58+
end
59+
3760
require 'rspec/core/rake_task'
3861
require 'rspec/core'
3962
require 'rspec/core/rake_task'

0 commit comments

Comments
 (0)