Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

157 lines (134 sloc) 4.765 kb
## -------------------------------------------------------------------
##
## Copyright (c) 2008 The Hive http://www.thehive.com/
##
## Permission is hereby granted, free of charge, to any person obtaining a copy
## of this software and associated documentation files (the "Software"), to deal
## in the Software without restriction, including without limitation the rights
## to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
## copies of the Software, and to permit persons to whom the Software is
## furnished to do so, subject to the following conditions:
##
## The above copyright notice and this permission notice shall be included in
## all copies or substantial portions of the Software.
##
## THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
## IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
## FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
## AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
## LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
## OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
## THE SOFTWARE.
##
## -------------------------------------------------------------------
require 'yaml'
require 'rake/clean'
require 'rake/rdoctask'
require 'spec/rake/spectask'
require 'jeweler'
require 'yard'
require 'rbconfig'
include Config
EXT_DIR = 'ext/patron'
SESSION_SO = "#{EXT_DIR}/session_ext.#{CONFIG['DLEXT']}"
SESSION_SRC = "#{EXT_DIR}/session_ext.c"
CLEAN.include FileList["#{EXT_DIR}/*"].exclude(/^.*\.(rb|c)$/)
CLOBBER.include %w( doc coverage pkg )
module Git
class Lib
def tag(tag)
# Force an annotated tag
command('tag', [tag, '-a', '-m', tag])
end
end
end
Jeweler::Tasks.new do |s|
s.name = 'patron'
s.platform = Gem::Platform::RUBY
s.author = 'Phillip Toland'
s.email = 'phil.toland@gmail.com'
s.homepage = 'http://github.com/toland/Patron'
s.rubyforge_project = 'patron'
s.summary = 'Patron HTTP client'
s.description = 'Ruby HTTP client library based on libcurl'
s.extensions << 'ext/patron/extconf.rb'
s.require_paths << 'ext'
s.files = FileList['README.txt',
'LICENSE',
'Rakefile',
'lib/**/*',
'spec/*',
'ext/patron/*.{rb,c}']
# rdoc
s.has_rdoc = true
s.extra_rdoc_files = ['README.txt']
s.rdoc_options = ['--quiet',
'--title', "Patron documentation",
'--opname', 'index.html',
'--line-numbers',
'--main', 'README.txt',
'--inline-source']
end
file SESSION_SO => SESSION_SRC do
cd EXT_DIR do
ruby 'extconf.rb'
sh 'make'
end
end
desc "Compile extension"
task :compile => SESSION_SO
desc "Start an IRB shell"
task :shell => :compile do
sh 'irb -I./lib -I./ext -r patron'
end
Rake::RDocTask.new do |rdoc|
rdoc.rdoc_dir = 'doc'
rdoc.title = "Patron documentation"
rdoc.main = 'README.txt'
rdoc.options << '--line-numbers' << '--inline-source'
rdoc.rdoc_files.include('README.txt')
rdoc.rdoc_files.include('lib/**/*.rb')
end
YARD::Rake::YardocTask.new do |t|
t.files = ['lib/**/*.rb']
t.options = ['--readme', 'README.txt']
end
desc "Run specs"
Spec::Rake::SpecTask.new(:spec) do |t|
t.spec_opts = ['--options', "spec/spec.opts"]
t.spec_files = FileList['spec/**/*_spec.rb']
end
task :spec => [:compile]
desc "Run specs with RCov"
Spec::Rake::SpecTask.new('spec:rcov') do |t|
t.spec_files = FileList['spec/**/*_spec.rb']
t.rcov = true
t.rcov_opts << '--sort coverage'
t.rcov_opts << '--comments'
t.rcov_opts << '--exclude spec'
t.rcov_opts << '--exclude lib/magneto.rb'
t.rcov_opts << '--exclude /Library/Ruby/Gems'
end
# Rubyforge tasks
begin
require 'rake/contrib/sshpublisher'
namespace :rubyforge do
desc "Release gem and RDoc documentation to RubyForge"
task :release => ["rubyforge:release:gem", "rubyforge:release:docs"]
namespace :release do
desc "Publish RDoc to RubyForge."
task :docs => [:rdoc] do
config = YAML.load(
File.read(File.expand_path('~/.rubyforge/user-config.yml'))
)
host = "#{config['username']}@rubyforge.org"
remote_dir = "/var/www/gforge-projects/patron/"
local_dir = 'doc'
Rake::SshDirPublisher.new(host, remote_dir, local_dir).upload
end
end
end
rescue LoadError
puts "Rake SshDirPublisher is unavailable or your rubyforge environment is not configured."
end
task :default => :spec
Jump to Line
Something went wrong with that request. Please try again.