PageRenderTime 28ms CodeModel.GetById 14ms app.highlight 12ms RepoModel.GetById 0ms app.codeStats 0ms

/plugins/thingfish-filestore-filesystem/Rakefile

https://bitbucket.org/laika/thingfish
Rakefile | 104 lines | 70 code | 29 blank | 5 comment | 2 complexity | 072836ca1e31c8677002e0561a44b86a MD5 | raw file
Possible License(s): BSD-3-Clause
  1#!/usr/bin/env rake
  2
  3require 'rake'
  4require 'rake/clean'
  5require 'rake/gempackagetask'
  6require 'rake/rdoctask'
  7require 'spec/rake/spectask'
  8require 'pathname'
  9require 'fileutils'
 10
 11
 12BASEDIR			= Pathname.new( __FILE__ ).dirname.expand_path
 13LIBDIR		  	= BASEDIR + 'lib'
 14TF_DIR			= BASEDIR.parent.parent
 15TF_LIBDIR		= TF_DIR + 'lib'
 16
 17PKG_NAME	  	= "thingfish-filestore-filesystem"
 18PKG_VERSION	  	= "0.3.0"
 19PKG_FILE_NAME 	= PKG_NAME + '-' + PKG_VERSION
 20
 21RELEASE_NAME  	= "REL #{PKG_VERSION}"
 22
 23TEXT_FILES	  	= %w( README LICENSE )
 24SPEC_FILES	  	= Dir.glob('spec/*_spec.rb')
 25LIB_FILES	  	= Dir.glob('lib/**/*.rb').delete_if {|item| item =~ /\.svn/ }
 26
 27RELEASE_FILES = TEXT_FILES + LIB_FILES + SPEC_FILES
 28
 29
 30desc "Build package if tests pass"
 31task :default => [:spec, :package]
 32
 33### Task: spec
 34Spec::Rake::SpecTask.new(:spec) do |task|
 35	task.libs += [TF_LIBDIR.to_s]
 36	task.spec_files = SPEC_FILES
 37	task.spec_opts = ['-c', '-f','s']
 38end
 39
 40
 41### Task: rdoc
 42Rake::RDocTask.new do |rdoc|
 43	rdoc.rdoc_dir = 'docs/html'
 44	rdoc.title    = "ThingFish-FilesystemFileStore - Filesystem-based filestore plugin"
 45	rdoc.options += ['-w', '4', '-SHN', '-i', BASEDIR.to_s]
 46
 47	rdoc.rdoc_files.include TEXT_FILES
 48	rdoc.rdoc_files.include LIB_FILES
 49end
 50
 51
 52### Task: clean
 53desc "Clean pkg, coverage, and rdoc; remove .bak files"
 54task :clean => [ :clobber_rdoc, :clobber_package, :clobber_coverage ] do
 55	files = FileList['**/*.bak']
 56	files.clear_exclude
 57	File.rm( files ) unless files.empty?
 58end
 59
 60
 61### Task: gem
 62gemspec = Gem::Specification.new do |gem|
 63	gem.name    	= PKG_NAME
 64	gem.version 	= PKG_VERSION
 65
 66	gem.summary     = "Filesystem-based ThingFish filestore plugin"
 67	gem.description = "This FileStore stores resources on disk in a hierarchy of " +
 68		"hashed directories. It uses NFS-safe locking for writes, and should be " +
 69		"threadsafe."
 70
 71	gem.authors  	= "Michael Granger and Mahlon E. Smith"
 72	gem.email  		= "ged@FaerieMUD.org, mahlon@martini.nu"
 73	gem.homepage 	= "http://opensource.laika.com/wiki/ThingFish"
 74
 75	gem.rubyforge_project = 'laika'
 76
 77	gem.has_rdoc 	= true
 78
 79	gem.files      	= RELEASE_FILES
 80	gem.test_files 	= SPEC_FILES
 81
 82  	gem.files += Dir.glob( "resources/**/*" )
 83
 84  	gem.add_dependency( 'thingfish', '>= 0.3.0' )
 85  	gem.add_dependency( 'lockfile', '>= 1.4.1' )
 86end
 87
 88Rake::GemPackageTask.new( gemspec ) do |task|
 89	task.gem_spec = gemspec
 90	task.need_tar = true
 91	task.need_zip = true
 92end
 93
 94
 95task :install => [:test, :package] do
 96	installer = Gem::Installer.new( %{pkg/#{PKG_FILE_NAME}.gem} )
 97	intaller.install
 98end
 99
100task :uninstall => [:clean] do
101	uninstaller = Gem::Uninstaller.new( name )
102	uninstaller.uninstall
103end
104