javajake 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ $LOAD_PATH.unshift File.expand_path("../lib", __FILE__)
2
+ require "jake/version"
3
+
4
+ task :build do
5
+ system "gem build jake.gemspec"
6
+ end
7
+
8
+ task :release => :build do
9
+ system "gem push javajake-#{Jake::VERSION}.gem"
10
+ end
data/lib/jake/jar.rb ADDED
@@ -0,0 +1,22 @@
1
+ class Jar < JavaTask
2
+ attr_accessor :bin, :name, :with_manifest
3
+
4
+ def initialize(path)
5
+ @bin = []
6
+ @with_manifest = false
7
+ super(path)
8
+ end
9
+
10
+ def command
11
+ inputs = []
12
+ @bin.each do |c|
13
+ inputs << "-C #{c} ."
14
+ end
15
+
16
+ if @with_manifest then
17
+ "jar cvmf META-INF/MANIFEST.MF #{@name} #{inputs.join(' ')}"
18
+ else
19
+ "jar cvf #{@name} #{inputs.join(' ')}"
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,30 @@
1
+ class JavaTask
2
+ attr_accessor :base_dir
3
+
4
+ def self.in(base_dir = '.')
5
+ self.new(base_dir)
6
+ end
7
+
8
+ def execute &block
9
+ yield self
10
+
11
+ in_path @base_dir do
12
+ command
13
+ end
14
+ end
15
+
16
+ private
17
+
18
+ def initialize(path)
19
+ @base_dir = path
20
+ end
21
+
22
+ def in_path(path, &block)
23
+ original_path = Dir.getwd
24
+
25
+ Dir.chdir(path)
26
+ command = yield
27
+ sh command unless command.nil?
28
+ Dir.chdir(original_path)
29
+ end
30
+ end
data/lib/jake/javac.rb ADDED
@@ -0,0 +1,22 @@
1
+ class Javac < JavaTask
2
+ attr_accessor :src, :cp, :output
3
+
4
+ def initialize(path)
5
+ super(path)
6
+ @cp = []
7
+ end
8
+
9
+ def command
10
+ classpath = []
11
+
12
+ @src = Dir.glob(@src)
13
+ @cp.each do |p|
14
+ puts "Globbing #{p}"
15
+ classpath << Dir.glob(p)
16
+ puts "CP = #{classpath}"
17
+ end
18
+
19
+ FileUtils.mkdir_p(@output) unless File.exist? @output
20
+ "javac " + @src.join(' ').to_s + " -cp " + classpath.join(':').to_s + " -d " + @output
21
+ end
22
+ end
@@ -0,0 +1,20 @@
1
+ class Manifest < JavaTask
2
+ attr_accessor :cp, :main_class
3
+
4
+ def execute &block
5
+ yield self
6
+
7
+ in_path @base_dir do
8
+ FileUtils.mkdir 'META-INF' unless File.exists? 'META-INF'
9
+ @cp = Dir.glob(@cp)
10
+
11
+ File.open(File.join('META-INF', 'MANIFEST.MF'), 'w') do |f|
12
+ f.puts 'Manifest-Version: 1.0'
13
+ f.puts 'Class-Path: ' + @cp.join(" \n ").to_s
14
+ f.puts 'Main-Class: ' + @main_class
15
+ end
16
+
17
+ nil
18
+ end
19
+ end
20
+ end
data/lib/jake/unjar.rb ADDED
@@ -0,0 +1,7 @@
1
+ class UnJar < JavaTask
2
+ attr_accessor :name, :target
3
+
4
+ def command
5
+ "unzip -n #{@name} -d #{@target}"
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ module Jake
2
+ VERSION = "0.1.0"
3
+ end
data/lib/jake.rb ADDED
@@ -0,0 +1,5 @@
1
+ require 'jake/java_task'
2
+ require 'jake/jar'
3
+ require 'jake/javac'
4
+ require 'jake/manifest'
5
+ require 'jake/unjar'
metadata ADDED
@@ -0,0 +1,71 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: javajake
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 1
8
+ - 0
9
+ version: 0.1.0
10
+ platform: ruby
11
+ authors:
12
+ - Tomas Kramar
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-10-27 00:00:00 +02:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Build java code with ease.
22
+ email: kramar@fiit.stuba.sk
23
+ executables: []
24
+
25
+ extensions: []
26
+
27
+ extra_rdoc_files: []
28
+
29
+ files:
30
+ - lib/jake/jar.rb
31
+ - lib/jake/java_task.rb
32
+ - lib/jake/javac.rb
33
+ - lib/jake/manifest.rb
34
+ - lib/jake/unjar.rb
35
+ - lib/jake/version.rb
36
+ - lib/jake.rb
37
+ - Rakefile
38
+ has_rdoc: true
39
+ homepage:
40
+ licenses: []
41
+
42
+ post_install_message:
43
+ rdoc_options: []
44
+
45
+ require_paths:
46
+ - lib
47
+ required_ruby_version: !ruby/object:Gem::Requirement
48
+ none: false
49
+ requirements:
50
+ - - ">="
51
+ - !ruby/object:Gem::Version
52
+ segments:
53
+ - 0
54
+ version: "0"
55
+ required_rubygems_version: !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ segments:
61
+ - 0
62
+ version: "0"
63
+ requirements: []
64
+
65
+ rubyforge_project:
66
+ rubygems_version: 1.3.7
67
+ signing_key:
68
+ specification_version: 3
69
+ summary: Build java code with ease
70
+ test_files: []
71
+