module FunWith::Gems::RakeClassMethods

Attributes

gem[RW]

Public Instance Methods

get_gem() click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 20
def get_gem
  @gem
end
jeweler_requirements() click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 76
def jeweler_requirements
  require 'rake'
  require 'jeweler'
end
rake_requirements() click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 81
def rake_requirements
  require 'rdoc/task'
  require 'rake/testtask'
end
run_bundler_setup() click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 28
def run_bundler_setup
  jeweler_requirements
  rake_requirements
  
  begin
    Bundler.setup(:default, :development)
  rescue Bundler::BundlerError => e
    $stderr.puts e.message
    $stderr.puts "Run `bundle install` to install missing gems"
    exit e.status_code
  end
end
run_in_rakefile(&block) click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 86
def run_in_rakefile &block
  if @rake_main.nil?
    raise "Did you forget the line FunWith::Gems::Rakefile.set_rake_main by any chance?"
  elsif ! block_given?
    raise ArgumentError.new("Block must be given")
  else
    @rake_main.instance_eval &block
  end
end
set_gem(g) click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 16
def set_gem g
  @gem = g
end
set_rake_main(m) click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 24
def set_rake_main m
  @rake_main = m
end
setup(this_gem, rake_main) click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 6
def setup this_gem, rake_main
  set_gem        this_gem
  set_rake_main  rake_main
  run_bundler_setup
  
  # Internal tasks are set up in the Rakefile.
  # External tasks (visible to the gems that depend on your fungem) are setup during the normal gem setup, if the 'rake' gem is present.
  get_gem.load_internal_tasks     
end
setup_gem_boilerplate() click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 47
def setup_gem_boilerplate
  run_in_rakefile do
    Jeweler::RubygemsDotOrgTasks.new

    Rake::TestTask.new(:test) do |test|
      test.libs << 'lib' << 'test'
      test.pattern = 'test/**/test_*.rb'
      test.verbose = true
    end

    desc "Code coverage detail"
    task :simplecov do
      ENV['COVERAGE'] = "true"
      Rake::Task['test'].execute
    end

    task :default => :test

    Rake::RDocTask.new do |rdoc|
      version = File.exist?('VERSION') ? File.read('VERSION') : ""

      rdoc.rdoc_dir = 'rdoc'
      rdoc.title = "fun_with_gems #{version}"
      rdoc.rdoc_files.include('README*')
      rdoc.rdoc_files.include('lib/**/*.rb')
    end
  end
end
specification() { |gem| ... } click to toggle source
# File lib/fun_with/gems/rake_class_methods.rb, line 41
def specification &block
  Jeweler::Tasks.new do |gem|
    yield gem
  end
end