# File lib/rake/baseextensiontask.rb, line 33 def initialize(name = nil, gem_spec = nil) init(name, gem_spec) yield self if block_given? define end
# File lib/rake/baseextensiontask.rb, line 49 def define fail "Extension name must be provided." if @name.nil? define_compile_tasks end
# File lib/rake/baseextensiontask.rb, line 39 def init(name = nil, gem_spec = nil) @name = name @gem_spec = gem_spec @tmp_dir = 'tmp' @ext_dir = "ext/#{@name}" @lib_dir = 'lib' @config_options = [] @extra_options = ARGV.select { |i| i =~ /\A--?/ } end
# File lib/rake/baseextensiontask.rb, line 61 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
# File lib/rake/baseextensiontask.rb, line 57 def define_compile_tasks raise NotImplementedError end
# File lib/rake/baseextensiontask.rb, line 75 def source_files FileList["#{@ext_dir}/#{@source_pattern}"] end
# File lib/rake/baseextensiontask.rb, line 79 def warn_once(message) @@already_warned ||= false return if @@already_warned @@already_warned = true warn message end
# File lib/rake/baseextensiontask.rb, line 86 def windows? Rake.application.windows? end