summaryrefslogtreecommitdiff
path: root/Rakefile
diff options
context:
space:
mode:
authormurphy <murphy@rubychan.de>2006-04-16 00:38:38 +0000
committermurphy <murphy@rubychan.de>2006-04-16 00:38:38 +0000
commitee808b400543d924286eebaee8ed1ad8a4e28ced (patch)
tree3aa0bf9eaa9aa328979d06c49a2f6bb03c7af5af /Rakefile
parent915a4ade8840f076b2ad2681944ab845ef038f0c (diff)
downloadcoderay-ee808b400543d924286eebaee8ed1ad8a4e28ced.tar.gz
Rake tasks completely redone.
rdoctask2.rb deleted; issues were fixed as of Rake 0.7.0.
Diffstat (limited to 'Rakefile')
-rw-r--r--Rakefile270
1 files changed, 5 insertions, 265 deletions
diff --git a/Rakefile b/Rakefile
index 8799307..753508e 100644
--- a/Rakefile
+++ b/Rakefile
@@ -1,18 +1,7 @@
-# excuse me, this is my first Rakefile :( [m]
-require 'rake'
-require 'rake_helpers/rdoctask2'
-require 'rake/gempackagetask.rb'
+require 'rake_helpers/ftp.rb'
ROOT = '.'
-LIB_ROOT = File.join(ROOT, 'lib')
-
-task :default => :make
-
-#task :doc => [:deldoc, :make_doc]
-#task :minidoc => [:deldoc, :make_minidoc]
-#task :deldoc do
-# rm_r 'doc' if File.directory? 'doc'
-#end
+LIB_ROOT = File.join ROOT, 'lib'
EXTRA_FILES = %w(README FOLDERS)
def EXTRA_FILES.in folder
@@ -21,257 +10,8 @@ def EXTRA_FILES.in folder
end
end
-def set_rdoc_info rd, small = false
-# rd.rdoc_dir = 'doc'
- rd.main = File.join(ROOT, 'README')
- rd.title = "CodeRay Documentation"
- rd.options << '--line-numbers' << '--inline-source' << '--tab-width' << '2'
- rd.options << '--fmt' << 'html_coderay'
- rd.options << '--all'
- rd.template = 'rake_helpers/coderay_rdoc_template.rb'
- rd.rdoc_files.add *EXTRA_FILES.in(ROOT)
- rd.rdoc_files.add *Dir[File.join(LIB_ROOT, "#{'**/' unless small}*.rb")]
-end
-
-desc 'Generate documentation for CodeRay'
-Rake::RDocTask.new :rdoc do |rd|
- set_rdoc_info rd
-end
-
-desc 'Generate test documentation for CodeRay'
-Rake::RDocTask.new :rdoc_small do |rd|
- set_rdoc_info rd, true
-end
-
-desc 'Report code statistics (LOC) from the application'
-task :stats => :copy_files do
- require 'rake_helpers/code_statistics'
- CodeStatistics.new(
- ['Main', 'lib'],
- ['CodeRay', 'lib/coderay/'],
- [' Scanners', 'lib/coderay/scanners'],
- [' Encoders', 'lib/coderay/encoders'],
- [' Helpers', 'lib/coderay/helpers'],
- ['Test', 'test/**', /\/\w+.rb$/],
- ['Demo Tests', 'demo/**']
- ).print
-end
-
-desc 'Test CodeRay Demos'
-task :test_demos do
- system 'ruby -wd ./demo/suite.rb'
-end
-
-desc 'Test CodeRay'
-task :test do
- system 'ruby -wd ./test/suite.rb'
-end
-
-desc 'Test CodeRay Demos with Fox'
-task :testf_demos do
- system 'ruby -w ./demo/suite.rb -f'
-end
-
-desc 'Test CodeRay with Fox'
-task :testf do
- system 'ruby -w ./test/suite.rb -f'
-end
-
-desc 'Test CodeRay with debugging'
-task :debug do
- system 'ruby -w -d ./test/suite.rb'
-end
-
-desc 'Do a benchmark'
-task :bench do
- system 'ruby -wIlib bench\bench.rb ruby html 0'
-end
-
-def gemspec
- Gem::Specification.new do |s|
- # Basic Information
- s.name = s.rubyforge_project = 'coderay'
- s.version = '0'
-
- s.platform = Gem::Platform::RUBY
- s.requirements = ['strscan']
- s.date = Time.now.strftime '%Y-%m-%d'
- s.has_rdoc = true
- s.rdoc_options = '-SNw2', '-mREADME', '-a', '-t CodeRay Documentation'
- s.extra_rdoc_files = EXTRA_FILES.in('./')
-
- # Description
- s.summary = <<-EOF
- CodeRay is a fast syntax highlighter engine for many languages.
- EOF
- s.description = <<-EOF
- CodeRay is a Ruby library for syntax highlighting.
- I try to make CodeRay easy to use and intuitive, but at the same time
- fully featured, complete, fast and efficient.
-
- Usage is simple:
- require 'coderay'
- code = 'some %q(weird (Ruby) can\'t shock) me!'
- puts CodeRay.scan(code, :ruby).html
- EOF
-
- # Files
- s.require_path = 'lib'
- s.autorequire = 'coderay'
-
- s.files = nil # defined later
-
- # Credits
- s.author = 'murphy'
- s.email = 'murphy@cYcnus.de'
- s.homepage = 'http://rd.cycnus.de/coderay'
- end
-end
-
-gemtask = Rake::GemPackageTask.new(gemspec) do |pkg|
- pkg.need_zip = true
- pkg.need_tar = true
-end
-
-$: << './lib'
-require 'coderay'
-$version = CodeRay::Version
-
-desc 'Create the gem again'
-task :make => [:build, :make_gem]
-
-BUILD_FILE = 'build'
-task :build do
- $version.sub!(/\.(\d+)\./) { minor = $1; ".#{minor.to_i - 1}." }
- $version << '.' << (`svn info`[/Revision: (\d+)/,1])
-end
-
-task :make_gem => [:copy_files, :make_gemspec, :gem, :copy_gem]
-
-desc 'Copy the gem files'
-task :copy_files do
- rm_r 'pkg' if File.exist? 'pkg'
-end
-
-task :make_gemspec do
- candidates = Dir['./lib/**/*.rb'] +
- Dir['./demo/*.rb'] +
-# Dir['./bin/*'] +
-# Dir['./demo/bench/*'] +
-# Dir['./test/*'] +
- %w( ./README ./LICENSE)
- s = gemtask.gem_spec
- s.files = candidates #.delete_if { |item| item[/(?:CVS|rdoc)|~$/] }
- gemtask.version = s.version = $version
-end
-
-GEMDIR = 'gem_server/gems'
-task :copy_gem => :build do
- $gemfile = "coderay-#$version.gem"
- Dir[GEMDIR + '/*.gem'].each { |g| rm g }
- cp "pkg/#$gemfile", GEMDIR
- system 'ruby -S generate_yaml_index.rb -d gem_server'
-end
-
-def g msg
- $stderr.print msg
-end
-def gn msg = ''
- $stderr.puts msg
-end
-def gd
- gn 'done.'
-end
-
-require 'net/ftp'
-require 'yaml'
-FTP_YAML = 'ftp.yaml'
-$username = File.exist?(FTP_YAML) ? YAML.load_file(FTP_YAML)[:username] : 'anonymous'
-
-FTP_DOMAIN = 'cycnus.de'
-FTP_CODERAY_DIR = 'public_html/raindark/coderay'
-
-def cYcnus_ftp
- Net::FTP.open(FTP_DOMAIN) do |ftp|
- g 'ftp login, password needed: '
- ftp.login $username, $stdin.gets
- gn 'logged in.'
- yield ftp
- end
-end
-
-def uploader_for ftp
- proc do |l, *r|
- r = r.first || l
- raise 'File %s not found!' % l unless File.exist? l
- if l == r
- g 'Uploading %s...' % [l]
- else
- g 'Uploading %s to %s...' % [l, r]
- end
- ftp.putbinaryfile l, r
- gd
- end
-end
-
-desc 'Upload gemfile to ' + FTP_DOMAIN
-task :up_gem => [:make, :copy_gem] do
- gn 'Uploading gem:'
- Dir.chdir 'gem_server' do
- cYcnus_ftp do |ftp|
- uploader = uploader_for ftp
- ftp.chdir FTP_CODERAY_DIR
- %w(yaml yaml.Z).each &uploader
- Dir.chdir 'gems' do
- ftp.chdir 'gems'
- uploader.call $gemfile
- end
- end
- end
- gn 'Gem successfully uploaded.'
-end
-
-desc 'Upload example to ' + FTP_DOMAIN
-task :up_example do
- gn 'Highlighting self...'
- system 'ruby -wIlib ../hidden/highlight.rb -1 -L -I lib lib/coderay/**/'
- gd
- gn 'Uploading example:'
- cYcnus_ftp do |ftp|
- ftp.chdir FTP_CODERAY_DIR
- uploader = proc do |l, r|
- g 'Uploading %s to %s...' % [l, r]
- ftp.putbinaryfile l, r
- gd
- end
- uploader.call 'highlighted/all_in_one.html', 'example.html'
- end
- gn 'Example uploaded.'
-end
-
-desc 'Upload rdoc to ' + FTP_DOMAIN
-task :up_doc => :rdoc do
- gn 'Uploading documentation:'
- Dir.chdir 'rdoc' do
- cYcnus_ftp do |ftp|
- uploader = uploader_for ftp
- ftp.chdir FTP_CODERAY_DIR
- ftp.chdir 'doc'
- Dir['**/*.*'].each &uploader
- end
- end
- gn 'Documentation uploaded.'
+for task_file in Dir['rake_tasks/*.rake']
+ load task_file
end
-RUBYFORGE_TRUNK_DIR = 'L:/rubyforge/trunk/coderay/trunk'
-desc 'Export trunk to Rubyforge working copy via SVN'
-task :export do
- system 'svn st'
- puts 'Exporting changelog.'
- system 'svn log > ../changelog.txt'
- system "svn export #{`svn info`[/URL: (.*)/,1]}/ #{RUBYFORGE_TRUNK_DIR} --force"
- cp '../changelog.txt', "#{RUBYFORGE_TRUNK_DIR}/.."
- Dir.chdir RUBYFORGE_TRUNK_DIR do
- system "svn st"
- end
-end
+task :default => 'gem:make'