Module: Hoe::Inline
- Defined in:
- lib/hoe/inline.rb
Overview
Hoe allows bundling of pre-compiled extensions in the package
task.
To create a package for your current platform:
rake package INLINE=1
This will force Hoe analize your Inline
already compiled extensions and include them in your gem.
If somehow you need to force a specific platform:
rake package INLINE=1 FORCE_PLATFORM=mswin32
This will set the Gem::Specification
platform to the one indicated in FORCE_PLATFORM
(instead of default Gem::Platform::CURRENT)
Instance Method Summary collapse
-
#activate_inline_deps ⇒ Object
Activate the inline dependencies.
-
#define_inline_tasks ⇒ Object
Define tasks for plugin.
-
#initialize_inline ⇒ Object
:nodoc:.
Instance Method Details
#activate_inline_deps ⇒ Object
Activate the inline dependencies.
28 29 30 |
# File 'lib/hoe/inline.rb', line 28 def activate_inline_deps dependency "RubyInline", "~> 3.9" end |
#define_inline_tasks ⇒ Object
Define tasks for plugin.
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/hoe/inline.rb', line 35 def define_inline_tasks task :test => :clean return unless ENV["INLINE"] s.platform = ENV["FORCE_PLATFORM"] || Gem::Platform::CURRENT return unless defined? Inline # Try collecting Inline extensions for +name+ directory "lib/inline" dlext = RbConfig::CONFIG["DLEXT"] Inline.registered_inline_classes.each do |cls| name = cls.name.gsub(/::/, "") # name of the extension is CamelCase alternate_name = if name =~ /[A-Z]/ then name.gsub(/([A-Z])/, '_\1').downcase.sub(/^_/, "") elsif name =~ /_/ then name.capitalize.gsub(/_([a-z])/) { $1.upcase } end extensions = Dir.chdir(Inline.directory) { Dir["Inline_{#{name},#{alternate_name}}_*.#{dlext}"] } extensions.each do |ext| # add the inlined extension to the spec files s.files += ["lib/inline/#{ext}"] # include the file in the tasks file "lib/inline/#{ext}" => ["lib/inline"] do cp File.join(Inline.directory, ext), "lib/inline" end end end end |
#initialize_inline ⇒ Object
:nodoc:
21 22 23 |
# File 'lib/hoe/inline.rb', line 21 def initialize_inline # :nodoc: clean_globs << File.("~/.ruby_inline") end |