javajake 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+