root/lang/ruby/net-irc/trunk/Rakefile

Revision 34819, 3.2 kB (checked in by cho45, 3 years ago)

Release 0.0.8

Line 
1require 'rubygems'
2require "shipit"
3require 'rake'
4require 'rake/clean'
5require 'rake/packagetask'
6require 'rake/gempackagetask'
7require 'rake/rdoctask'
8require 'rake/contrib/rubyforgepublisher'
9require 'rake/contrib/sshpublisher'
10require 'fileutils'
11require 'spec/rake/spectask'
12
13include FileUtils
14
15$LOAD_PATH.unshift "lib"
16require "net/irc"
17
18NAME              = "net-irc"
19AUTHOR            = "cho45"
20EMAIL             = "cho45@lowreal.net"
21DESCRIPTION       = "library for implementing IRC server and client"
22RUBYFORGE_PROJECT = "lowreal"
23HOMEPATH          = "http://#{RUBYFORGE_PROJECT}.rubyforge.org"
24BIN_FILES         = %w(  )
25VERS              = Net::IRC::VERSION.dup
26
27REV = File.read(".svn/entries")[/committed-rev="(d+)"/, 1] rescue nil
28CLEAN.include ['**/.*.sw?', '*.gem', '.config']
29RDOC_OPTS = [
30        '--title', "#{NAME} documentation",
31        "--charset", "utf-8",
32        "--opname", "index.html",
33        "--line-numbers",
34        "--main", "README",
35        "--inline-source",
36]
37
38task :default => [:spec]
39task :package => [:clean]
40
41Spec::Rake::SpecTask.new do |t|
42        t.spec_opts = ['--options', "spec/spec.opts"]
43        t.spec_files = FileList['spec/*_spec.rb']
44        #t.rcov = true
45end
46
47spec = Gem::Specification.new do |s|
48        s.name              = NAME
49        s.version           = VERS
50        s.platform          = Gem::Platform::RUBY
51        s.has_rdoc          = true
52        s.extra_rdoc_files  = ["README", "ChangeLog"]
53        s.rdoc_options     += RDOC_OPTS + ['--exclude', '^(examples|extras)/']
54        s.summary           = DESCRIPTION
55        s.description       = DESCRIPTION
56        s.author            = AUTHOR
57        s.email             = EMAIL
58        s.homepage          = HOMEPATH
59        s.executables       = BIN_FILES
60        s.rubyforge_project = RUBYFORGE_PROJECT
61        s.bindir            = "bin"
62        s.require_path      = "lib"
63        s.autorequire       = ""
64
65        #s.add_dependency('activesupport', '>=1.3.1')
66        #s.required_ruby_version = '>= 1.8.2'
67
68        s.files = %w(README ChangeLog Rakefile) +
69                Dir.glob("{bin,doc,spec,test,lib,templates,generator,extras,website,script}/**/*") +
70                Dir.glob("ext/**/*.{h,c,rb}") +
71                Dir.glob("examples/**/*.rb") +
72                Dir.glob("tools/*.rb")
73
74        s.extensions = FileList["ext/**/extconf.rb"].to_a
75end
76
77Rake::GemPackageTask.new(spec) do |p|
78        p.need_tar = true
79        p.gem_spec = spec
80end
81
82task :install do
83        name = "#{NAME}-#{VERS}.gem"
84        sh %{rake package}
85        sh %{sudo gem install pkg/#{name}}
86end
87
88task :uninstall => [:clean] do
89        sh %{sudo gem uninstall #{NAME}}
90end
91
92
93Rake::RDocTask.new do |rdoc|
94        rdoc.rdoc_dir = 'html'
95        rdoc.options += RDOC_OPTS
96        rdoc.template = "resh"
97        #rdoc.template = "#{ENV['template']}.rb" if ENV['template']
98        if ENV['DOC_FILES']
99                rdoc.rdoc_files.include(ENV['DOC_FILES'].split(/,\s*/))
100        else
101                rdoc.rdoc_files.include('README', 'ChangeLog')
102                rdoc.rdoc_files.include('lib/**/*.rb')
103                rdoc.rdoc_files.include('ext/**/*.c')
104        end
105end
106
107desc "Publish to RubyForge"
108task :rubyforge => [:rdoc, :package] do
109        require 'rubyforge'
110        @local_dir = "html"
111        @host = "cho45@rubyforge.org"
112        @remote_dir = "/var/www/gforge-projects/#{RUBYFORGE_PROJECT}/#{NAME}"
113        sh %{rsync -r --delete --verbose #{@local_dir}/ #{@host}:#{@remote_dir}}
114end
115
116Rake::ShipitTask.new do |s|
117        s.Step.new {
118                system("svn", "up")
119        }.and {}
120        s.ChangeVersion "lib/net/irc.rb", "VERSION"
121        s.Commit
122        s.Task :clean, :package
123        s.RubyForge
124        s.Tag
125        s.Twitter
126        s.Task :rubyforge
127end
Note: See TracBrowser for help on using the browser.