Module: Warbler::Trait

Overview

Each trait class includes this module to receive shared functionality.

Defined Under Namespace

Modules: ClassMethods

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config


62
63
64
# File 'lib/warbler/traits.rb', line 62

def config
  @config
end

Class Method Details

.included(base) ⇒ Object


58
59
60
# File 'lib/warbler/traits.rb', line 58

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#add_init_load_path(path) ⇒ Object


76
77
78
# File 'lib/warbler/traits.rb', line 76

def add_init_load_path(path)
  config.init_contents << StringIO.new("$LOAD_PATH.unshift __FILE__.sub(/!.*/, '!/#{path}')\n")
end

#add_main_rb(jar, bin_path, params = nil) ⇒ Object


80
81
82
83
84
85
# File 'lib/warbler/traits.rb', line 80

def add_main_rb(jar, bin_path, params = nil)
  binary = ""
  binary << "ARGV.unshift('#{params}')\n" if params
  binary << "load '#{bin_path}'"
  jar.files['META-INF/main.rb'] = StringIO.new(binary)
end

#after_configureObject


70
71
# File 'lib/warbler/traits.rb', line 70

def after_configure
end

#before_configureObject


67
68
# File 'lib/warbler/traits.rb', line 67

def before_configure
end

#initialize(config) ⇒ Object


63
64
65
# File 'lib/warbler/traits.rb', line 63

def initialize(config)
  @config = config
end

#jruby_jarsObject


98
99
100
101
# File 'lib/warbler/traits.rb', line 98

def jruby_jars
  require 'jruby-jars'
  FileList[JRubyJars.core_jar_path, JRubyJars.stdlib_jar_path]
end

#update_archive(jar) ⇒ Object


73
74
# File 'lib/warbler/traits.rb', line 73

def update_archive(jar)
end

#update_gem_path(default_gem_path) ⇒ Object


87
88
89
90
91
92
93
94
95
96
# File 'lib/warbler/traits.rb', line 87

def update_gem_path(default_gem_path)
  if config.gem_path != default_gem_path
    config.gem_path = "/#{config.gem_path}" unless config.gem_path =~ %r{^/}
    sub_gem_path = config.gem_path[1..-1]
    config.pathmaps.marshal_dump.keys.each do |pm|
      config.pathmaps.send(pm).each {|p| p.sub!(default_gem_path[1..-1], sub_gem_path)}
    end
    config.webxml["gem"]["path"] = config.gem_path if config.webxml
  end
end