Class: JBundler::Vendor

Inherits:
Object
  • Object
show all
Defined in:
lib/jbundler/vendor.rb

Instance Method Summary collapse

Constructor Details

#initialize(dir) ⇒ Vendor

Returns a new instance of Vendor.



5
6
7
8
# File 'lib/jbundler/vendor.rb', line 5

def initialize( dir )
  @dir = File.expand_path( dir )
  @jars_lock = File.join( @dir, 'Jars.lock' )
end

Instance Method Details

#clearObject



39
40
41
42
43
44
# File 'lib/jbundler/vendor.rb', line 39

def clear
  FileUtils.mkdir_p( @dir )
  Dir[ File.join( @dir, '*' ) ].each do |f|
    FileUtils.rm_rf( f )
  end
end

#require_jarsObject



14
15
16
17
18
19
20
21
22
23
# File 'lib/jbundler/vendor.rb', line 14

def require_jars
  if File.exists?(@jars_lock)
    $LOAD_PATH << @dir unless $LOAD_PATH.include? @dir
    ENV_JAVA['jars.lock'] = @jars_lock
    Jars.require_jars_lock!
    true
  else
    require_jars_legacy
  end
end

#require_jars_legacyObject



25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/jbundler/vendor.rb', line 25

def require_jars_legacy
  jars = File.join( @dir, 'jbundler.rb' )
  if File.exists?( jars )
    $LOAD_PATH << @dir unless $LOAD_PATH.include? @dir
    require jars
  else
    Dir[ File.join( @dir, '**', '*' ) ].each do |f|
      require f
    end
    Jars.no_more_warnings
    true
  end
end

#setup(classpath_file) ⇒ Object



65
66
67
68
69
70
71
72
# File 'lib/jbundler/vendor.rb', line 65

def setup( classpath_file )
  classpath_file.require_classpath
  FileUtils.mkdir_p( @dir )
  JBUNDLER_CLASSPATH.each do |f|
    FileUtils.cp( f, File.join( @dir,
                                File.basename( f ) ) )
  end
end

#vendor_dependencies(deps) ⇒ Object



46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/jbundler/vendor.rb', line 46

def vendor_dependencies( deps )
  FileUtils.mkdir_p( @dir )
  File.open(@jars_lock, 'w') do |f|
    deps.each do |dep|
      if dep.scope == :runtime
        target = File.join( @dir, dep.path )
        FileUtils.mkdir_p( File.dirname( target ) )
        FileUtils.cp( dep.file, target )
        line = dep.gav + ':runtime:'
        f.puts line
      end
    end
  end
  ['jbundler.rb', 'jbundle.rb'].each do |filename|
    File.write( File.join( @dir, filename ), 
                "ENV['JARS_LOCK'] = File.join( File.dirname( __FILE__ ), 'Jars.lock' )\nrequire 'jars/setup'" )
  end
end

#vendored?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/jbundler/vendor.rb', line 10

def vendored?
  File.exists?( @dir ) && Dir[ File.join( @dir, '*' ) ].size > 0
end