module Rake::DevEiate::Extension
Extension
compilation and maintenance tasks
Constants
- EXTENSION_GLOB_PATTERN
The glob pattern to use when looking for extension config scripts (relative to EXT_DIR).
Attributes
disable_rake_compiler[RW]
Set to true
to indicate that this project provides its own extension-management tasks.
Public Instance Methods
define_extension_tasks()
click to toggle source
Set up the tasks to build extensions.
# File lib/rake/deveiate/extensions.rb, line 71 def define_extension_tasks ENV['RUBY_CC_VERSION'] ||= RUBY_VERSION[ /(\d+\.\d+)/ ] require 'rake/extensiontask' self.extensions.each do |extconf| Rake::ExtensionTask.new( extconf.pathmap('%{ext/,}d') ) end task :spec => :compile task :maint do ENV['V'] = '1' ENV['MAINTAINER_MODE'] = 'yes' end end
define_tasks()
click to toggle source
Define extension tasks
Calls superclass method
# File lib/rake/deveiate/extensions.rb, line 47 def define_tasks super if defined?( super ) if self.extensions_present? if self.has_rakecompiler_dependency? self.define_extension_tasks elsif !self.disable_rake_compiler? warn <<~END_WARNING You appear to have one or more extensions, but rake-compiler is not a dependency. You should either add it to gem.deps.rb or set `disable_rake_compiler` on the project to disable this warning. END_WARNING end end task( :extensions_debug, &method(:do_extensions_debug) ) task :debug => :extensions_debug end
disable_rake_compiler?()
click to toggle source
Predicate for the disable_rake_compiler
attribute.
# File lib/rake/deveiate/extensions.rb, line 34 def disable_rake_compiler? return self.disable_rake_compiler ? true :false end
do_extensions_debug( task, args )
click to toggle source
Task function – output debugging for extension tasks.
# File lib/rake/deveiate/extensions.rb, line 97 def do_extensions_debug( task, args ) self.prompt.say( "Extension config scripts:", color: :bright_green ) if self.extensions.empty? self.prompt.say "None." else self.extensions.uniq.each do |path| self.prompt.say "- %s" % [ path ] end end if self.has_rakecompiler_dependency? self.prompt.say "\n" self.prompt.say "✔ has rake-compiler dependency" end self.prompt.say( "\n" ) end
extensions_present?()
click to toggle source
Returns true
if there appear to be extensions as part of the current project.
# File lib/rake/deveiate/extensions.rb, line 41 def extensions_present? return !self.extensions.empty? end
has_rakecompiler_dependency?()
click to toggle source
Returns true
if the projects dependencies include `rake-compiler`.
# File lib/rake/deveiate/extensions.rb, line 89 def has_rakecompiler_dependency? return self.dependencies.any? do |dep| dep.name == 'rake-compiler' end end
setup( _name, **options )
click to toggle source
Set some defaults when the task lib is set up.
Calls superclass method
# File lib/rake/deveiate/extensions.rb, line 19 def setup( _name, **options ) super if defined?( super ) self.extensions.include( Rake::DevEiate::EXT_DIR + EXTENSION_GLOB_PATTERN ) @disable_rake_compiler = false end