lib/rake_ext/project.rb in ruby_ext-0.4.25 vs lib/rake_ext/project.rb in ruby_ext-0.5.1
- old
+ new
@@ -2,28 +2,28 @@
require 'yaml'
require 'psych'
YAML::ENGINE.yamler = 'syck'
-#
+#
# Helper for releasing gem, add following code to Your Rakefile:
-#
+#
# project(
# name: "fake_gem",
# gem: true,
# summary: "Makes any directory looks like Ruby Gem",
-#
+#
# bin: 'bin',
# executables: ['fake_gem'],
# dirs: %w(bin),
-#
+#
# author: "Alexey Petrushin",
# homepage: "http://github.com/alexeypetrushin/fake_gem"
# )
-#
+#
# use "rake gem" to release gem
-#
+#
require 'rubygems/specification'
class GemHelper
class << self
@@ -33,11 +33,11 @@
v[-1] = v[-1] + 1
return v.join('.')
end
return '0.0.1'
end
-
+
def parse_project_gemfile
required_gems, required_fake_gems = [], []
gem_file = "#{project_dir}/lib/#{project[:name]}/gems.rb"
if File.exist? gem_file
@@ -52,11 +52,11 @@
stub.instance_eval code, __FILE__, __LINE__
end
return required_gems, required_fake_gems
end
-
+
def gemspec
Gem::Specification.new do |s|
gems, fake_gems = parse_project_gemfile
gems = gems + fake_gems
@@ -71,19 +71,19 @@
s.name = name
s.platform = options.delete(:platform) || Gem::Platform::RUBY
s.has_rdoc = options.delete(:has_rdoc) == nil ? false : true
s.require_path = options.delete(:lib) || "lib"
s.files = options.delete(:files) || (
- %w{Rakefile readme.md} +
- Dir.glob("{lib,spec}/**/*") +
+ %w{Rakefile readme.md} +
+ Dir.glob("{lib,spec}/**/*") +
((options[:dirs] && Array(options.delete(:dirs)).collect{|d| Dir["#{d}/**/*"]}) || [])
)
s.bindir = options.delete(:bin) if options.include? :bin
s.version = options.delete(:version) || GemHelper.next_version(name)
- options.each{|k, v| s.send "#{k}=", v}
+ options.each{|k, v| s.send "#{k}=", v}
end
end
end
end
@@ -97,37 +97,37 @@
puts ' building'
%x(gem build #{gemspec_file})
puts ' pushing'
- gem_file = Dir.glob("#{gemspec.name}*.gem").first
+ gem_file = Dir.glob("#{gemspec.name}*.gem").first
%x"gem push #{gem_file}"
puts ' cleaning'
[gemspec_file, gem_file].each{|f| File.delete f if File.exist? f}
puts " #{gemspec.name} #{gemspec.version} successfully released"
end
-
+
desc "Install gem required by project"
task :install do
- gems, fake_gems = parse_project_gemfile
+ gems, fake_gems = GemHelper.parse_project_gemfile
gems.each do |name, version|
puts "Installing gem #{name} #{version}"
%x(gem install #{name}#{" -v #{version}" if version}) # --ignore-dependencies)
end
- end
-
+ end
+
desc "List all gems required by project"
task :list do
puts "Gems required for #{project[:official_name]}:"
- gems, fake_gems = parse_project_gemfile
+ gems, fake_gems = GemHelper.parse_project_gemfile
puts(gems + fake_gems)
end
-
+
desc "Install all gem required by project (including fake gems)"
task :install_all do
- gems, fake_gems = parse_project_gemfile
+ gems, fake_gems = GemHelper.parse_project_gemfile
(gems + fake_gems).each do |name, version|
puts "Installing gem #{name} #{version}"
%x(gem install #{name} #{"-v #{version}" if version})
end
end
\ No newline at end of file