Rakefile in mongoid-grid_fs-2.0.0 vs Rakefile in mongoid-grid_fs-2.1.0
- old
+ new
@@ -1,481 +1,11 @@
-task :license do
- open('LICENSE', 'w'){|fd| fd.puts "Ruby"}
-end
+require "bundler/gem_tasks"
+require "rake/testtask"
-task :default do
- puts((Rake::Task.tasks.map{|task| task.name.gsub(/::/,':')} - ['default']).sort)
+Rake::TestTask.new(:test) do |t|
+ t.libs << "lib"
+ t.libs << "test"
+ t.pattern = "test/**/*_test.rb"
+ t.verbose = false
end
-task :test do
- run_tests!
-end
-
-namespace :test do
- task(:unit){ run_tests!(:unit) }
- task(:functional){ run_tests!(:functional) }
- task(:integration){ run_tests!(:integration) }
-end
-
-def run_tests!(which = nil)
- which ||= '**'
- test_dir = File.join(This.dir, "test")
- test_glob ||= File.join(test_dir, "#{ which }/**_test.rb")
- test_rbs = Dir.glob(test_glob).sort
-
- div = ('=' * 119)
- line = ('-' * 119)
-
- test_rbs.each_with_index do |test_rb, index|
- testno = index + 1
- #command = "#{ This.ruby } -w -I ./lib -I ./test/lib #{ test_rb }"
- command = "#{ This.ruby } -I ./lib -I ./test/lib #{ test_rb }"
-
- puts
- say(div, :color => :cyan, :bold => true)
- say("@#{ testno } => ", :bold => true, :method => :print)
- say(command, :color => :cyan, :bold => true)
- say(line, :color => :cyan, :bold => true)
-
- system(command)
-
- say(line, :color => :cyan, :bold => true)
-
- status = $?.exitstatus
-
- if status.zero?
- say("@#{ testno } <= ", :bold => true, :color => :white, :method => :print)
- say("SUCCESS", :color => :green, :bold => true)
- else
- say("@#{ testno } <= ", :bold => true, :color => :white, :method => :print)
- say("FAILURE", :color => :red, :bold => true)
- end
- say(line, :color => :cyan, :bold => true)
-
- exit(status) unless status.zero?
- end
-end
-
-
-task :gemspec do
- ignore_extensions = ['git', 'svn', 'tmp', /sw./, 'bak', 'gem']
- ignore_directories = ['pkg']
- ignore_files = ['test/log']
-
- shiteless =
- lambda do |list|
- list.delete_if do |entry|
- next unless test(?e, entry)
- extension = File.basename(entry).split(%r/[.]/).last
- ignore_extensions.any?{|ext| ext === extension}
- end
- list.delete_if do |entry|
- next unless test(?d, entry)
- dirname = File.expand_path(entry)
- ignore_directories.any?{|dir| File.expand_path(dir) == dirname}
- end
- list.delete_if do |entry|
- next unless test(?f, entry)
- filename = File.expand_path(entry)
- ignore_files.any?{|file| File.expand_path(file) == filename}
- end
- end
-
- lib = This.lib
- object = This.object
- version = This.version
- files = shiteless[Dir::glob("**/**")]
- executables = shiteless[Dir::glob("bin/*")].map{|exe| File.basename(exe)}
- #has_rdoc = true #File.exist?('doc')
- test_files = "test/#{ lib }.rb" if File.file?("test/#{ lib }.rb")
- summary = object.respond_to?(:summary) ? object.summary : "summary: #{ lib } kicks the ass"
- description = object.respond_to?(:description) ? object.description : "description: #{ lib } kicks the ass"
- license = object.respond_to?(:license) ? object.license : "Ruby"
-
- if This.extensions.nil?
- This.extensions = []
- extensions = This.extensions
- %w( Makefile configure extconf.rb ).each do |ext|
- extensions << ext if File.exists?(ext)
- end
- end
- extensions = [extensions].flatten.compact
-
- if This.dependencies.nil?
- dependencies = []
- else
- case This.dependencies
- when Hash
- dependencies = This.dependencies.values
- when Array
- dependencies = This.dependencies
- end
- end
-
- if license.nil? && test(?s, 'LICENSE')
- license = IO.binread('LICENSE')
- end
-
- template =
- if test(?e, 'gemspec.erb')
- Template{ IO.read('gemspec.erb') }
- else
- Template {
- <<-__
- ## <%= lib %>.gemspec
- #
-
- Gem::Specification::new do |spec|
- spec.name = <%= lib.inspect %>
- spec.version = <%= version.inspect %>
- spec.platform = Gem::Platform::RUBY
- spec.summary = <%= lib.inspect %>
- spec.description = <%= description.inspect %>
- spec.license = <%= license.inspect %>
-
- spec.files =\n<%= files.sort.pretty_inspect %>
- spec.executables = <%= executables.inspect %>
-
- spec.require_path = "lib"
-
- spec.test_files = <%= test_files.inspect %>
-
- <% dependencies.each do |lib_version| %>
- spec.add_dependency(*<%= Array(lib_version).flatten.inspect %>)
- <% end %>
-
- spec.extensions.push(*<%= extensions.inspect %>)
-
- spec.rubyforge_project = <%= This.rubyforge_project.inspect %>
- spec.author = <%= This.author.inspect %>
- spec.email = <%= This.email.inspect %>
- spec.homepage = <%= This.homepage.inspect %>
- end
- __
- }
- end
-
- Fu.mkdir_p(This.pkgdir)
- gemspec = "#{ lib }.gemspec"
- open(gemspec, "w"){|fd| fd.puts(template)}
- This.gemspec = gemspec
-end
-
-task :gem => [:clean, :gemspec] do
- Fu.mkdir_p(This.pkgdir)
- before = Dir['*.gem']
- cmd = "gem build #{ This.gemspec }"
- `#{ cmd }`
- after = Dir['*.gem']
- gem = ((after - before).first || after.first) or abort('no gem!')
- Fu.mv(gem, This.pkgdir)
- This.gem = File.join(This.pkgdir, File.basename(gem))
-end
-
-task :readme do
- samples = ''
- prompt = '~ > '
- lib = This.lib
- version = This.version
-
- Dir['sample*/*'].sort.each do |sample|
- samples << "\n" << " <========< #{ sample } >========>" << "\n\n"
-
- cmd = "cat #{ sample }"
- samples << Util.indent(prompt + cmd, 2) << "\n\n"
- samples << Util.indent(`#{ cmd }`, 4) << "\n"
-
- cmd = "ruby #{ sample }"
- samples << Util.indent(prompt + cmd, 2) << "\n\n"
-
- cmd = "ruby -e'STDOUT.sync=true; exec %(ruby -I ./lib #{ sample })'"
- samples << Util.indent(`#{ cmd } 2>&1`, 4) << "\n"
- end
-
- template =
- if test(?e, 'README.erb')
- Template{ IO.read('README.erb') }
- else
- Template {
- <<-__
- NAME
- #{ lib }
-
- DESCRIPTION
-
- INSTALL
- gem install #{ lib }
-
- SAMPLES
- #{ samples }
- __
- }
- end
-
- open("README", "w"){|fd| fd.puts template}
-end
-
-
-task :clean do
- Dir[File.join(This.pkgdir, '**/**')].each{|entry| Fu.rm_rf(entry)}
-end
-
-
-task :release => [:clean, :gemspec, :gem] do
- gems = Dir[File.join(This.pkgdir, '*.gem')].flatten
- raise "which one? : #{ gems.inspect }" if gems.size > 1
- raise "no gems?" if gems.size < 1
-
- cmd = "gem push #{ This.gem }"
- puts cmd
- puts
- system(cmd)
- abort("cmd(#{ cmd }) failed with (#{ $?.inspect })") unless $?.exitstatus.zero?
-
- cmd = "rubyforge login && rubyforge add_release #{ This.rubyforge_project } #{ This.lib } #{ This.version } #{ This.gem }"
- puts cmd
- puts
- system(cmd)
- abort("cmd(#{ cmd }) failed with (#{ $?.inspect })") unless $?.exitstatus.zero?
-end
-
-
-
-
-
-BEGIN {
-# support for this rakefile
-#
- $VERBOSE = nil
-
- require 'ostruct'
- require 'erb'
- require 'fileutils'
- require 'rbconfig'
- require 'pp'
-
-# fu shortcut
-#
- Fu = FileUtils
-
-# pkg dir
-#
- Dir.chdir(File.dirname(__FILE__))
-
-# config object
-#
- class Cfg < ::Hash
- def method_missing(method, *args, &block)
- method = method.to_s
- case method
- when /=$/
- key = method.chomp('=')
- value = args.shift
- self[key] = value
- when /\?$/
- key = method.chomp('?')
- self.key?(key)
- when /\!$/
- key = method.chomp('!')
- self[key] = !!self[key]
- else
- key = method
- if args.empty? && block.nil?
- if has_key?(key)
- self[key]
- else
- nil
- #raise IndexError, key
- end
- else
- value =
- case
- when args.size > 0
- args.shift
- when block
- block.call
- end
- self[key] = value
- end
- end
- end
-
- def eval(string)
- instance_eval(string)
- end
- end
-
-# cache a bunch of stuff about this rakefile/environment
-#
- This = Cfg.new
-
- This.file = File.expand_path(__FILE__)
- This.dir = File.dirname(This.file)
- This.pkgdir = File.join(This.dir, 'pkg')
-
-# load config iff present
-#
- This.eval(IO.binread('config.rb')) if test(?s, 'config.rb')
-
-# grok lib
-#
- unless This.lib?
- lib = ENV['LIB']
- unless lib
- lib = File.basename(Dir.pwd)
- end
- This.lib = lib
- end
-
-# load lib
-#
- $LOAD_PATH.unshift('./lib')
- Kernel.require(This.lib)
-
-# grok the lib's object
-#
- unless This.object?
- unless This.name?
- This.name = File.basename(This.lib).split('_').each{|s| s.capitalize }.join('')
- end
- This.object = eval(This.name)
- else
- if This.object.is_a?(String)
- This.object = eval(This.object)
- unless This.name?
- This.name = This.object.name
- end
- end
- end
-
-# grok version
-#
- unless This.version?
- if This.object.respond_to?(:version)
- This.version = This.object.send(:version)
- end
- end
- abort 'no version' unless This.version?
-
-# see if dependencies are exported by the module
-#
- if This.object.respond_to?(:dependencies)
- This.dependencies = This.object.dependencies
- else
- This.dependencies = []
- end
-
-# set some reasonable defaults
-#
- {
-
- :synopsis => "#{ This.name } kicks the ass",
- :rubyforge_project => 'codeforpeople',
- :author => "Ara T. Howard",
- :email => "ara.t.howard@gmail.com",
- :homepage => "https://github.com/ahoward/#{ This.lib }"
-
- }.each do |key, val|
- unless This.send("#{ key }?")
- This.send("#{ key }=", val)
- end
- end
-
-# discover full path to this ruby executable
-#
- c = Config::CONFIG
- bindir = c["bindir"] || c['BINDIR']
- ruby_install_name = c['ruby_install_name'] || c['RUBY_INSTALL_NAME'] || 'ruby'
- ruby_ext = c['EXEEXT'] || ''
- ruby = File.join(bindir, (ruby_install_name + ruby_ext))
- This.ruby = ruby
-
-# some utils
-#
- module Util
- def indent(s, n = 2)
- s = unindent(s)
- ws = ' ' * n
- s.gsub(%r/^/, ws)
- end
-
- def unindent(s)
- indent = nil
- s.each_line do |line|
- next if line =~ %r/^\s*$/
- indent = line[%r/^\s*/] and break
- end
- indent ? s.gsub(%r/^#{ indent }/, "") : s
- end
- extend self
- end
-
-# template support
-#
- class Template
- def initialize(&block)
- @block = block
- @template = block.call.to_s
- end
- def expand(b=nil)
- ERB.new(Util.unindent(@template)).result((b||@block).binding)
- end
- alias_method 'to_s', 'expand'
- end
- def Template(*args, &block) Template.new(*args, &block) end
-
-# colored console output support
-#
- This.ansi = {
- :clear => "\e[0m",
- :reset => "\e[0m",
- :erase_line => "\e[K",
- :erase_char => "\e[P",
- :bold => "\e[1m",
- :dark => "\e[2m",
- :underline => "\e[4m",
- :underscore => "\e[4m",
- :blink => "\e[5m",
- :reverse => "\e[7m",
- :concealed => "\e[8m",
-
- :black => "\e[30m",
- :red => "\e[31m",
- :green => "\e[32m",
- :yellow => "\e[33m",
- :blue => "\e[34m",
- :magenta => "\e[35m",
- :cyan => "\e[36m",
- :white => "\e[37m",
-
- :on_black => "\e[40m",
- :on_red => "\e[41m",
- :on_green => "\e[42m",
- :on_yellow => "\e[43m",
- :on_blue => "\e[44m",
- :on_magenta => "\e[45m",
- :on_cyan => "\e[46m",
- :on_white => "\e[47m"
- }
- def say(phrase, *args)
- options = args.last.is_a?(Hash) ? args.pop : {}
- options[:color] = args.shift.to_s.to_sym unless args.empty?
- keys = options.keys
- keys.each{|key| options[key.to_s.to_sym] = options.delete(key)}
-
- color = options[:color]
- bold = options.has_key?(:bold)
-
- parts = [phrase]
- parts.unshift(This.ansi[color]) if color
- parts.unshift(This.ansi[:bold]) if bold
- parts.push(This.ansi[:clear]) if parts.size > 1
-
- method = options[:method] || :puts
-
- Kernel.send(method, parts.join)
- end
-
-# always run out of the project dir
-#
- Dir.chdir(This.dir)
-}
+task :default => :test