Class: Rake::ExtensionTask
- Inherits:
-
TaskLib
- Object
- TaskLib
- Rake::ExtensionTask
- Defined in:
- lib/rake/extensiontask.rb
Instance Attribute Summary collapse
-
#config_options ⇒ Object
Returns the value of attribute config_options.
-
#config_script ⇒ Object
Returns the value of attribute config_script.
-
#cross_compile ⇒ Object
Returns the value of attribute cross_compile.
-
#cross_config_options ⇒ Object
Returns the value of attribute cross_config_options.
-
#cross_platform ⇒ Object
Returns the value of attribute cross_platform.
-
#ext_dir ⇒ Object
Returns the value of attribute ext_dir.
-
#gem_spec ⇒ Object
Returns the value of attribute gem_spec.
-
#lib_dir ⇒ Object
Returns the value of attribute lib_dir.
-
#name ⇒ Object
Returns the value of attribute name.
-
#platform ⇒ Object
Returns the value of attribute platform.
-
#source_pattern ⇒ Object
Returns the value of attribute source_pattern.
-
#tmp_dir ⇒ Object
Returns the value of attribute tmp_dir.
Instance Method Summary collapse
- #define ⇒ Object
- #init(name = nil, gem_spec = nil) ⇒ Object
-
#initialize(name = nil, gem_spec = nil) {|_self| ... } ⇒ ExtensionTask
constructor
A new instance of ExtensionTask.
Constructor Details
#initialize(name = nil, gem_spec = nil) {|_self| ... } ⇒ ExtensionTask
Returns a new instance of ExtensionTask.
29 30 31 32 33 |
# File 'lib/rake/extensiontask.rb', line 29 def initialize(name = nil, gem_spec = nil) init(name, gem_spec) yield self if block_given? define end |
Instance Attribute Details
#config_options ⇒ Object
Returns the value of attribute config_options.
23 24 25 |
# File 'lib/rake/extensiontask.rb', line 23 def @config_options end |
#config_script ⇒ Object
Returns the value of attribute config_script.
18 19 20 |
# File 'lib/rake/extensiontask.rb', line 18 def config_script @config_script end |
#cross_compile ⇒ Object
Returns the value of attribute cross_compile.
25 26 27 |
# File 'lib/rake/extensiontask.rb', line 25 def cross_compile @cross_compile end |
#cross_config_options ⇒ Object
Returns the value of attribute cross_config_options.
27 28 29 |
# File 'lib/rake/extensiontask.rb', line 27 def @cross_config_options end |
#cross_platform ⇒ Object
Returns the value of attribute cross_platform.
26 27 28 |
# File 'lib/rake/extensiontask.rb', line 26 def cross_platform @cross_platform end |
#ext_dir ⇒ Object
Returns the value of attribute ext_dir.
20 21 22 |
# File 'lib/rake/extensiontask.rb', line 20 def ext_dir @ext_dir end |
#gem_spec ⇒ Object
Returns the value of attribute gem_spec.
17 18 19 |
# File 'lib/rake/extensiontask.rb', line 17 def gem_spec @gem_spec end |
#lib_dir ⇒ Object
Returns the value of attribute lib_dir.
21 22 23 |
# File 'lib/rake/extensiontask.rb', line 21 def lib_dir @lib_dir end |
#name ⇒ Object
Returns the value of attribute name.
16 17 18 |
# File 'lib/rake/extensiontask.rb', line 16 def name @name end |
#platform ⇒ Object
Returns the value of attribute platform.
22 23 24 |
# File 'lib/rake/extensiontask.rb', line 22 def platform @platform end |
#source_pattern ⇒ Object
Returns the value of attribute source_pattern.
24 25 26 |
# File 'lib/rake/extensiontask.rb', line 24 def source_pattern @source_pattern end |
#tmp_dir ⇒ Object
Returns the value of attribute tmp_dir.
19 20 21 |
# File 'lib/rake/extensiontask.rb', line 19 def tmp_dir @tmp_dir end |
Instance Method Details
#define ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/rake/extensiontask.rb', line 56 def define fail "Extension name must be provided." if @name.nil? define_compile_tasks # only gems with 'ruby' platforms are allowed to define native tasks define_native_tasks if @gem_spec && @gem_spec.platform == 'ruby' # only define cross platform functionality when enabled return unless @cross_compile if cross_platform.is_a?(Array) then cross_platform.each { |platf| define_cross_platform_tasks(platf) } else define_cross_platform_tasks(cross_platform) end end |
#init(name = nil, gem_spec = nil) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/rake/extensiontask.rb', line 35 def init(name = nil, gem_spec = nil) @name = name @gem_spec = gem_spec @config_script = 'extconf.rb' @tmp_dir = 'tmp' @ext_dir = "ext/#{@name}" @lib_dir = 'lib' @source_pattern = "*.c" @config_options = [] @cross_compile = false @cross_config_options = [] end |