sprout-as3-bundle 0.2.9 → 1.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/sprout/as3/version.rb +3 -3
- data/lib/sprout/as3_tasks.rb +3 -0
- data/lib/sprout/fcsh_lexer.rb +144 -0
- data/lib/sprout/fcsh_service.rb +111 -0
- data/lib/sprout/fcsh_socket.rb +36 -0
- data/lib/sprout/generators/project/project_generator.rb +1 -0
- data/lib/sprout/generators/project/templates/MainClass.as +2 -1
- data/lib/sprout/generators/project/templates/XMLRunner.as +17 -0
- data/lib/sprout/generators/project/templates/rakefile.rb +4 -0
- data/lib/sprout/generators/test/templates/TestCase.as +2 -2
- data/lib/sprout/tasks/adl_documentation.rb +79 -45
- data/lib/sprout/tasks/adt_documentation.rb +45 -79
- data/lib/sprout/tasks/{asdoc_rdoc.rb → asdoc_documentation.rb} +0 -0
- data/lib/sprout/tasks/asdoc_task.rb +33 -2
- data/lib/sprout/tasks/fcsh.rb +10 -0
- data/lib/sprout/tasks/fdb_task.rb +226 -14
- data/lib/sprout/tasks/mxmlc_ci.rb +62 -0
- data/lib/sprout/tasks/mxmlc_helper.rb +18 -3
- data/lib/sprout/tasks/mxmlc_task.rb +21 -6
- data/lib/sprout/tasks/mxmlc_unit.rb +1 -1
- data/rakefile.rb +2 -1
- metadata +21 -11
- data/lib/sprout/tasks/adl_rdoc.rb +0 -88
- data/lib/sprout/tasks/adt_cert_rdoc.rb +0 -44
- data/lib/sprout/tasks/adt_rdoc.rb +0 -54
- data/lib/sprout/tasks/compc_rdoc.rb +0 -606
- data/lib/sprout/tasks/fcsh_task.rb +0 -12
- data/lib/sprout/tasks/mxmlc_rdoc.rb +0 -547
@@ -227,7 +227,13 @@ EOF
|
|
227
227
|
end
|
228
228
|
end
|
229
229
|
|
230
|
+
def exclude_expressions
|
231
|
+
@exclude_expressions ||= []
|
232
|
+
end
|
233
|
+
|
230
234
|
def define # :nodoc:
|
235
|
+
apply_exclusions_from_expression unless @exclude_expressions.nil?
|
236
|
+
|
231
237
|
super
|
232
238
|
validate_templates
|
233
239
|
CLEAN.add(output)
|
@@ -248,7 +254,7 @@ EOF
|
|
248
254
|
end
|
249
255
|
end
|
250
256
|
end
|
251
|
-
|
257
|
+
|
252
258
|
protected
|
253
259
|
|
254
260
|
def validate_templates
|
@@ -258,7 +264,7 @@ EOF
|
|
258
264
|
templates_path << templates_dir
|
259
265
|
end
|
260
266
|
end
|
261
|
-
|
267
|
+
|
262
268
|
def execute(*args)
|
263
269
|
update_helper_mode
|
264
270
|
begin
|
@@ -291,6 +297,31 @@ EOF
|
|
291
297
|
end
|
292
298
|
end
|
293
299
|
|
300
|
+
# Requires that @exclude_expressions is not nil.
|
301
|
+
def apply_exclusions_from_expression
|
302
|
+
FileList[@exclude_expressions].each do |file_path|
|
303
|
+
import_file = remove_source_path_from_file_path(file_path) || file_path
|
304
|
+
import_class = filename_to_import_class(import_file)
|
305
|
+
|
306
|
+
exclude_classes << import_class unless import_class.nil?
|
307
|
+
end
|
308
|
+
end
|
309
|
+
|
310
|
+
def remove_source_path_from_file_path(file)
|
311
|
+
source_path.each do |source_dir|
|
312
|
+
import_file = file.sub(Regexp.new("^#{source_dir}"),"")
|
313
|
+
return import_file if import_file != file
|
314
|
+
end
|
315
|
+
|
316
|
+
return file
|
317
|
+
end
|
318
|
+
|
319
|
+
def filename_to_import_class(filename)
|
320
|
+
name = filename.scan(/\w+/)
|
321
|
+
# Ignore the AS file extension.
|
322
|
+
name[0..-2].join('.') unless name[-1] != 'as'
|
323
|
+
end
|
324
|
+
|
294
325
|
end
|
295
326
|
end
|
296
327
|
|
@@ -25,29 +25,132 @@ module Sprout #:nodoc:
|
|
25
25
|
# end
|
26
26
|
#
|
27
27
|
# You can also point the FDBTask at HTML pages. These pages will be
|
28
|
-
# launched in your default
|
28
|
+
# launched in your default browser. You will need to manually install
|
29
29
|
# a debug Flash Player in that particular browser.
|
30
|
-
#
|
30
|
+
#
|
31
|
+
# To use a browser instead of the desktop Flash Player, simply point the
|
31
32
|
# file argument at an HTML document or remote URL. The SWF file loaded
|
32
|
-
# must be compiled using the -debug flag
|
33
|
-
# debugger.
|
33
|
+
# must be compiled using the -debug flag, and executed in a debug Flash Player
|
34
|
+
# in order to connect to properly connect to the debugger.
|
34
35
|
# fdb :debug do |t|
|
35
36
|
# t.file = 'bin/SomeProject-debug.html'
|
36
37
|
# t.run
|
37
38
|
# t.continue
|
38
39
|
# end
|
39
40
|
#
|
41
|
+
# .h3 Continuous Integration
|
42
|
+
#
|
43
|
+
# The FDBTask is also the only effective way to execute SWF content
|
44
|
+
# in front of a CI (continuous integration) tool like Cruise Control.
|
45
|
+
# The biggest problem facing SWF execution for CI is uncaught
|
46
|
+
# runtime exceptions. The debug Flash Player throws uncaught exceptions
|
47
|
+
# up to the operating system GUI layer where a user must manually dismiss
|
48
|
+
# a dialog. In addition to blocking the CI process indefinitely, these
|
49
|
+
# messages are also difficult to capture and log.
|
50
|
+
#
|
51
|
+
# Using Sprouts and the FDBTask, we can capture these messages along
|
52
|
+
# with additonal information (e.g. local variables and a complete stack trace)
|
53
|
+
# about the state of the SWF file, and then cleanly exit the Flash Player
|
54
|
+
# and log this information.
|
55
|
+
#
|
56
|
+
# The FDBTask has also been configured to work with the ASUnit XMLPrinter
|
57
|
+
# so that an XML artifact is created and written to disk that includes
|
58
|
+
# the results of running your test suites.
|
59
|
+
#
|
60
|
+
# To use FDB with a CI tool do the following:
|
61
|
+
#
|
62
|
+
# 1) Create a new base runner class (we usually name this XMLRunner.as)
|
63
|
+
# and make it look like the following:
|
64
|
+
#
|
65
|
+
# package {
|
66
|
+
# import asunit.textui.TestRunner;
|
67
|
+
# import asunit.textui.XMLResultPrinter;
|
68
|
+
#
|
69
|
+
# public class XMLRunner extends TestRunner {
|
70
|
+
#
|
71
|
+
# public function XMLRunner() {
|
72
|
+
# setPrinter(new XMLResultPrinter());
|
73
|
+
# start(AllTests, null, TestRunner.SHOW_TRACE);
|
74
|
+
# }
|
75
|
+
# }
|
76
|
+
# }
|
77
|
+
#
|
78
|
+
# 2) Create a new MXMLCTask to compile the newly created runner.
|
79
|
+
# NOTE: Be sure you set +debug+ to true, otherwise the SWF will
|
80
|
+
# not connect to the debugger properly.
|
81
|
+
#
|
82
|
+
# library :asunit3
|
83
|
+
#
|
84
|
+
# desc 'Compile the CI SWF'
|
85
|
+
# mxmlc 'bin/XMLRunner.swf' => :asunit3 do |t|
|
86
|
+
# t.input = 'src/XMLRunner.as'
|
87
|
+
# t.debug = true
|
88
|
+
# t.source_path << 'test'
|
89
|
+
# # Add additional configuration here.
|
90
|
+
# end
|
91
|
+
#
|
92
|
+
# 3) Create a new FDBTask and set +kill_on_fault+ to true.
|
93
|
+
#
|
94
|
+
# desc 'Execute the test harness for CI'
|
95
|
+
# fdb :cruise do |t|
|
96
|
+
# t.kill_on_fault = true
|
97
|
+
# t.file = 'bin/XMLRunner.swf'
|
98
|
+
# t.run
|
99
|
+
# t.continue
|
100
|
+
# end
|
101
|
+
#
|
102
|
+
# 4) Configure your CI task to call:
|
103
|
+
#
|
104
|
+
# rake cruise
|
105
|
+
#
|
106
|
+
# 5) That's it!
|
107
|
+
#
|
40
108
|
class FDBTask < ToolTask
|
41
|
-
|
42
|
-
|
109
|
+
TEST_RESULT_PRELUDE = '<XMLResultPrinter>'
|
110
|
+
TEST_RESULT_CLOSING = '</XMLResultPrinter>'
|
111
|
+
TEST_RESULT_FILE = 'AsUnitResults.xml'
|
112
|
+
|
113
|
+
# Relative or absolute path to where unit test results
|
114
|
+
# should be written to disk.
|
115
|
+
# This field can be used in conjunction with the AsUnit
|
116
|
+
# XMLResultPrinter which will trace out JUnit style XML
|
117
|
+
# test results.
|
118
|
+
# By telling fdb where to write those test results, it
|
119
|
+
# will scan the trace output stream looking for +test_result_prelude+,
|
120
|
+
# and +test_result_closing+. Once the closing is encountered, the
|
121
|
+
# prelude and closing (and everything in between) will be written
|
122
|
+
# to disk in the file identified by +test_result_file+, and fdb
|
123
|
+
# will be closed down.
|
124
|
+
attr_writer :test_result_file
|
125
|
+
|
126
|
+
# String that indicates the beginning of printable test results
|
127
|
+
# Default value is '<XMLResultPrinter>'
|
128
|
+
attr_writer :test_result_prelude
|
129
|
+
|
130
|
+
# String that indicates the closing of printable test results
|
131
|
+
# Default value is '</XMLResultPrinter>'
|
132
|
+
# See test_result_prelude for more info.
|
133
|
+
attr_writer :test_result_closing
|
134
|
+
|
135
|
+
# Boolean value that tells fdb whether or not it should automatically
|
136
|
+
# shut down when an exception is encountered. This feature is used to
|
137
|
+
# prevent GUI prompts for unhandled exceptions, especially when running
|
138
|
+
# a test harness under a continuous integration tool - like cruise control.
|
139
|
+
# If an exception is encountered, fdb will automatically print the exception,
|
140
|
+
# a full stack trace and all local variables in the function where the failure
|
141
|
+
# occured.
|
142
|
+
attr_writer :kill_on_fault
|
43
143
|
|
44
144
|
def initialize_task # :nodoc:
|
45
145
|
@default_gem_name = 'sprout-flex3sdk-tool'
|
46
146
|
@default_gem_path = 'bin/fdb'
|
147
|
+
@kill_on_fault = false
|
47
148
|
@queue = []
|
48
149
|
end
|
49
150
|
|
50
151
|
def define # :nodoc:
|
152
|
+
super
|
153
|
+
CLEAN.add(test_result_file)
|
51
154
|
self
|
52
155
|
end
|
53
156
|
|
@@ -59,16 +162,35 @@ module Sprout #:nodoc:
|
|
59
162
|
@stdout ||= $stdout
|
60
163
|
end
|
61
164
|
|
165
|
+
def validate_swf(swf)
|
166
|
+
# TODO: Ensure the SWF has been compiled with debugging
|
167
|
+
# turned on.
|
168
|
+
# I believe this will require actually parsing the SWF file and
|
169
|
+
# scanning for the EnableDebugger2 tag.
|
170
|
+
# http://www.adobe.com/devnet/swf/pdf/swf_file_format_spec_v9.pdf
|
171
|
+
end
|
172
|
+
|
62
173
|
def execute(*args) # :nodoc:
|
63
|
-
#
|
174
|
+
# Ensure that if we load a SWF it's been compiled with debugging turned on!
|
175
|
+
file_name = @file
|
176
|
+
|
177
|
+
if(file_name.match(/\.swf$/))
|
178
|
+
validate_swf(file_name)
|
179
|
+
end
|
180
|
+
|
64
181
|
buffer = FDBBuffer.new(get_executable, stdout)
|
182
|
+
buffer.test_result_file = test_result_file
|
183
|
+
buffer.test_result_prelude = test_result_prelude
|
184
|
+
buffer.test_result_closing = test_result_closing
|
185
|
+
buffer.kill_on_fault = kill_on_fault?
|
65
186
|
buffer.wait_for_prompt
|
66
187
|
|
67
188
|
@queue.each do |command|
|
68
189
|
handle_command(buffer, command)
|
69
190
|
end
|
70
191
|
|
71
|
-
buffer.join
|
192
|
+
buffer.join # wait here until the buffer is closed.
|
193
|
+
|
72
194
|
self
|
73
195
|
end
|
74
196
|
|
@@ -95,6 +217,22 @@ module Sprout #:nodoc:
|
|
95
217
|
@queue
|
96
218
|
end
|
97
219
|
|
220
|
+
def kill_on_fault?
|
221
|
+
@kill_on_fault
|
222
|
+
end
|
223
|
+
|
224
|
+
def test_result_file
|
225
|
+
@test_result_file ||= TEST_RESULT_FILE
|
226
|
+
end
|
227
|
+
|
228
|
+
def test_result_prelude
|
229
|
+
@test_result_prelude ||= TEST_RESULT_PRELUDE
|
230
|
+
end
|
231
|
+
|
232
|
+
def test_result_closing
|
233
|
+
@test_result_closing ||= TEST_RESULT_CLOSING
|
234
|
+
end
|
235
|
+
|
98
236
|
# Print backtrace of all stack frames
|
99
237
|
def bt
|
100
238
|
@queue << "bt"
|
@@ -174,6 +312,12 @@ module Sprout #:nodoc:
|
|
174
312
|
def file=(file)
|
175
313
|
@prerequisites << file
|
176
314
|
@queue << "file #{file}"
|
315
|
+
@file = file
|
316
|
+
end
|
317
|
+
|
318
|
+
# alias for self.file=
|
319
|
+
def input=(file)
|
320
|
+
self.file = file
|
177
321
|
end
|
178
322
|
|
179
323
|
# Execute until current function returns
|
@@ -303,7 +447,7 @@ module Sprout #:nodoc:
|
|
303
447
|
@queue << "set #{value}"
|
304
448
|
end
|
305
449
|
|
306
|
-
# Sleep until some 'str' String is sent to the output
|
450
|
+
# Sleep until some 'str' String is sent to the output,
|
307
451
|
def sleep_until(str)
|
308
452
|
@queue << "sleep #{str}"
|
309
453
|
end
|
@@ -347,6 +491,11 @@ module Sprout #:nodoc:
|
|
347
491
|
|
348
492
|
# A buffer that provides clean blocking support for the fdb command shell
|
349
493
|
class FDBBuffer #:nodoc:
|
494
|
+
attr_accessor :test_result_file
|
495
|
+
attr_accessor :test_result_prelude
|
496
|
+
attr_accessor :test_result_closing
|
497
|
+
attr_writer :kill_on_fault
|
498
|
+
|
350
499
|
PLAYER_TERMINATED = 'Player session terminated'
|
351
500
|
EXIT_PROMPT = 'The program is running. Exit anyway? (y or n)'
|
352
501
|
PROMPT = '(fdb) '
|
@@ -363,6 +512,10 @@ module Sprout #:nodoc:
|
|
363
512
|
listen exe
|
364
513
|
end
|
365
514
|
|
515
|
+
def kill_on_fault?
|
516
|
+
@kill_on_fault
|
517
|
+
end
|
518
|
+
|
366
519
|
def user_input
|
367
520
|
@user_input ||= $stdin
|
368
521
|
end
|
@@ -388,6 +541,9 @@ module Sprout #:nodoc:
|
|
388
541
|
$stdout.puts msg
|
389
542
|
end
|
390
543
|
|
544
|
+
@inside_test_result = false
|
545
|
+
full_output = ''
|
546
|
+
test_result = ''
|
391
547
|
char = ''
|
392
548
|
line = ''
|
393
549
|
while true do
|
@@ -403,14 +559,49 @@ module Sprout #:nodoc:
|
|
403
559
|
line = ''
|
404
560
|
else
|
405
561
|
line << char
|
562
|
+
full_output << char
|
563
|
+
end
|
564
|
+
|
565
|
+
if(@inside_test_result)
|
566
|
+
test_result << char
|
567
|
+
else
|
568
|
+
@output.print char
|
569
|
+
@output.flush
|
406
570
|
end
|
407
571
|
|
408
|
-
|
409
|
-
|
572
|
+
if(!test_result_prelude.nil? && line.index(test_result_prelude))
|
573
|
+
test_result = test_result_prelude
|
574
|
+
@inside_test_result = true
|
575
|
+
end
|
576
|
+
|
577
|
+
if(@inside_test_result && line.index(test_result_closing))
|
578
|
+
write_test_result(test_result)
|
579
|
+
@inside_test_result = false
|
580
|
+
Thread.new {
|
581
|
+
write("\n")
|
582
|
+
write('y')
|
583
|
+
write('kill')
|
584
|
+
write('y')
|
585
|
+
write('quit')
|
586
|
+
}
|
587
|
+
end
|
410
588
|
|
411
589
|
if(line == PROMPT || line.match(/\(y or n\) $/))
|
412
|
-
|
590
|
+
full_output_cache = full_output
|
413
591
|
line = ''
|
592
|
+
full_output = ''
|
593
|
+
@prompted = true
|
594
|
+
if(should_kill?(full_output_cache))
|
595
|
+
Thread.new {
|
596
|
+
wait_for_prompt
|
597
|
+
write('info stack') # Output the full stack trace
|
598
|
+
write('info locals') # Output local variables
|
599
|
+
write('kill') # Kill the running SWF file
|
600
|
+
write('y') # Confirm killing SWF
|
601
|
+
write('quit') # Quit FDB safely
|
602
|
+
}
|
603
|
+
end
|
604
|
+
|
414
605
|
elsif(@pending_expression && line.match(/#{@pending_expression}/))
|
415
606
|
@found_search = true
|
416
607
|
@pending_expression = nil
|
@@ -424,6 +615,27 @@ module Sprout #:nodoc:
|
|
424
615
|
end
|
425
616
|
|
426
617
|
end
|
618
|
+
|
619
|
+
def should_kill?(message)
|
620
|
+
return (@kill_on_fault && fault_found?(message))
|
621
|
+
end
|
622
|
+
|
623
|
+
def fault_found?(message)
|
624
|
+
match = message.match(/\[Fault\]\s.*,.*$/)
|
625
|
+
return !match.nil?
|
626
|
+
end
|
627
|
+
|
628
|
+
def clean_test_result(result)
|
629
|
+
return result.gsub(/^\[trace\]\s/m, '')
|
630
|
+
end
|
631
|
+
|
632
|
+
def write_test_result(result)
|
633
|
+
result = clean_test_result result
|
634
|
+
FileUtils.makedirs(File.dirname(test_result_file))
|
635
|
+
File.open(test_result_file, File::CREAT|File::TRUNC|File::RDWR) do |f|
|
636
|
+
f.puts(result)
|
637
|
+
end
|
638
|
+
end
|
427
639
|
|
428
640
|
# Block for the life of the input process
|
429
641
|
def join
|
@@ -431,13 +643,13 @@ module Sprout #:nodoc:
|
|
431
643
|
print PROMPT
|
432
644
|
$stdout.flush
|
433
645
|
|
434
|
-
Thread.new
|
646
|
+
t = Thread.new {
|
435
647
|
while true do
|
436
648
|
msg = user_input.gets.chomp!
|
437
649
|
@input.puts msg
|
438
650
|
wait_for_prompt
|
439
651
|
end
|
440
|
-
|
652
|
+
}
|
441
653
|
|
442
654
|
@listener.join
|
443
655
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
|
2
|
+
module Sprout
|
3
|
+
|
4
|
+
|
5
|
+
# The MXMLCCruise helper wraps up the fdb and mxmlc unit test tasks by
|
6
|
+
# using either a Singleton or provided ProjectModel instance.
|
7
|
+
#
|
8
|
+
# The simple case that uses a Singleton ProjectModel:
|
9
|
+
# ci :cruise
|
10
|
+
#
|
11
|
+
# Using a specific ProjectModel instance:
|
12
|
+
# project_model :model
|
13
|
+
#
|
14
|
+
# ci :cruise => :model
|
15
|
+
#
|
16
|
+
# Configuring the proxied MXMLCTask
|
17
|
+
# ci :cruise do |t|
|
18
|
+
# t.link_report = 'LinkReport.rpt'
|
19
|
+
# end
|
20
|
+
#
|
21
|
+
class MXMLCCruise < MXMLCHelper
|
22
|
+
|
23
|
+
def initialize(args, &block)
|
24
|
+
super
|
25
|
+
library :asunit3
|
26
|
+
|
27
|
+
mxmlc output do |t|
|
28
|
+
configure_mxmlc t
|
29
|
+
configure_mxmlc_application t
|
30
|
+
t.debug = true
|
31
|
+
t.prerequisites << :asunit3
|
32
|
+
t.source_path << model.test_dir
|
33
|
+
|
34
|
+
if(model.test_width && model.test_height)
|
35
|
+
t.default_size = "#{model.test_width} #{model.test_height}"
|
36
|
+
end
|
37
|
+
|
38
|
+
yield t if block_given?
|
39
|
+
end
|
40
|
+
|
41
|
+
define_fdb
|
42
|
+
t = define_outer_task
|
43
|
+
t.prerequisites << output
|
44
|
+
t.prerequisites << player_task_name
|
45
|
+
end
|
46
|
+
|
47
|
+
def create_output
|
48
|
+
return "#{create_output_base}XMLRunner.swf"
|
49
|
+
end
|
50
|
+
|
51
|
+
def create_input
|
52
|
+
input = super
|
53
|
+
input.gsub!(/#{input_extension}$/, "XMLRunner#{input_extension}")
|
54
|
+
return input
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
def ci(args, &block)
|
61
|
+
return Sprout::MXMLCCruise.new(args, &block)
|
62
|
+
end
|
@@ -3,6 +3,8 @@ module Sprout # :nodoc:
|
|
3
3
|
class MXMLCHelper # :nodoc:
|
4
4
|
attr_reader :model
|
5
5
|
|
6
|
+
attr_accessor :use_fcsh
|
7
|
+
|
6
8
|
def initialize(args, &block)
|
7
9
|
resolve_task_args(args)
|
8
10
|
@model = get_model args
|
@@ -51,9 +53,13 @@ module Sprout # :nodoc:
|
|
51
53
|
end
|
52
54
|
|
53
55
|
def configure_mxmlc(compiler, is_asdoc=false)
|
54
|
-
|
55
|
-
|
56
|
-
|
56
|
+
if(!is_asdoc)
|
57
|
+
compiler.input = input
|
58
|
+
compiler.use_fcsh = use_fcsh || model.use_fcsh
|
59
|
+
end
|
60
|
+
|
61
|
+
compiler.gem_name = model.compiler_gem_name
|
62
|
+
compiler.gem_version = model.compiler_gem_version
|
57
63
|
|
58
64
|
# Set up library deps
|
59
65
|
model.libraries.each do |lib|
|
@@ -94,6 +100,15 @@ module Sprout # :nodoc:
|
|
94
100
|
end
|
95
101
|
end
|
96
102
|
|
103
|
+
def define_fdb
|
104
|
+
fdb player_task_name do |t|
|
105
|
+
t.file = output_file
|
106
|
+
t.kill_on_fault = true
|
107
|
+
t.run
|
108
|
+
t.continue
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
97
112
|
def define_outer_task
|
98
113
|
t = task task_name
|
99
114
|
self.prerequisites.each do |dep|
|
@@ -60,6 +60,11 @@ module Sprout
|
|
60
60
|
#
|
61
61
|
class MXMLCTask < ToolTask
|
62
62
|
|
63
|
+
# Use a running instance of the FCSH command shell to speed up compilation.
|
64
|
+
# You need to run 'rake fcsh:start' in another terminal before turning on
|
65
|
+
# this flag and compiling.
|
66
|
+
attr_accessor :use_fcsh
|
67
|
+
|
63
68
|
# Interface and descriptions found here:
|
64
69
|
# http://livedocs.adobe.com/flex/2/docs/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001481.html
|
65
70
|
def initialize_task
|
@@ -683,13 +688,9 @@ EOF
|
|
683
688
|
end
|
684
689
|
end
|
685
690
|
|
686
|
-
if(!input.match(/.css/) && File.exists?(input))
|
691
|
+
if(input && !input.match(/.css/) && File.exists?(input))
|
687
692
|
source_path << File.dirname(input)
|
688
693
|
end
|
689
|
-
|
690
|
-
if(!input)
|
691
|
-
raise MXMLCError.new('MXMLCTask.input is a required field')
|
692
|
-
end
|
693
694
|
|
694
695
|
if(link_report)
|
695
696
|
CLEAN.add(link_report)
|
@@ -743,9 +744,23 @@ EOF
|
|
743
744
|
end
|
744
745
|
end
|
745
746
|
|
747
|
+
def execute_with_fcsh(command)
|
748
|
+
begin
|
749
|
+
puts FCSHSocket.execute("mxmlc #{command}")
|
750
|
+
rescue FCSHError => fcsh_error
|
751
|
+
raise fcsh_error
|
752
|
+
rescue StandardError => std_error
|
753
|
+
raise StandardError("[ERROR] There was a problem connecting to the Flex Compiler SHell, run 'rake fcsh:start' in another terminal.")
|
754
|
+
end
|
755
|
+
end
|
756
|
+
|
746
757
|
def execute(*args)
|
747
758
|
begin
|
748
|
-
|
759
|
+
if(@use_fcsh)
|
760
|
+
execute_with_fcsh(to_shell)
|
761
|
+
else
|
762
|
+
super
|
763
|
+
end
|
749
764
|
rescue ExecutionError => e
|
750
765
|
if(e.message.index('Warning:'))
|
751
766
|
# MXMLC sends warnings to stderr....
|
@@ -2,7 +2,7 @@
|
|
2
2
|
module Sprout
|
3
3
|
|
4
4
|
|
5
|
-
# The MXMLCUnit helper wraps up
|
5
|
+
# The MXMLCUnit helper wraps up flashplayer and mxmlc unit test tasks by
|
6
6
|
# using either a Singleton or provided ProjectModel instance.
|
7
7
|
#
|
8
8
|
# The simple case that uses a Singleton ProjectModel:
|
data/rakefile.rb
CHANGED
@@ -63,7 +63,8 @@ spec = Gem::Specification.new do |s|
|
|
63
63
|
s.rdoc_options << '-i' << '.'
|
64
64
|
s.files = PKG_LIST.to_a
|
65
65
|
|
66
|
-
s.add_dependency('sprout', '>= 0.7.
|
66
|
+
s.add_dependency('sprout', '>= 0.7.196')
|
67
|
+
s.add_dependency('sprout-asunit3-library', '>= 3.2.6')
|
67
68
|
end
|
68
69
|
|
69
70
|
Rake::GemPackageTask.new(spec) do |p|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sprout-as3-bundle
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pattern Park
|
@@ -9,7 +9,7 @@ autorequire: sprout/as3
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date:
|
12
|
+
date: 2009-01-06 00:00:00 -08:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -20,7 +20,17 @@ dependencies:
|
|
20
20
|
requirements:
|
21
21
|
- - ">="
|
22
22
|
- !ruby/object:Gem::Version
|
23
|
-
version: 0.7.
|
23
|
+
version: 0.7.196
|
24
|
+
version:
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: sprout-asunit3-library
|
27
|
+
type: :runtime
|
28
|
+
version_requirement:
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 3.2.6
|
24
34
|
version:
|
25
35
|
description: Code Generation and Rake Tasks for ActionScript 3.0 Development
|
26
36
|
email: projectsprouts@googlegroups.com
|
@@ -42,6 +52,9 @@ files:
|
|
42
52
|
- lib/sprout/as3/version.rb
|
43
53
|
- lib/sprout/as3.rb
|
44
54
|
- lib/sprout/as3_tasks.rb
|
55
|
+
- lib/sprout/fcsh_lexer.rb
|
56
|
+
- lib/sprout/fcsh_service.rb
|
57
|
+
- lib/sprout/fcsh_socket.rb
|
45
58
|
- lib/sprout/generators
|
46
59
|
- lib/sprout/generators/class
|
47
60
|
- lib/sprout/generators/class/class_generator.rb
|
@@ -67,6 +80,7 @@ files:
|
|
67
80
|
- lib/sprout/generators/project/templates/rakefile.rb
|
68
81
|
- lib/sprout/generators/project/templates/README.txt
|
69
82
|
- lib/sprout/generators/project/templates/TestRunner.as
|
83
|
+
- lib/sprout/generators/project/templates/XMLRunner.as
|
70
84
|
- lib/sprout/generators/suite
|
71
85
|
- lib/sprout/generators/suite/suite_generator.rb
|
72
86
|
- lib/sprout/generators/suite/templates
|
@@ -80,27 +94,23 @@ files:
|
|
80
94
|
- lib/sprout/generators/test/USAGE
|
81
95
|
- lib/sprout/tasks
|
82
96
|
- lib/sprout/tasks/adl_documentation.rb
|
83
|
-
- lib/sprout/tasks/adl_rdoc.rb
|
84
97
|
- lib/sprout/tasks/adl_task.rb
|
85
98
|
- lib/sprout/tasks/adt_cert_documentation.rb
|
86
|
-
- lib/sprout/tasks/adt_cert_rdoc.rb
|
87
99
|
- lib/sprout/tasks/adt_documentation.rb
|
88
|
-
- lib/sprout/tasks/adt_rdoc.rb
|
89
100
|
- lib/sprout/tasks/adt_task.rb
|
90
|
-
- lib/sprout/tasks/
|
101
|
+
- lib/sprout/tasks/asdoc_documentation.rb
|
91
102
|
- lib/sprout/tasks/asdoc_task.rb
|
92
103
|
- lib/sprout/tasks/compc_documentation.rb
|
93
|
-
- lib/sprout/tasks/compc_rdoc.rb
|
94
104
|
- lib/sprout/tasks/compc_task.rb
|
95
|
-
- lib/sprout/tasks/
|
105
|
+
- lib/sprout/tasks/fcsh.rb
|
96
106
|
- lib/sprout/tasks/fdb_task.rb
|
107
|
+
- lib/sprout/tasks/mxmlc_ci.rb
|
97
108
|
- lib/sprout/tasks/mxmlc_debug.rb
|
98
109
|
- lib/sprout/tasks/mxmlc_deploy.rb
|
99
110
|
- lib/sprout/tasks/mxmlc_document.rb
|
100
111
|
- lib/sprout/tasks/mxmlc_documentation.rb
|
101
112
|
- lib/sprout/tasks/mxmlc_flex_builder.rb
|
102
113
|
- lib/sprout/tasks/mxmlc_helper.rb
|
103
|
-
- lib/sprout/tasks/mxmlc_rdoc.rb
|
104
114
|
- lib/sprout/tasks/mxmlc_stylesheet.rb
|
105
115
|
- lib/sprout/tasks/mxmlc_swc.rb
|
106
116
|
- lib/sprout/tasks/mxmlc_task.rb
|
@@ -136,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
136
146
|
requirements: []
|
137
147
|
|
138
148
|
rubyforge_project: sprout
|
139
|
-
rubygems_version: 1.
|
149
|
+
rubygems_version: 1.3.1
|
140
150
|
signing_key:
|
141
151
|
specification_version: 2
|
142
152
|
summary: Project and Code Generators for ActionScript 3 Development
|