as3 1.0.3.pre → 1.0.4.pre
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/lib/as3.rb +1 -1
- data/lib/as3/generators/templates/rakefile.rb +2 -0
- data/lib/as3/tasks/mxmlc.rb +0 -134
- data/lib/as3/tasks/mxmlc_legacy.rb +135 -0
- data/test/unit/mxmlc_test.rb +4 -2
- metadata +3 -2
data/lib/as3.rb
CHANGED
data/lib/as3/tasks/mxmlc.rb
CHANGED
@@ -678,140 +678,6 @@ module AS3
|
|
678
678
|
end
|
679
679
|
end
|
680
680
|
|
681
|
-
=begin
|
682
|
-
def define # :nodoc:
|
683
|
-
super
|
684
|
-
|
685
|
-
if(!output)
|
686
|
-
if(name.match(/.swf/) || name.match(/swc/))
|
687
|
-
self.output = name
|
688
|
-
end
|
689
|
-
end
|
690
|
-
|
691
|
-
if(input && !input.match(/.css/) && File.exists?(input))
|
692
|
-
source_path << File.dirname(input)
|
693
|
-
end
|
694
|
-
|
695
|
-
if(include_path)
|
696
|
-
include_path.each do |path|
|
697
|
-
process_include_path(path) if(File.directory?(path))
|
698
|
-
end
|
699
|
-
end
|
700
|
-
|
701
|
-
self.include_path = []
|
702
|
-
|
703
|
-
if(link_report)
|
704
|
-
CLEAN.add(link_report)
|
705
|
-
end
|
706
|
-
|
707
|
-
source_path.uniq!
|
708
|
-
param_hash['source_path'].value = clean_nested_source_paths(source_path)
|
709
|
-
|
710
|
-
CLEAN.add(output)
|
711
|
-
if(incremental)
|
712
|
-
CLEAN.add(FileList['**/**/*.cache'])
|
713
|
-
end
|
714
|
-
|
715
|
-
self
|
716
|
-
end
|
717
|
-
|
718
|
-
protected
|
719
|
-
|
720
|
-
def process_include_path(path)
|
721
|
-
symbols = []
|
722
|
-
FileList["#{path}/**/*[.as|.mxml]"].each do |file|
|
723
|
-
next if File.directory?(file)
|
724
|
-
file.gsub!(path, '')
|
725
|
-
file.gsub!(/^\//, '')
|
726
|
-
file.gsub!('/', '.')
|
727
|
-
file.gsub!(/.as$/, '')
|
728
|
-
file.gsub!(/.mxml$/, '')
|
729
|
-
file.gsub!(/.css$/, '')
|
730
|
-
symbols << file
|
731
|
-
end
|
732
|
-
|
733
|
-
symbols.each do |symbol|
|
734
|
-
self.includes << symbol
|
735
|
-
end
|
736
|
-
end
|
737
|
-
|
738
|
-
def clean_nested_source_paths(paths)
|
739
|
-
results = []
|
740
|
-
paths.each do |path|
|
741
|
-
# TODO: This should only happen if: allow_source_path_overlap != true
|
742
|
-
if(check_nested_source_path(results, path))
|
743
|
-
results << path
|
744
|
-
end
|
745
|
-
end
|
746
|
-
return results
|
747
|
-
end
|
748
|
-
|
749
|
-
def check_nested_source_path(array, path)
|
750
|
-
array.each_index do |index|
|
751
|
-
item = array[index]
|
752
|
-
if(item =~ /^#{path}/)
|
753
|
-
array.slice!(index, 1)
|
754
|
-
elsif(path =~ /^#{item}/)
|
755
|
-
return false
|
756
|
-
end
|
757
|
-
end
|
758
|
-
return true
|
759
|
-
end
|
760
|
-
|
761
|
-
# Use the swc path if possible
|
762
|
-
# Otherwise add to source
|
763
|
-
def resolve_library(library_task)
|
764
|
-
#TODO: Add support for libraries that don't get
|
765
|
-
# copied into the project
|
766
|
-
path = library_task.project_path
|
767
|
-
if(path.match(/.swc$/))
|
768
|
-
library_path << library_task.project_path
|
769
|
-
else
|
770
|
-
source_path << library_task.project_path
|
771
|
-
end
|
772
|
-
end
|
773
|
-
|
774
|
-
def execute_with_fcsh(command)
|
775
|
-
begin
|
776
|
-
display_preprocess_message
|
777
|
-
puts FCSHSocket.execute("mxmlc #{command}")
|
778
|
-
rescue FCSHError => fcsh_error
|
779
|
-
raise fcsh_error
|
780
|
-
rescue StandardError => std_error
|
781
|
-
# TODO: Capture a more concrete error here...
|
782
|
-
raise MXMLCError.new("[ERROR] There was a problem connecting to the Flex Compiler SHell, run 'rake fcsh:start' in another terminal.")
|
783
|
-
end
|
784
|
-
end
|
785
|
-
|
786
|
-
def execute(*args)
|
787
|
-
begin
|
788
|
-
start = Time.now.to_i
|
789
|
-
if(@use_fcsh)
|
790
|
-
execute_with_fcsh(to_shell)
|
791
|
-
else
|
792
|
-
super
|
793
|
-
end
|
794
|
-
Log.puts "mxmlc finished compiling #{name} in #{Time.now.to_i - start} seconds"
|
795
|
-
rescue ExecutionError => e
|
796
|
-
if(e.message.index('Warning:'))
|
797
|
-
# MXMLC sends warnings to stderr....
|
798
|
-
Log.puts(e.message.gsub('[ERROR]', '[WARNING]'))
|
799
|
-
else
|
800
|
-
raise e
|
801
|
-
end
|
802
|
-
end
|
803
|
-
end
|
804
|
-
|
805
|
-
end
|
806
|
-
end
|
807
|
-
|
808
|
-
# Helper method for definining and accessing MXMLC instances in a rakefile
|
809
|
-
def mxmlc(args, &block)
|
810
|
-
AS3::MXMLC.define_task(args, &block)
|
811
|
-
end
|
812
|
-
|
813
|
-
=end
|
814
|
-
|
815
681
|
# TODO: Assign mxmlc.output = args || args.first_key
|
816
682
|
def mxmlc args, &block
|
817
683
|
mxmlc_tool = AS3::MXMLC.new
|
@@ -0,0 +1,135 @@
|
|
1
|
+
|
2
|
+
=begin
|
3
|
+
def define # :nodoc:
|
4
|
+
super
|
5
|
+
|
6
|
+
if(!output)
|
7
|
+
if(name.match(/.swf/) || name.match(/swc/))
|
8
|
+
self.output = name
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
if(input && !input.match(/.css/) && File.exists?(input))
|
13
|
+
source_path << File.dirname(input)
|
14
|
+
end
|
15
|
+
|
16
|
+
if(include_path)
|
17
|
+
include_path.each do |path|
|
18
|
+
process_include_path(path) if(File.directory?(path))
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
self.include_path = []
|
23
|
+
|
24
|
+
if(link_report)
|
25
|
+
CLEAN.add(link_report)
|
26
|
+
end
|
27
|
+
|
28
|
+
source_path.uniq!
|
29
|
+
param_hash['source_path'].value = clean_nested_source_paths(source_path)
|
30
|
+
|
31
|
+
CLEAN.add(output)
|
32
|
+
if(incremental)
|
33
|
+
CLEAN.add(FileList['**/**/*.cache'])
|
34
|
+
end
|
35
|
+
|
36
|
+
self
|
37
|
+
end
|
38
|
+
|
39
|
+
protected
|
40
|
+
|
41
|
+
def process_include_path(path)
|
42
|
+
symbols = []
|
43
|
+
FileList["#{path}/**/*[.as|.mxml]"].each do |file|
|
44
|
+
next if File.directory?(file)
|
45
|
+
file.gsub!(path, '')
|
46
|
+
file.gsub!(/^\//, '')
|
47
|
+
file.gsub!('/', '.')
|
48
|
+
file.gsub!(/.as$/, '')
|
49
|
+
file.gsub!(/.mxml$/, '')
|
50
|
+
file.gsub!(/.css$/, '')
|
51
|
+
symbols << file
|
52
|
+
end
|
53
|
+
|
54
|
+
symbols.each do |symbol|
|
55
|
+
self.includes << symbol
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
def clean_nested_source_paths(paths)
|
60
|
+
results = []
|
61
|
+
paths.each do |path|
|
62
|
+
# TODO: This should only happen if: allow_source_path_overlap != true
|
63
|
+
if(check_nested_source_path(results, path))
|
64
|
+
results << path
|
65
|
+
end
|
66
|
+
end
|
67
|
+
return results
|
68
|
+
end
|
69
|
+
|
70
|
+
def check_nested_source_path(array, path)
|
71
|
+
array.each_index do |index|
|
72
|
+
item = array[index]
|
73
|
+
if(item =~ /^#{path}/)
|
74
|
+
array.slice!(index, 1)
|
75
|
+
elsif(path =~ /^#{item}/)
|
76
|
+
return false
|
77
|
+
end
|
78
|
+
end
|
79
|
+
return true
|
80
|
+
end
|
81
|
+
|
82
|
+
# Use the swc path if possible
|
83
|
+
# Otherwise add to source
|
84
|
+
def resolve_library(library_task)
|
85
|
+
#TODO: Add support for libraries that don't get
|
86
|
+
# copied into the project
|
87
|
+
path = library_task.project_path
|
88
|
+
if(path.match(/.swc$/))
|
89
|
+
library_path << library_task.project_path
|
90
|
+
else
|
91
|
+
source_path << library_task.project_path
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
def execute_with_fcsh(command)
|
96
|
+
begin
|
97
|
+
display_preprocess_message
|
98
|
+
puts FCSHSocket.execute("mxmlc #{command}")
|
99
|
+
rescue FCSHError => fcsh_error
|
100
|
+
raise fcsh_error
|
101
|
+
rescue StandardError => std_error
|
102
|
+
# TODO: Capture a more concrete error here...
|
103
|
+
raise MXMLCError.new("[ERROR] There was a problem connecting to the Flex Compiler SHell, run 'rake fcsh:start' in another terminal.")
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
def execute(*args)
|
108
|
+
begin
|
109
|
+
start = Time.now.to_i
|
110
|
+
if(@use_fcsh)
|
111
|
+
execute_with_fcsh(to_shell)
|
112
|
+
else
|
113
|
+
super
|
114
|
+
end
|
115
|
+
Log.puts "mxmlc finished compiling #{name} in #{Time.now.to_i - start} seconds"
|
116
|
+
rescue ExecutionError => e
|
117
|
+
if(e.message.index('Warning:'))
|
118
|
+
# MXMLC sends warnings to stderr....
|
119
|
+
Log.puts(e.message.gsub('[ERROR]', '[WARNING]'))
|
120
|
+
else
|
121
|
+
raise e
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
end
|
127
|
+
end
|
128
|
+
|
129
|
+
# Helper method for definining and accessing MXMLC instances in a rakefile
|
130
|
+
def mxmlc(args, &block)
|
131
|
+
AS3::MXMLC.define_task(args, &block)
|
132
|
+
end
|
133
|
+
|
134
|
+
=end
|
135
|
+
|
data/test/unit/mxmlc_test.rb
CHANGED
@@ -30,8 +30,8 @@ class MXMLCTest < Test::Unit::TestCase
|
|
30
30
|
mxmlc.input = @input
|
31
31
|
# Turn on to trigger an actual compilation:
|
32
32
|
# (This is too damn slow to leave in the every-time test run)
|
33
|
-
mxmlc.execute
|
34
|
-
assert_file @expected_output
|
33
|
+
#mxmlc.execute
|
34
|
+
#assert_file @expected_output
|
35
35
|
end
|
36
36
|
|
37
37
|
should "assign simple output" do
|
@@ -40,6 +40,8 @@ class MXMLCTest < Test::Unit::TestCase
|
|
40
40
|
end
|
41
41
|
assert_equal 'bin/SomeProject.swf', t.output
|
42
42
|
end
|
43
|
+
|
43
44
|
end
|
45
|
+
|
44
46
|
end
|
45
47
|
|
metadata
CHANGED
@@ -5,9 +5,9 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
8
|
+
- 4
|
9
9
|
- pre
|
10
|
-
version: 1.0.
|
10
|
+
version: 1.0.4.pre
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Luke Bayes
|
@@ -107,6 +107,7 @@ files:
|
|
107
107
|
- lib/as3/generators/templates/Gemfile
|
108
108
|
- lib/as3/generators/templates/rakefile.rb
|
109
109
|
- lib/as3/tasks/mxmlc.rb
|
110
|
+
- lib/as3/tasks/mxmlc_legacy.rb
|
110
111
|
- lib/as3.rb
|
111
112
|
- rakefile.rb
|
112
113
|
- README.rdoc
|