Antwrap 0.4 → 0.5.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/docs/index.html +1 -1
- data/lib/antwrap.rb +58 -57
- data/lib/jruby_modules.rb +14 -0
- data/lib/rjb_modules.rb +16 -0
- data/test/tc_antwrap.rb +28 -31
- metadata +18 -8
- data/lib/convert.rb +0 -104
- data/lib/rakefile.rb +0 -101
data/docs/index.html
CHANGED
@@ -38,7 +38,7 @@ upon the invocation of the execute() method (this is a more Object Oriented appr
|
|
38
38
|
circumstances):
|
39
39
|
|
40
40
|
<code lang="ruby">
|
41
|
-
@ant = AntProject.new({:name=>"FooProject", :declarative=&
|
41
|
+
@ant = AntProject.new({:name=>"FooProject", :declarative=> false})
|
42
42
|
|
43
43
|
javac_task = @ant.javac(:srcdir => "test", :destdir => "classes"){
|
44
44
|
classpath(:refid => "common.class.path")
|
data/lib/antwrap.rb
CHANGED
@@ -5,26 +5,44 @@
|
|
5
5
|
# Licensed under the LGPL, see the file COPYING in the distribution
|
6
6
|
#
|
7
7
|
|
8
|
-
|
9
|
-
require '
|
10
|
-
|
11
|
-
|
12
|
-
include_class "org.apache.tools.ant.Project"
|
13
|
-
include_class "org.apache.tools.ant.RuntimeConfigurable"
|
14
|
-
include_class "org.apache.tools.ant.Target"
|
15
|
-
include_class "org.apache.tools.ant.UnknownElement"
|
16
|
-
end
|
17
|
-
|
18
|
-
module JavaLang
|
19
|
-
require 'java'
|
20
|
-
include_class "java.lang.System"
|
8
|
+
if(RUBY_PLATFORM == 'java')
|
9
|
+
require 'jruby_modules.rb'
|
10
|
+
else
|
11
|
+
require 'rjb_modules.rb'
|
21
12
|
end
|
22
13
|
|
23
14
|
class AntTask
|
24
15
|
private
|
25
16
|
@@task_stack = Array.new
|
26
|
-
|
17
|
+
attr_accessor(:unknown_element, :project, :taskname, :logger, :executed)
|
18
|
+
|
19
|
+
def create_unknown_element(project, taskname)
|
20
|
+
|
21
|
+
element = ApacheAnt::UnknownElement.new(taskname)
|
22
|
+
element.setProject(project)
|
23
|
+
element.setOwningTarget(ApacheAnt::Target.new())
|
24
|
+
element.setTaskName(taskname)
|
25
|
+
|
26
|
+
if(@project_wrapper.ant_version >= 1.6)
|
27
|
+
element.setTaskType(taskname)
|
28
|
+
element.setNamespace('')
|
29
|
+
element.setQName(taskname)
|
30
|
+
end
|
31
|
+
|
32
|
+
return element
|
33
|
+
|
34
|
+
end
|
27
35
|
|
36
|
+
def method_missing(sym, *args)
|
37
|
+
begin
|
38
|
+
@logger.debug("AntTask.method_missing sym[#{sym.to_s}]")
|
39
|
+
task = AntTask.new(sym.to_s, @project_wrapper, args[0], block_given? ? Proc.new : nil)
|
40
|
+
self.add(task)
|
41
|
+
rescue StandardError
|
42
|
+
@logger.error("AntTask.method_missing error:" + $!)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
28
46
|
public
|
29
47
|
def initialize(taskname, antProject, attributes, proc)
|
30
48
|
taskname = taskname[1, taskname.length-1] if taskname[0,1] == "_"
|
@@ -39,7 +57,7 @@ class AntTask
|
|
39
57
|
addAttributes(attributes)
|
40
58
|
|
41
59
|
if proc
|
42
|
-
@logger.debug("task_stack.push #{taskname} >> #{@@task_stack}")
|
60
|
+
# @logger.debug("task_stack.push #{taskname} >> #{@@task_stack}")
|
43
61
|
@@task_stack.push self
|
44
62
|
|
45
63
|
singleton_class = class << proc; self; end
|
@@ -54,23 +72,9 @@ class AntTask
|
|
54
72
|
|
55
73
|
end
|
56
74
|
|
57
|
-
def create_unknown_element(project, taskname)
|
58
|
-
|
59
|
-
unknown_element = ApacheAnt::UnknownElement.new(taskname)
|
60
|
-
unknown_element.project= project
|
61
|
-
unknown_element.owningTarget= ApacheAnt::Target.new()
|
62
|
-
unknown_element.taskName= taskname
|
63
|
-
|
64
|
-
if(@project_wrapper.ant_version >= 1.6)
|
65
|
-
unknown_element.taskType= taskname
|
66
|
-
unknown_element.namespace= ''
|
67
|
-
unknown_element.QName= taskname
|
68
|
-
end
|
69
|
-
|
70
|
-
return unknown_element
|
71
|
-
|
72
|
-
end
|
73
75
|
|
76
|
+
# Sets each attribute on the AntTask instance.
|
77
|
+
# :attributes - is a Hash.
|
74
78
|
def addAttributes(attributes)
|
75
79
|
|
76
80
|
return if attributes == nil
|
@@ -93,22 +97,17 @@ class AntTask
|
|
93
97
|
|
94
98
|
end
|
95
99
|
|
96
|
-
|
97
|
-
begin
|
98
|
-
@logger.debug("AntTask.method_missing sym[#{sym.to_s}]")
|
99
|
-
task = AntTask.new(sym.to_s, @project_wrapper, args[0], block_given? ? Proc.new : nil)
|
100
|
-
self.add(task)
|
101
|
-
rescue StandardError
|
102
|
-
@logger.error("AntTask.method_missing error:" + $!)
|
103
|
-
end
|
104
|
-
end
|
105
|
-
|
100
|
+
#Add <em>child</em> as a child of this task.
|
106
101
|
def add(child)
|
107
|
-
@logger.debug("adding child[#{child.taskname}] to [#{@taskname}]")
|
108
|
-
@unknown_element.addChild(child.
|
109
|
-
@unknown_element.getRuntimeConfigurableWrapper().addChild(child.
|
102
|
+
# @logger.debug("adding child[#{child.taskname()}] to [#{@taskname}]")
|
103
|
+
@unknown_element.addChild(child.getUnknownElement())
|
104
|
+
@unknown_element.getRuntimeConfigurableWrapper().addChild(child.getUnknownElement().getRuntimeConfigurableWrapper())
|
110
105
|
end
|
111
106
|
|
107
|
+
def getUnknownElement
|
108
|
+
return @unknown_element
|
109
|
+
end
|
110
|
+
#Invokes the AntTask.
|
112
111
|
def execute
|
113
112
|
@unknown_element.maybeConfigure
|
114
113
|
@unknown_element.execute
|
@@ -152,17 +151,17 @@ class AntProject
|
|
152
151
|
# -Defaults to Logger::ERROR
|
153
152
|
def initialize(options=Hash.new)
|
154
153
|
@project= ApacheAnt::Project.new
|
155
|
-
@project.
|
156
|
-
@project.
|
157
|
-
@project.
|
154
|
+
@project.setName(options[:name] || '')
|
155
|
+
@project.setDefault('')
|
156
|
+
@project.setBasedir(options[:basedir] || '.')
|
158
157
|
@project.init
|
159
158
|
self.declarative= options[:declarative] || true
|
160
159
|
default_logger = ApacheAnt::DefaultLogger.new
|
161
|
-
default_logger.
|
162
|
-
default_logger.
|
163
|
-
default_logger.
|
164
|
-
default_logger.
|
165
|
-
@project.addBuildListener
|
160
|
+
default_logger.setMessageOutputLevel(2)
|
161
|
+
default_logger.setOutputPrintStream(options[:outputstr] || JavaLang::System.out)
|
162
|
+
default_logger.setErrorPrintStream(options[:errorstr] || JavaLang::System.err)
|
163
|
+
default_logger.setEmacsMode(false)
|
164
|
+
@project.addBuildListener(default_logger)
|
166
165
|
@version = ApacheAnt::Main.getAntVersion
|
167
166
|
@ant_version = @version[/\d\.\d\.\d/].to_f
|
168
167
|
@logger = options[:logger] || Logger.new(STDOUT)
|
@@ -171,8 +170,8 @@ class AntProject
|
|
171
170
|
end
|
172
171
|
|
173
172
|
def create_task(taskname, attributes, proc)
|
174
|
-
@logger.debug("
|
175
|
-
@logger.debug("
|
173
|
+
@logger.debug("AntProject.create_task.taskname = " + taskname)
|
174
|
+
@logger.debug("AntProject.create_task.attributes = " + attributes.to_s)
|
176
175
|
|
177
176
|
task = AntTask.new(taskname, self, attributes, proc)
|
178
177
|
task.execute if declarative
|
@@ -188,18 +187,20 @@ class AntProject
|
|
188
187
|
end
|
189
188
|
end
|
190
189
|
|
190
|
+
#The Ant Project's name. Default is ''.
|
191
191
|
def name()
|
192
|
-
return @project.
|
192
|
+
return @project.getName
|
193
193
|
end
|
194
194
|
|
195
|
+
#The Ant Project's basedir. Default is '.'.
|
195
196
|
def basedir()
|
196
197
|
return @project.getBaseDir().getAbsolutePath();
|
197
198
|
end
|
198
199
|
|
199
200
|
def to_s
|
200
|
-
return self.class.name + "[#{@project.
|
201
|
+
return self.class.name + "[#{@project.getName()}]"
|
201
202
|
end
|
202
|
-
|
203
|
+
|
203
204
|
#This method invokes create_task. It is here to prevent conflicts wth the JRuby library
|
204
205
|
#over the 'java' symbol.
|
205
206
|
def java(attributes=Hash.new)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
module ApacheAnt
|
2
|
+
require 'java'
|
3
|
+
include_class "org.apache.tools.ant.DefaultLogger"
|
4
|
+
include_class "org.apache.tools.ant.Main"
|
5
|
+
include_class "org.apache.tools.ant.Project"
|
6
|
+
include_class "org.apache.tools.ant.RuntimeConfigurable"
|
7
|
+
include_class "org.apache.tools.ant.Target"
|
8
|
+
include_class "org.apache.tools.ant.UnknownElement"
|
9
|
+
end
|
10
|
+
|
11
|
+
module JavaLang
|
12
|
+
require 'java'
|
13
|
+
include_class "java.lang.System"
|
14
|
+
end
|
data/lib/rjb_modules.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
module ApacheAnt
|
2
|
+
require 'rubygems'
|
3
|
+
require 'rjb'
|
4
|
+
DefaultLogger = Rjb::import("org.apache.tools.ant.DefaultLogger")
|
5
|
+
Main = Rjb::import("org.apache.tools.ant.Main")
|
6
|
+
Project = Rjb::import("org.apache.tools.ant.Project")
|
7
|
+
RuntimeConfigurable = Rjb::import("org.apache.tools.ant.RuntimeConfigurable")
|
8
|
+
Target = Rjb::import("org.apache.tools.ant.Target")
|
9
|
+
UnknownElement = Rjb::import("org.apache.tools.ant.UnknownElement")
|
10
|
+
end
|
11
|
+
|
12
|
+
module JavaLang
|
13
|
+
require 'rubygems'
|
14
|
+
require 'rjb'
|
15
|
+
System = Rjb::import("java.lang.System")
|
16
|
+
end
|
data/test/tc_antwrap.rb
CHANGED
@@ -6,40 +6,37 @@
|
|
6
6
|
#
|
7
7
|
require 'test/unit'
|
8
8
|
require 'fileutils'
|
9
|
-
|
10
|
-
require '
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
end
|
30
|
-
|
9
|
+
$LOAD_PATH.push(ENV['PWD'] + '/lib')
|
10
|
+
require 'antwrap'
|
11
|
+
require 'logger'
|
12
|
+
#class TestStream < java.io.PrintStream
|
13
|
+
# attr_reader :last_line
|
14
|
+
#
|
15
|
+
# def initialise(out)
|
16
|
+
# self.super(out)
|
17
|
+
# end
|
18
|
+
#
|
19
|
+
# def println(s)
|
20
|
+
# puts "s"
|
21
|
+
# @last_line = s
|
22
|
+
# self.super(s)
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
# def print(s)
|
26
|
+
# puts "s"
|
27
|
+
# @last_line = s
|
28
|
+
# self.super(s)
|
29
|
+
# end
|
30
|
+
#end
|
31
31
|
class TestAntwrap < Test::Unit::TestCase
|
32
32
|
|
33
33
|
def setup
|
34
|
-
|
35
|
-
# @output_dir = ENV['PWD'] + '/output'
|
36
|
-
# @resource_dir = ENV['PWD'] + '/test-resources'
|
37
|
-
# The following is a workaround
|
38
|
-
@current_dir = Java::java.lang.System.getProperty("user.dir")
|
34
|
+
@current_dir = ENV['PWD']
|
39
35
|
@ant_proj_props = {:name=>"testProject", :basedir=>@current_dir, :declarative=>true,
|
40
36
|
:logger=>Logger.new(STDOUT), :loglevel=>Logger::DEBUG}
|
41
37
|
@ant = AntProject.new(@ant_proj_props)
|
42
38
|
assert(@ant_proj_props[:name] == @ant.name())
|
39
|
+
|
43
40
|
assert(@ant_proj_props[:basedir] == @ant.basedir())
|
44
41
|
assert(@ant_proj_props[:declarative] == @ant.declarative())
|
45
42
|
|
@@ -106,11 +103,11 @@ class TestAntwrap < Test::Unit::TestCase
|
|
106
103
|
assert_absent @output_dir + '/classes/foo/bar/FooBar.class'
|
107
104
|
@ant.property(:name => 'pattern', :value => '**/*.jar')
|
108
105
|
@ant.property(:name => 'resource_dir', :value => @resource_dir)
|
109
|
-
|
110
|
-
|
111
|
-
|
106
|
+
@ant.path(:id => 'common.class.path'){
|
107
|
+
fileset(:dir => '${resource_dir}'){
|
108
|
+
include(:name => '${pattern}')
|
109
|
+
}
|
112
110
|
}
|
113
|
-
}
|
114
111
|
|
115
112
|
@ant.javac(:srcdir => @resource_dir + '/src',
|
116
113
|
:destdir => @output_dir + '/classes',
|
metadata
CHANGED
@@ -3,10 +3,10 @@ rubygems_version: 0.8.10
|
|
3
3
|
specification_version: 1
|
4
4
|
name: Antwrap
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version:
|
7
|
-
date: 2007-03-
|
8
|
-
summary: "A
|
9
|
-
invoked from a JRuby
|
6
|
+
version: 0.5.0
|
7
|
+
date: 2007-03-15
|
8
|
+
summary: "A Ruby module that wraps the Apache Ant build tool, enabling Ant Tasks to be
|
9
|
+
invoked from a Ruby/JRuby scripts."
|
10
10
|
require_paths:
|
11
11
|
- lib
|
12
12
|
email: caleb.powell@gmail.com
|
@@ -16,7 +16,7 @@ description:
|
|
16
16
|
autorequire: antwrap
|
17
17
|
default_executable:
|
18
18
|
bindir: bin
|
19
|
-
has_rdoc:
|
19
|
+
has_rdoc: true
|
20
20
|
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
21
21
|
requirements:
|
22
22
|
-
|
@@ -29,8 +29,8 @@ authors:
|
|
29
29
|
- Caleb Powell
|
30
30
|
files:
|
31
31
|
- lib/antwrap.rb
|
32
|
-
- lib/
|
33
|
-
- lib/
|
32
|
+
- lib/jruby_modules.rb
|
33
|
+
- lib/rjb_modules.rb
|
34
34
|
- test/output
|
35
35
|
- test/tc_antwrap.rb
|
36
36
|
- test/tc_convert.rb
|
@@ -64,4 +64,14 @@ extra_rdoc_files:
|
|
64
64
|
executables: []
|
65
65
|
extensions: []
|
66
66
|
requirements: []
|
67
|
-
dependencies:
|
67
|
+
dependencies:
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
name: rjb
|
70
|
+
version_requirement:
|
71
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
72
|
+
requirements:
|
73
|
+
-
|
74
|
+
- ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.0.3
|
77
|
+
version:
|
data/lib/convert.rb
DELETED
@@ -1,104 +0,0 @@
|
|
1
|
-
# antwrap
|
2
|
-
#
|
3
|
-
# Copyright Caleb Powell 2007
|
4
|
-
#
|
5
|
-
# Licensed under the LGPL, see the file COPYING in the distribution
|
6
|
-
#
|
7
|
-
require 'rexml/document'
|
8
|
-
|
9
|
-
if ARGV.empty?
|
10
|
-
puts "Usage: #{$0} [antfile] [rakefile]"
|
11
|
-
exit! 1
|
12
|
-
end
|
13
|
-
|
14
|
-
@antfile = File.open(ARGV[0])
|
15
|
-
@rakefile = File.new(ARGV[1], 'w+')
|
16
|
-
@@reserved_words = ['alias', 'and', 'BEGIN', 'begin', 'break', 'case', 'class',
|
17
|
-
'def', 'defined', 'do', 'else', 'elsif', 'END', 'end', 'ensure',
|
18
|
-
'false', 'for', 'if', 'in', 'module', 'next', 'nil', 'not', 'or',
|
19
|
-
'redo', 'rescue', 'retry', 'return', 'self', 'super', 'then', 'true',
|
20
|
-
'undef', 'unless', 'until', 'when', 'while', 'yield', 'java']
|
21
|
-
|
22
|
-
xml = REXML::Document.new(@antfile)
|
23
|
-
|
24
|
-
puts "Converting from Ant build script[#{@antfile.path}] == to ==> \n Rakefile[#{@rakefile.path}]"
|
25
|
-
|
26
|
-
def create_symbol(str)
|
27
|
-
str = rubyize(str)
|
28
|
-
return str.gsub(/(\w*[^,\s])/, ':\1')
|
29
|
-
end
|
30
|
-
|
31
|
-
def rubyize(str)
|
32
|
-
if (str == nil)
|
33
|
-
str = ''
|
34
|
-
elsif (@@reserved_words.index(str) != nil)
|
35
|
-
str = '_' + str
|
36
|
-
else
|
37
|
-
str = str.gsub(/(\w*)[\-|\.](\w*)/, '\1_\2')
|
38
|
-
end
|
39
|
-
return str
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
|
-
@rakefile.print "require_gem 'Antwrap'\n"
|
44
|
-
@rakefile.print "@ant = AntProject.new()\n"
|
45
|
-
@one_tab= ' '
|
46
|
-
def print_task(task, tab=@one_tab, prefix='')
|
47
|
-
task_name = rubyize(task.name)
|
48
|
-
@rakefile.print "#{tab}#{prefix}#{task_name}("
|
49
|
-
|
50
|
-
if(task_name == 'macrodef')
|
51
|
-
task.attributes['name'] = rubyize(task.attributes['name'])
|
52
|
-
elsif(task_name == 'java')
|
53
|
-
task_name = 'jvm'
|
54
|
-
end
|
55
|
-
|
56
|
-
isFirst = true;
|
57
|
-
task.attributes.each do |key, value|
|
58
|
-
if !isFirst
|
59
|
-
@rakefile.print(",\n#{tab+@one_tab}")
|
60
|
-
end
|
61
|
-
@rakefile.print ":#{key} => \"#{value}\""
|
62
|
-
isFirst = false;
|
63
|
-
end
|
64
|
-
|
65
|
-
if task.has_text?
|
66
|
-
pcdata = task.texts().join
|
67
|
-
if(pcdata.strip() != '')
|
68
|
-
@rakefile.print ":pcdata => \"#{pcdata}\""
|
69
|
-
end
|
70
|
-
end
|
71
|
-
@rakefile.print ")"
|
72
|
-
|
73
|
-
|
74
|
-
if task.elements.size > 0
|
75
|
-
@rakefile.print "{"
|
76
|
-
task.elements.each do |child|
|
77
|
-
@rakefile.print "\n"
|
78
|
-
print_task(child, (tab+@one_tab), '')
|
79
|
-
end
|
80
|
-
@rakefile.print "\n#{tab}}"
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
xml.elements.each("/project/*") do |node|
|
85
|
-
if node.name != 'target'
|
86
|
-
print_task(node, '', '@ant.')
|
87
|
-
@rakefile.print "\n\n"
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
xml.elements.each("/project/target") do |node|
|
92
|
-
|
93
|
-
task = "\ntask " + create_symbol(node.attributes['name']) +
|
94
|
-
" => [" + create_symbol(node.attributes['depends']) + "] do\n"
|
95
|
-
|
96
|
-
@rakefile.print task
|
97
|
-
|
98
|
-
node.elements.each do |child|
|
99
|
-
print_task(child, @one_tab, '@ant.')
|
100
|
-
@rakefile.print "\n"
|
101
|
-
end
|
102
|
-
@rakefile.print "end\n"
|
103
|
-
end
|
104
|
-
|
data/lib/rakefile.rb
DELETED
@@ -1,101 +0,0 @@
|
|
1
|
-
require 'antwrap.rb'
|
2
|
-
|
3
|
-
module Raven
|
4
|
-
|
5
|
-
# The AntBuilderTask lets you execute Ant tasks directly from
|
6
|
-
# your rakefile. For example:
|
7
|
-
#
|
8
|
-
# ant 'runant' do
|
9
|
-
# echo(:text => "Using echo Ant task.")
|
10
|
-
# end
|
11
|
-
#
|
12
|
-
# This task is different from other Raven tasks because its
|
13
|
-
# body (or block if you prefer) isn't executed by Rake but
|
14
|
-
# within the Ant interpreter (AntBuilder). Therefore the
|
15
|
-
# task object isn't available within the code block as with
|
16
|
-
# other tasks.
|
17
|
-
#
|
18
|
-
# For more information about the syntax to use to call Ant
|
19
|
-
# tasks see http://antbuilder.rubyforge.org/
|
20
|
-
class AntBuilderTask < Rake::Task
|
21
|
-
attr_writer :body
|
22
|
-
|
23
|
-
def execute
|
24
|
-
super
|
25
|
-
current_dir = application.original_dir()
|
26
|
-
ant_project = AntProject.new({:name=>"testProject", :basedir=>current_dir, :declarative=>true,
|
27
|
-
:logger=>Logger.new(STDOUT), :loglevel=>Logger::ERROR})
|
28
|
-
ant_project.instance_eval(&@body)
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
def ant(args, &block)
|
34
|
-
ant_task = Raven::AntBuilderTask.define_task(args)
|
35
|
-
ant_task.body = block
|
36
|
-
end
|
37
|
-
|
38
|
-
ant 'runant' do
|
39
|
-
mkdir(:dir => 'foo')
|
40
|
-
echo(:message => "Using echo Ant task.")
|
41
|
-
echo(:pcdata => "Using echo Ant task.")
|
42
|
-
end
|
43
|
-
|
44
|
-
ant :ant_echo do
|
45
|
-
echo(:message => "Calling Ant <echo> task")
|
46
|
-
end
|
47
|
-
|
48
|
-
ant 'antcontrib' do
|
49
|
-
taskdef(:resource => "net/sf/antcontrib/antlib.xml")
|
50
|
-
|
51
|
-
property(:name => "bar", :value => "bar")
|
52
|
-
_if(){
|
53
|
-
equals(:arg1 => "${bar}", :arg2 => "bar")
|
54
|
-
_then(){
|
55
|
-
echo(:message => "if 1 is equal")
|
56
|
-
}
|
57
|
-
_else(){
|
58
|
-
echo(:message => "if 1 is not equal")
|
59
|
-
}
|
60
|
-
}
|
61
|
-
|
62
|
-
property(:name => "baz", :value => "foo")
|
63
|
-
_if(){
|
64
|
-
equals(:arg1 => "${baz}", :arg2 => "bar")
|
65
|
-
_then(){
|
66
|
-
echo(:message => "if 2 is equal")
|
67
|
-
}
|
68
|
-
_else(){
|
69
|
-
echo(:message => "if 2 is not equal")
|
70
|
-
}
|
71
|
-
}
|
72
|
-
end
|
73
|
-
|
74
|
-
ant 'macrodef' do
|
75
|
-
dir = 'foo'
|
76
|
-
|
77
|
-
assert_absent dir
|
78
|
-
|
79
|
-
macrodef(:name => 'testmacrodef'){
|
80
|
-
attribute(:name => 'destination')
|
81
|
-
sequential(){
|
82
|
-
echo(:message => "Creating @{destination}")
|
83
|
-
_mkdir(:dir => "@{destination}")
|
84
|
-
}
|
85
|
-
}
|
86
|
-
testmacrodef(:destination => dir)
|
87
|
-
assert_exists dir
|
88
|
-
|
89
|
-
puts "Cleaning up and deleting #{dir}"
|
90
|
-
|
91
|
-
Dir.delete dir
|
92
|
-
|
93
|
-
end
|
94
|
-
|
95
|
-
def assert_exists(file_path)
|
96
|
-
puts "Does not exist[#{file_path}]" if !File.exists?(file_path)
|
97
|
-
end
|
98
|
-
|
99
|
-
def assert_absent(file_path)
|
100
|
-
puts "Should not exist[#{file_path}]" if File.exists?(file_path)
|
101
|
-
end
|