class Rake::BaseExtensionTask

def binary(platform = nil)

def binary(platform = nil)
  ext = case platform
    when /darwin/
      'bundle'
    when /mingw|mswin|linux/
      'so'
    when /java/
      'jar'
    else
      RbConfig::CONFIG['DLEXT']
  end
  "#{@name}.#{ext}"
end

def define

def define
  fail "Extension name must be provided." if @name.nil?
  @name = @name.to_s
  define_compile_tasks
end

def define_compile_tasks

def define_compile_tasks
  raise NotImplementedError
end

def init(name = nil, gem_spec = nil)

def init(name = nil, gem_spec = nil)
  @name = name
  @gem_spec = gem_spec
  @tmp_dir = 'tmp'
  @ext_dir = "ext/#{@name}"
  @lib_dir = 'lib'
  if @name and File.dirname(@name.to_s) != "."
    @lib_dir += "/#{File.dirname(@name.to_s)}"
  end
  @config_options = []
  @extra_options = ARGV.select { |i| i =~ /\A--?/ }
end

def initialize(name = nil, gem_spec = nil)

def initialize(name = nil, gem_spec = nil)
  init(name, gem_spec)
  yield self if block_given?
  define
end

def platform

def platform
  @platform ||= RUBY_PLATFORM
end

def source_files

def source_files
  FileList["#{@ext_dir}/#{@source_pattern}"]
end

def warn_once(message)

def warn_once(message)
  @@already_warned ||= false
  return if @@already_warned
  @@already_warned = true
  warn message
end

def windows?

def windows?
  Rake.application.windows?
end