filament 0.2.3 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/CHANGELOG +26 -0
  2. data/lib/filament/os.rb +77 -0
  3. data/lib/filament/package.rb +76 -26
  4. data/lib/filament/platform.rb +81 -78
  5. data/lib/filament/target.rb +50 -11
  6. data/lib/filament/util/filelist2.rb +10 -2
  7. data/lib/filament/util/fileutils.rb +1 -1
  8. data/lib/filament.rb +48 -24
  9. data/plugins/00util/lib/filament/plugins/util.rb +7 -7
  10. data/plugins/01java/lib/filament/java/mixins/classpath.rb +11 -0
  11. data/plugins/01java/lib/filament/java/tools/compile.rb +3 -1
  12. data/plugins/01java/lib/filament/java/tools/execute.rb +3 -1
  13. data/plugins/01java/lib/filament/java/tools/jar.rb +16 -12
  14. data/plugins/01java/lib/filament/java/tools/proguard.rb +2 -0
  15. data/plugins/01java/lib/filament/java/tools.rb +18 -18
  16. data/plugins/01java/lib/filament/plugins/java.rb +1 -1
  17. data/plugins/02javame/lib/filament/javame/library.rb +79 -16
  18. data/plugins/02javame/lib/filament/javame/suite.rb +75 -16
  19. data/plugins/02javame/lib/filament/javame/tasks/library_task.rb +190 -0
  20. data/plugins/02javame/lib/filament/javame/tools/emulator.rb +1 -1
  21. data/plugins/02javame/lib/filament/javame/tools/external/mpp_sdk.rb +0 -1
  22. data/plugins/02javame/lib/filament/javame/tools/external/wtk.rb +0 -1
  23. data/plugins/02javame/lib/filament/javame/{platform.rb → tools/platform.rb} +6 -5
  24. data/plugins/02javame/lib/filament/javame/tools/preverifier.rb +1 -1
  25. data/plugins/02javame/lib/filament/javame/tools.rb +1 -1
  26. data/plugins/02javame/lib/init.rb +6 -19
  27. data/plugins/04spin/lib/filament/spin/sji.rb +36 -0
  28. data/plugins/04spin/lib/filament/spin/tasks/sji_task.rb +86 -0
  29. data/plugins/04spin/lib/init.rb +4 -0
  30. data/plugins/04spin/lib/spin/sji.rb +339 -0
  31. data/plugins/05push/lib/filament/plugins/push.rb +3 -3
  32. data/plugins/10svn/lib/filament/plugins/svn.rb +3 -3
  33. data/plugins/10svn/lib/filament/scm/svn.rb +7 -13
  34. data/plugins/10svn/lib/init.rb +1 -1
  35. data/plugins/11http/lib/filament/plugins/http.rb +6 -0
  36. data/plugins/11http/lib/filament/scm/http.rb +67 -0
  37. data/plugins/11http/lib/init.rb +5 -0
  38. metadata +34 -8
  39. data/lib/filament/artifact.rb +0 -49
  40. data/plugins/01java/lib/filament/java/mixins/java_mixin.rb +0 -19
  41. data/plugins/02javame/lib/filament/javame/mixins/library_mixin.rb +0 -181
  42. data/plugins/02javame/lib/filament/javame/mixins/suite_mixin.rb +0 -114
@@ -0,0 +1,339 @@
1
+ require 'erb'
2
+ require 'pathname'
3
+ require 'fileutils'
4
+
5
+ module Spin
6
+ class SpinJavaInterface
7
+ def initialize
8
+ @prototypes = {}
9
+ @anonymous_prototypes = []
10
+ end
11
+
12
+ def prototypes
13
+ return @prototypes.values + @anonymous_prototypes
14
+ end
15
+
16
+ def prototype(name=nil, *args, &block)
17
+ if name.nil?
18
+ @anonymous_prototypes << p = Prototype.new(name, *args)
19
+ else
20
+ p = @prototypes[name] ||= Prototype.new(name, *args)
21
+ end
22
+
23
+ p.instance_eval(&block)
24
+ end
25
+
26
+ def load(path)
27
+ instance_eval(Pathname.new(path).read, path)
28
+ end
29
+ end
30
+
31
+ class Prototype
32
+ attr_accessor2 :java_type, :java_imports
33
+
34
+ attr_reader :java_bindings, :name, :package
35
+
36
+ def initialize(name)
37
+ @@id ||= 0
38
+ @id = @@id
39
+ @@id += 1
40
+
41
+ if name.nil?
42
+ @name = "Anon#{@id}"
43
+ @anonymous = true
44
+ else
45
+ @name = name
46
+ @anonymous = false
47
+ end
48
+
49
+ @package = ''
50
+ @java_bindings = []
51
+ @java_imports = []
52
+ @java_type = nil
53
+ end
54
+
55
+ def java_import(*args)
56
+ @java_imports += args
57
+ end
58
+
59
+ def anonymous?
60
+ return @anonymous
61
+ end
62
+
63
+ def bind(*args, &block)
64
+ b = JavaMethodBinding.new(*args)
65
+
66
+ b.java_type(@java_type) unless @java_type.nil?
67
+
68
+ b.instance_eval(&block)
69
+ @java_bindings << b
70
+ end
71
+ end
72
+
73
+ class JavaMethodBinding
74
+ attr_accessor2 :spin_method, :java_type, :java_method, :java_params, :java_return_type,
75
+ :spin_doc, :java_code, :is_special_form
76
+
77
+ attr_reader :id
78
+
79
+ def initialize(spin_method)
80
+ @@id ||= -100
81
+ @id = @@id
82
+ @@id += -1
83
+
84
+ @spin_method = spin_method
85
+ @java_return_type = nil
86
+ @spin_doc = ''
87
+ @java_code = ''
88
+ @is_special_form = false
89
+ @min_args = nil
90
+ @max_args = nil
91
+ end
92
+
93
+ def void?
94
+ @java_return_type.to_s == 'void'
95
+ end
96
+
97
+ def java_impl_delegate
98
+ return "sji_#{id.abs}"
99
+ end
100
+
101
+ def min_args
102
+ return @min_args || @java_params.length
103
+ end
104
+
105
+ def max_args
106
+ return @max_args || @java_params.length
107
+ end
108
+
109
+
110
+ def java_method_call
111
+ arguments = []
112
+
113
+ java_params.each_with_index do |p, i|
114
+ h = JAVA_PRIMITIVES[p]
115
+ if h.nil?
116
+ cast_to = p
117
+ unbox = ''
118
+ else
119
+ cast_to = h[:classname]
120
+ unbox = h[:unbox]
121
+ end
122
+
123
+ arguments << "((#{cast_to}) arguments.elementAt(#{i}))#{unbox}"
124
+ end
125
+
126
+ if java_method == :constructor
127
+ mc = "new #{java_type}"
128
+ else
129
+ mc = "((#{java_type}) target).#{java_method}"
130
+ end
131
+ mc << "(#{arguments.join(', ')})"
132
+
133
+ h = JAVA_PRIMITIVES[java_return_type]
134
+ if h.nil?
135
+ return mc
136
+ else
137
+ return h[:box].gsub(/%/, mc)
138
+ end
139
+ end
140
+
141
+ def java_body
142
+ s = "#{java_code}\n"
143
+
144
+ if void?
145
+ s << "#{java_method_call};"
146
+ s << "return null;"
147
+ else
148
+ s << "return #{java_method_call};"
149
+ end
150
+
151
+ return s.gsub(/^/, ' ')
152
+ end
153
+
154
+ def num_args(min, max=nil)
155
+ if max.nil?
156
+ @min_args = min
157
+ @max_args = min
158
+ else
159
+ min = normalize(min)
160
+ max = normalize(max)
161
+
162
+ raise "min cannot be greater than max (#{min} > #{max})" if min > max
163
+
164
+ @min_args = min
165
+ @max_args = max
166
+ end
167
+ end
168
+
169
+ def verify
170
+ raise 'spin_method must be set' if spin_method.nil?
171
+ raise 'java_type must be set' if java_type.nil?
172
+ raise 'java_method must be set' if java_method.nil?
173
+ raise 'id must be set' if id.nil?
174
+ end
175
+
176
+ private
177
+ def normalize(n)
178
+ return n == :any ? 4_294_967_295 : n
179
+ end
180
+ end
181
+
182
+ ######################################
183
+
184
+ JAVA_PRIMITIVES = {}
185
+
186
+ def self.java_primitive(name, classname, unbox, box)
187
+ h = JAVA_PRIMITIVES[name] ||= {}
188
+ h[:classname] = classname
189
+ h[:unbox] = unbox
190
+ h[:box] = box
191
+ end
192
+
193
+ java_primitive 'int', 'Integer', '.intValue()', 'new Integer(%)'
194
+ java_primitive 'double', 'Double', '.doubleValue()', 'new Double(%)'
195
+ java_primitive 'boolean', 'Boolean', '.booleanValue()', '(%) ? SpinUtil.TRUE : SpinUtil.FALSE'
196
+ java_primitive 'float', 'Float', '.floatValue()', 'new Float(%)'
197
+ java_primitive 'char', 'Character', '.charValue()', 'new Character(%)'
198
+ java_primitive 'byte', 'Byte', '.byteValue()', 'new Byte(%)'
199
+
200
+ class JavaMethodImpl
201
+ attr_accessor :java_impl_class_name, :java_impl_package,
202
+ :java_type_name, :spin_package, :spin_prototype_name
203
+ attr_reader :methods, :java_imports
204
+
205
+ def initialize(prototype)
206
+ @methods = []
207
+ @java_imports = []
208
+
209
+ @java_impl_class_name = "SJI#{prototype.name.capitalize}"
210
+
211
+ @java_type_name = prototype.java_type
212
+ @spin_package = prototype.package
213
+ @spin_prototype_name = prototype.name
214
+
215
+ @java_imports.push(*prototype.java_imports)
216
+
217
+ prototype.java_bindings.each do |binding|
218
+ @methods << binding
219
+ end
220
+ end
221
+
222
+ def verify
223
+ raise 'java_impl_class_name' if java_impl_class_name.nil?
224
+ raise 'java_impl_package must be set' if java_impl_package.nil?
225
+
226
+ raise 'methods cannot be empty' if methods.empty?
227
+
228
+ methods.each {|method| method.verify}
229
+ end
230
+
231
+ def full_class_name
232
+ return "#{java_impl_package}.#{java_impl_class_name}"
233
+ end
234
+
235
+ def spin
236
+ verify
237
+ rspin = ERB.new(spin_template, 0, '%<>')
238
+ return rspin.result(binding)
239
+ end
240
+
241
+ def java
242
+ verify
243
+ rjava = ERB.new(java_template, 0, '%<>')
244
+ return rjava.result(binding)
245
+ end
246
+
247
+ def write_spin(base)
248
+ FileUtils.mkdir_p(spin_dir(base))
249
+
250
+ open(spin_file(base), 'w') {|io| io.write(spin)}
251
+ end
252
+
253
+ def write_java(base)
254
+ FileUtils.mkdir_p(java_dir(base))
255
+
256
+ open(java_file(base), 'w') {|io| io.write(java)}
257
+ end
258
+
259
+ def java_dir(base)
260
+ verify
261
+ return "#{base}/#{java_impl_package.gsub(/\./, '/')}"
262
+ end
263
+
264
+ def spin_dir(base)
265
+ verify
266
+ return "#{base}/#{spin_package}"
267
+ end
268
+
269
+ def java_file(base)
270
+ return "#{java_dir(base)}/#{java_impl_class_name}.java"
271
+ end
272
+
273
+ def spin_file(base)
274
+ return "#{spin_dir(base)}/#{spin_prototype_name.downcase}.spin"
275
+ end
276
+
277
+ def spin_template
278
+ return %q{
279
+ % for method in methods
280
+ # <%=method.spin_doc%>
281
+
282
+ % end
283
+ }.gsub(/^ /, '')
284
+ end
285
+
286
+ def java_template
287
+ return %q{package <%= java_impl_package %>;
288
+
289
+ % for import in java_imports
290
+ import <%= import %>;
291
+ % end
292
+ import com.software4i.spin.object.ISpinObject;
293
+ import com.software4i.spin.interpreter.ISpinObjectManager;
294
+ import com.software4i.spin.interpreter.Interpreter;
295
+ import com.software4i.spin.java.AbstractJavaMethodImpl;
296
+ import com.software4i.spin.java.IJavaMethodImpl;
297
+ import com.software4i.spin.util.IList;
298
+
299
+ public class <%=java_impl_class_name%> extends AbstractJavaMethodImpl implements IJavaMethodImpl {
300
+ public <%=java_impl_class_name%>() {
301
+ super("<%=java_type_name%>");
302
+ }
303
+
304
+ public Object applyNative(
305
+ Object target,
306
+ int id,
307
+ Interpreter interpreter,
308
+ Object caller,
309
+ IList arguments) {
310
+
311
+ ISpinObjectManager manager = interpreter.getSpinObjectManager();
312
+ ISpinObject spinObject = manager.spinObjectFor(target);
313
+
314
+ switch (id) {
315
+ <% for m in methods %>
316
+ case <%= m.id %>:
317
+ return <%=m.java_impl_delegate%>(interpreter, target, caller, arguments);
318
+ <% end %>
319
+ }
320
+
321
+ return nativeMissing(id);
322
+ }
323
+
324
+ // name, specialForm, [MIN/MAX/EXACT], numArgs
325
+ public void createMethods() {
326
+ <% for m in methods %> createMethod(<%=m.id%>, "<%=m.spin_method%>", <%=m.is_special_form ? 'true' : 'false'%>, <%=m.min_args%>, <%=m.max_args%>);
327
+ <% end %>
328
+ }
329
+
330
+ <% for m in methods %>
331
+ private Object <%=m.java_impl_delegate%>(Interpreter interpreter, Object target, Object caller, IList arguments) {
332
+ <%= m.java_body %>
333
+ }
334
+ <% end %>
335
+ }
336
+ }.gsub(/^ /, '')
337
+ end
338
+ end
339
+ end
@@ -1,15 +1,15 @@
1
1
  require 'filament/plugin'
2
2
 
3
3
  module Filament::Plugins
4
- class Push < Plugin
4
+ class Push < Filament::Plugin
5
5
  def initialize(app)
6
6
  app.subcommand('push', "Pushes deployables to selected PUSH_CONDUIT") do |args|
7
- targets = TargetList.new(*args)
7
+ targets = Filament::TargetList.new(*args)
8
8
  push_conduit = ENV['PUSH_CONDUIT'] || :Filter
9
9
 
10
10
  targets.each do |target|
11
11
  target.build do
12
- klass = eval(push_conduit.to_s + 'Conduit')
12
+ klass = Filament::Push::Conduits.module_eval(push_conduit.to_s + 'Conduit')
13
13
  conduit = klass.new
14
14
  conduit.push_targets(targets)
15
15
  end
@@ -1,17 +1,17 @@
1
1
  require 'svn'
2
2
 
3
3
  module Filament::Plugins
4
- class SvnPlugin < Plugin
4
+ class SvnPlugin < Filament::Plugin
5
5
  def initialize(app)
6
6
  app.subcommand('update', "Updates given package and subpackages") do |args|
7
- packages = PackageList.new(*args)
7
+ packages = Filament::PackageList.new(*args)
8
8
  packages.each do |package|
9
9
  package.scm.update
10
10
  end
11
11
  end
12
12
 
13
13
  app.subcommand('status', "Shows status given of package and subpackages") do |args|
14
- packages = PackageList.new(*args)
14
+ packages = Filament::PackageList.new(*args)
15
15
  packages.each do |package|
16
16
  package.scm.status
17
17
  end
@@ -1,10 +1,10 @@
1
1
  require 'filament/package'
2
2
 
3
- module Filament::Scm
4
- class SvnPackageScm < PackageScm
3
+ module Filament::SCM
4
+ class SVN < Base
5
5
  # returns true if this package is under svn control
6
- def self.applies?(package)
7
- p = package.realpath + '.svn'
6
+ def self.applies?(realpath)
7
+ p = realpath + '.svn'
8
8
  return p.exist?
9
9
  end
10
10
 
@@ -31,26 +31,20 @@ module Filament::Scm
31
31
  # if this package is under version control, it will update it
32
32
  # if this package has subpackages, it will update them
33
33
  def update
34
- puts @package.full_name
35
- system("svn update #{@package.realpath}")
36
- super
34
+ system("svn update #{@realpath}")
37
35
  end
38
36
 
39
37
  # if this package is under version control, it will print its status
40
38
  # if this package has subpackages it will print their status
41
39
  def status
42
- puts @package.full_name
43
- system("svn status #{@package.realpath}")
44
- super
40
+ system("svn status #{@realpath}")
45
41
  end
46
42
 
47
43
  # if this package is under version control, it will commit it with the
48
44
  # given msg
49
45
  # if this package has subpackages it will commit them
50
46
  def commit(msg)
51
- puts @package.full_name
52
- system("svn ci -m '#{msg.gsub(/"/,"\\\"")}'")
53
- super(msg)
47
+ system("svn ci -m '#{msg.gsub(/"/,"\\\"")}' #{@realpath}")
54
48
  end
55
49
 
56
50
  def svn_url
@@ -2,4 +2,4 @@ require 'filament/plugins/svn'
2
2
  require 'filament/scm/svn'
3
3
 
4
4
  Filament::Application::plugin(Filament::Plugins::SvnPlugin)
5
- Filament::Package::scm(Filament::Scm::SvnPackageScm)
5
+ Filament::Package::scm(Filament::SCM::SVN)
@@ -0,0 +1,6 @@
1
+ module Filament::Plugins
2
+ class HTTPPlugin < Filament::Plugin
3
+ def initialize(app)
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,67 @@
1
+ require 'uri'
2
+ require 'open-uri'
3
+ require 'pathname'
4
+ require 'fileutils'
5
+ require 'rubygems'
6
+ require 'mechanize'
7
+
8
+ require 'filament/package'
9
+
10
+ module Filament::SCM
11
+ class HTTPCrawl < Base
12
+
13
+ def self.scm_type
14
+ return 'http/crawl'
15
+ end
16
+
17
+ # returns true if this package is under svn control
18
+ # def self.applies?(package)
19
+ # return package.scm_type == scm_type
20
+ # end
21
+
22
+ def initialize(realpath, url)
23
+ super(realpath)
24
+ @url = url
25
+ end
26
+
27
+ # downloads a particular url to a given local_path
28
+ def download_url(url, local_path)
29
+ begin
30
+ File.open(local_path, 'w') do |f|
31
+ data = open(url) { |io| io.read }
32
+ f.write(data)
33
+ end
34
+ rescue Exception => ex
35
+ puts "!!! Error Downloading #{url}: " + ex.message
36
+ end
37
+ end
38
+
39
+ # returns the absolute url for a given cur_page
40
+ def to_absolute_uri(url, cur_page)
41
+ if url.is_a?(URI)
42
+ uri = url
43
+ else
44
+ uri = URI.parse(url)
45
+ end
46
+
47
+ # construct an absolute uri
48
+ if uri.relative?
49
+ uri = cur_page.uri + url
50
+ end
51
+
52
+ return uri
53
+ end
54
+
55
+ def update
56
+ agent = WWW::Mechanize.new #{ |a| a.log = Logger.new(STDERR) }
57
+ page = agent.get(@url)
58
+
59
+ page.links.each do |link|
60
+ url = to_absolute_uri(link.href, page)
61
+ local_path = @realpath + Pathname.new(link.href).basename
62
+ puts "Downloading #{url} to #{local_path} .."
63
+ download_url(url, local_path)
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,5 @@
1
+ require 'filament/plugins/http'
2
+ require 'filament/scm/http'
3
+
4
+ Filament::Application::plugin(Filament::Plugins::HTTPPlugin)
5
+ Filament::Package::scm(Filament::SCM::HTTPCrawl)
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.8.11
3
3
  specification_version: 1
4
4
  name: filament
5
5
  version: !ruby/object:Gem::Version
6
- version: 0.2.3
7
- date: 2006-03-18 00:00:00 -05:00
6
+ version: 0.3.0
7
+ date: 2006-04-03 00:00:00 -04:00
8
8
  summary: A flexible dependency-based build platform based on Rake
9
9
  require_paths:
10
10
  - lib
@@ -36,8 +36,8 @@ files:
36
36
  - lib/filament
37
37
  - lib/filament.rb
38
38
  - lib/inflector.rb
39
- - lib/filament/artifact.rb
40
39
  - lib/filament/context.rb
40
+ - lib/filament/os.rb
41
41
  - lib/filament/package.rb
42
42
  - lib/filament/platform.rb
43
43
  - lib/filament/plugin.rb
@@ -51,8 +51,10 @@ files:
51
51
  - plugins/00util
52
52
  - plugins/01java
53
53
  - plugins/02javame
54
+ - plugins/04spin
54
55
  - plugins/05push
55
56
  - plugins/10svn
57
+ - plugins/11http
56
58
  - plugins/00util/lib
57
59
  - plugins/00util/lib/filament
58
60
  - plugins/00util/lib/init.rb
@@ -66,7 +68,7 @@ files:
66
68
  - plugins/01java/lib/filament/java/mixins
67
69
  - plugins/01java/lib/filament/java/tools
68
70
  - plugins/01java/lib/filament/java/tools.rb
69
- - plugins/01java/lib/filament/java/mixins/java_mixin.rb
71
+ - plugins/01java/lib/filament/java/mixins/classpath.rb
70
72
  - plugins/01java/lib/filament/java/tools/compile.rb
71
73
  - plugins/01java/lib/filament/java/tools/execute.rb
72
74
  - plugins/01java/lib/filament/java/tools/jar.rb
@@ -77,20 +79,28 @@ files:
77
79
  - plugins/02javame/lib/init.rb
78
80
  - plugins/02javame/lib/filament/javame
79
81
  - plugins/02javame/lib/filament/javame/library.rb
80
- - plugins/02javame/lib/filament/javame/mixins
81
- - plugins/02javame/lib/filament/javame/platform.rb
82
82
  - plugins/02javame/lib/filament/javame/suite.rb
83
+ - plugins/02javame/lib/filament/javame/tasks
83
84
  - plugins/02javame/lib/filament/javame/tasks.rb
84
85
  - plugins/02javame/lib/filament/javame/tools
85
86
  - plugins/02javame/lib/filament/javame/tools.rb
86
- - plugins/02javame/lib/filament/javame/mixins/library_mixin.rb
87
- - plugins/02javame/lib/filament/javame/mixins/suite_mixin.rb
87
+ - plugins/02javame/lib/filament/javame/tasks/library_task.rb
88
88
  - plugins/02javame/lib/filament/javame/tools/descriptor.rb
89
89
  - plugins/02javame/lib/filament/javame/tools/emulator.rb
90
90
  - plugins/02javame/lib/filament/javame/tools/external
91
+ - plugins/02javame/lib/filament/javame/tools/platform.rb
91
92
  - plugins/02javame/lib/filament/javame/tools/preverifier.rb
92
93
  - plugins/02javame/lib/filament/javame/tools/external/mpp_sdk.rb
93
94
  - plugins/02javame/lib/filament/javame/tools/external/wtk.rb
95
+ - plugins/04spin/lib
96
+ - plugins/04spin/lib/filament
97
+ - plugins/04spin/lib/init.rb
98
+ - plugins/04spin/lib/spin
99
+ - plugins/04spin/lib/filament/spin
100
+ - plugins/04spin/lib/filament/spin/sji.rb
101
+ - plugins/04spin/lib/filament/spin/tasks
102
+ - plugins/04spin/lib/filament/spin/tasks/sji_task.rb
103
+ - plugins/04spin/lib/spin/sji.rb
94
104
  - plugins/05push/lib
95
105
  - plugins/05push/lib/bluetooth.rb
96
106
  - plugins/05push/lib/filament
@@ -111,6 +121,13 @@ files:
111
121
  - plugins/10svn/lib/filament/scm
112
122
  - plugins/10svn/lib/filament/plugins/svn.rb
113
123
  - plugins/10svn/lib/filament/scm/svn.rb
124
+ - plugins/11http/lib
125
+ - plugins/11http/lib/filament
126
+ - plugins/11http/lib/init.rb
127
+ - plugins/11http/lib/filament/plugins
128
+ - plugins/11http/lib/filament/scm
129
+ - plugins/11http/lib/filament/plugins/http.rb
130
+ - plugins/11http/lib/filament/scm/http.rb
114
131
  - README
115
132
  - CHANGELOG
116
133
  test_files: []
@@ -154,3 +171,12 @@ dependencies:
154
171
  - !ruby/object:Gem::Version
155
172
  version: 1.2.2
156
173
  version:
174
+ - !ruby/object:Gem::Dependency
175
+ name: mechanize
176
+ version_requirement:
177
+ version_requirements: !ruby/object:Gem::Version::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: 0.3.1
182
+ version:
@@ -1,49 +0,0 @@
1
- require 'filament/package'
2
- require 'filament/target'
3
-
4
- module Filament
5
- class Artifact < Target
6
- attr_reader :directories, :name
7
- attr_accessor :weak_deps, :deps, :package
8
-
9
- def initialize(name, &block)
10
- @directories = []
11
- @tasks = []
12
-
13
- super(:name => name) do
14
- build_artifact
15
- end
16
-
17
- init
18
- instance_eval(&block)
19
- end
20
-
21
- def init; end
22
-
23
- def working_dir
24
- return "#{$context[:working_dir]}/#{package.path}/#{name}"
25
- end
26
-
27
- def output_dir
28
- return "#{$context[:output_dir]}/#{package.path}"
29
- end
30
-
31
- alias :orig_directory :directory
32
- def directory(path, is_working_dir=true)
33
- path = "#{working_dir}/#{path}" if is_working_dir
34
- @directories << path
35
- orig_directory(path)
36
- return path
37
- end
38
-
39
- def invoke_tasks
40
- # make output directory
41
- mkdir_p(output_dir) unless File.exist?(output_dir)
42
-
43
- # invoke them all
44
- @tasks.each do |t|
45
- t.invoke
46
- end
47
- end
48
- end
49
- end
@@ -1,19 +0,0 @@
1
- module Filament::Java::Mixins
2
- module JavaMixin
3
- def init_java
4
- end
5
-
6
- def classpath(target)
7
- cp = @classpath
8
- all_deps = TargetList.new
9
- all_deps << target.flattened_deps
10
- all_deps << target.weak_deps
11
- all_deps.each do |d|
12
- jar = d[:jar]
13
- # only add the jar if this dependecy has one
14
- cp << jar unless jar.nil?
15
- end
16
- return cp
17
- end
18
- end
19
- end