asrake 0.9.0 → 0.10.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/README.md +38 -12
- data/lib/asrake/asdoc.rb +106 -0
- data/lib/asrake/base_compiler_args.rb +1 -0
- data/lib/asrake/compc_args.rb +3 -13
- data/lib/asrake/compc_task.rb +37 -3
- data/lib/asrake.rb +19 -1
- metadata +3 -2
data/README.md
CHANGED
@@ -25,8 +25,8 @@ Arguments match those passed to the compiler (mxmlc, compc, adt, etc) with hyphe
|
|
25
25
|
Convenience methods are provided for `include_libraries`, `external_library_path`, and `library_path`; you can instead use `statically_link`, `dynamically_link`, and `statically_link_only_referenced_classes` respectively.
|
26
26
|
|
27
27
|
|
28
|
-
How to
|
29
|
-
|
28
|
+
How to Tasks
|
29
|
+
------------
|
30
30
|
|
31
31
|
### Build a SWF or SWC
|
32
32
|
|
@@ -47,11 +47,11 @@ ASRake::CompcTask.new :build do |build|
|
|
47
47
|
# You can store the compiler arguments for later
|
48
48
|
# For example, maybe we need to know the output_dir later on
|
49
49
|
#compc = ASRake::CompcTask.new :build do |build|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
50
|
+
build.target_player = 11.0
|
51
|
+
build.output = "bin/bin/my_project.swc"
|
52
|
+
build.debug = true
|
53
|
+
build.source_path << "bin/src"
|
54
|
+
build.statically_link_only_referenced_classes << "lib/lib_used_in_project.swc"
|
55
55
|
end
|
56
56
|
```
|
57
57
|
|
@@ -76,8 +76,8 @@ args.source_path << "bin/src"
|
|
76
76
|
|
77
77
|
desc "Build swc"
|
78
78
|
ASRake::CompcTask.new :build, args do |compc|
|
79
|
-
|
80
|
-
|
79
|
+
compc.debug = true
|
80
|
+
compc.statically_link_only_referenced_classes << "lib/lib_used_in_project.swc"
|
81
81
|
end
|
82
82
|
```
|
83
83
|
|
@@ -136,9 +136,9 @@ There is a task `version:sync` that is run every time the version changes. This
|
|
136
136
|
```ruby
|
137
137
|
# replace :version with whatever you provided to ASRake::VersionTask.new
|
138
138
|
namespace :version do
|
139
|
-
|
140
|
-
|
141
|
-
|
139
|
+
task :sync do
|
140
|
+
#update application.xml
|
141
|
+
end
|
142
142
|
end
|
143
143
|
```
|
144
144
|
|
@@ -160,6 +160,9 @@ end
|
|
160
160
|
ASRake::CleanTask.new swf
|
161
161
|
```
|
162
162
|
|
163
|
+
Additional Functionality
|
164
|
+
------------------------
|
165
|
+
|
163
166
|
### New copy method
|
164
167
|
|
165
168
|
ASRake introduces a new copy method `cp_u` on FileUtils and in the global namespace.
|
@@ -178,4 +181,27 @@ cp_u %w{application.xml my_app.swf config.json}, "/dest"
|
|
178
181
|
|
179
182
|
# use FileList, Dir.glob(), or othr methods to copy groups of files
|
180
183
|
cp_u FileList["lib/**/*.swc"], "bin/lib"
|
184
|
+
```
|
185
|
+
|
186
|
+
### Build without a task
|
187
|
+
|
188
|
+
You don't need to create a rake task to build a swf or swc. Just call `build()` on an instance of CompcArguments or MxmlcArguments.
|
189
|
+
|
190
|
+
> Note that this will not do any dependency checks, so the build will run even if it is unnecessary
|
191
|
+
|
192
|
+
```ruby
|
193
|
+
args = ASRake::CompcArguments.new
|
194
|
+
args.target_player = 11.0
|
195
|
+
args.output = "bin/bin/my_project.swc"
|
196
|
+
args.source_path << "bin/src"
|
197
|
+
args.statically_link_only_referenced_classes << "lib/lib_used_in_project.swc"
|
198
|
+
args.build()
|
199
|
+
|
200
|
+
ASRake::MxmlcArguments.new do |mxmlc|
|
201
|
+
mxmlc.target_player = 11.0
|
202
|
+
mxmlc.output = "bin/bin/my_project.swf"
|
203
|
+
mxmlc.debug = true
|
204
|
+
mxmlc.source_path << "bin/src"
|
205
|
+
mxmlc.build()
|
206
|
+
end
|
181
207
|
```
|
data/lib/asrake/asdoc.rb
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
require 'rake/tasklib'
|
2
|
+
require 'nokogiri'
|
3
|
+
|
4
|
+
# http://help.adobe.com/en_US/flex/using/WSd0ded3821e0d52fe1e63e3d11c2f44bc36-7ffa.html
|
5
|
+
|
6
|
+
module ASRake
|
7
|
+
class Asdoc
|
8
|
+
|
9
|
+
attr_accessor :output
|
10
|
+
|
11
|
+
attr_accessor :doc_sources
|
12
|
+
attr_accessor :doc_classes
|
13
|
+
attr_accessor :doc_namespaces
|
14
|
+
attr_accessor :source_path
|
15
|
+
attr_accessor :library_path
|
16
|
+
|
17
|
+
attr_accessor :load_config
|
18
|
+
#
|
19
|
+
# The path to the ASDoc template directory. The default is the asdoc/templates directory in the ASDoc
|
20
|
+
# installation directory. This directory contains all the HTML, CSS, XSL, and image files used for
|
21
|
+
# generating the output.
|
22
|
+
#
|
23
|
+
attr_accessor :templates_path
|
24
|
+
|
25
|
+
attr_accessor :additional_args
|
26
|
+
|
27
|
+
@@compiler_args = [
|
28
|
+
[:output, :dir],
|
29
|
+
#
|
30
|
+
# When true, retain the intermediate XML files created by the ASDoc tool. The default value is false.
|
31
|
+
#
|
32
|
+
[:keep_xml, :bool],
|
33
|
+
#
|
34
|
+
# When true, configures the ASDoc tool to generate the intermediate XML files only, and not perform
|
35
|
+
# the final conversion to HTML. The default value is false.
|
36
|
+
#
|
37
|
+
[:skip_xsl, :bool],
|
38
|
+
#
|
39
|
+
# Whether all dependencies found by the compiler are documented. If true, the dependencies of
|
40
|
+
# the input classes are not documented. The default value is false.
|
41
|
+
#
|
42
|
+
[:exclude_dependencies, :bool],
|
43
|
+
#
|
44
|
+
# Ignore XHTML errors (such as a missing </p> tag) and produce the ASDoc output.
|
45
|
+
# All errors are written to the validation_errors.log file.
|
46
|
+
#
|
47
|
+
[:lenient, :bool],
|
48
|
+
[:source_path, :array],
|
49
|
+
[:load_config, :array],
|
50
|
+
[:library_path, :array],
|
51
|
+
[:doc_classes, :array],
|
52
|
+
[:doc_namespaces, :array],
|
53
|
+
]
|
54
|
+
|
55
|
+
@@compiler_args.each do |name, type|
|
56
|
+
attr_accessor name
|
57
|
+
end
|
58
|
+
|
59
|
+
def initialize
|
60
|
+
|
61
|
+
# set all defaults
|
62
|
+
@@compiler_args.each do |name, type|
|
63
|
+
instance_variable_set("@#{name}", []) if type == :array
|
64
|
+
end
|
65
|
+
|
66
|
+
@doc_sources = []
|
67
|
+
|
68
|
+
yield self if block_given?
|
69
|
+
|
70
|
+
end
|
71
|
+
|
72
|
+
def execute
|
73
|
+
command = "#{FlexSDK::asdoc}"
|
74
|
+
|
75
|
+
@@compiler_args.each do |name, type|
|
76
|
+
arg = name.to_s.gsub('_','-')
|
77
|
+
value = instance_variable_get("@#{name}")
|
78
|
+
case type
|
79
|
+
when :bool
|
80
|
+
command << " -#{arg}=#{value}" if value
|
81
|
+
when :array
|
82
|
+
value.flatten!
|
83
|
+
value = value.map{|s| s.index(' ') != nil ? "'#{s}'" : s} if value.length > 1
|
84
|
+
command << " -#{arg} #{cf value.join(' ')}" if !value.empty?
|
85
|
+
when :dir
|
86
|
+
command << " -#{arg}=#{cf value}" if value != nil
|
87
|
+
else
|
88
|
+
fail "unknown type #{type}"
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
# Use doc-sources argument if it has been assigned (duh) or if neither doc-classes or doc-namespaces have
|
93
|
+
# been assigned and source-path has
|
94
|
+
if !self.doc_sources.empty?
|
95
|
+
command << " -doc-sources #{cf doc_sources.join(' ')}"
|
96
|
+
elsif !self.source_path.empty? && self.doc_classes.empty? && self.doc_namespaces.empty?
|
97
|
+
command << " -doc-sources #{cf source_path.join(' ')}" if !self.source_path.empty?
|
98
|
+
end
|
99
|
+
|
100
|
+
command << " #{additional_args}" if self.additional_args != nil
|
101
|
+
|
102
|
+
run command
|
103
|
+
end
|
104
|
+
|
105
|
+
end
|
106
|
+
end
|
@@ -256,6 +256,7 @@ end
|
|
256
256
|
#end
|
257
257
|
|
258
258
|
#http://fpdownload.macromedia.com/get/flashplayer/updaters/11/playerglobal11_2.swc
|
259
|
+
#https://github.com/nexussays/playerglobal/raw/master/player/11.2/playerglobal.swc
|
259
260
|
#frameworks\libs\player
|
260
261
|
|
261
262
|
#-dump-config compiler_config.xml
|
data/lib/asrake/compc_args.rb
CHANGED
@@ -6,6 +6,8 @@ module ASRake
|
|
6
6
|
module CompcArguments_Module
|
7
7
|
include BaseCompilerArguments_Module
|
8
8
|
|
9
|
+
attr_accessor :include_asdoc
|
10
|
+
|
9
11
|
def compiler
|
10
12
|
FlexSDK::compc
|
11
13
|
end
|
@@ -15,24 +17,12 @@ module CompcArguments_Module
|
|
15
17
|
|
16
18
|
#compc << " -include-sources=#{cf source_path.join(',')}" if !source_path.empty?
|
17
19
|
self.source_path.each do |path|
|
18
|
-
compc << " -include-classes #{get_classes(path).join(' ')}"
|
20
|
+
compc << " -include-classes #{ASRake::get_classes(path).join(' ')}"
|
19
21
|
end
|
20
22
|
|
21
23
|
return compc
|
22
24
|
end
|
23
25
|
|
24
|
-
def get_classes(path)
|
25
|
-
arr = []
|
26
|
-
Dir.chdir(path) do
|
27
|
-
FileList["**/*.as"].pathmap('%X').each do |file|
|
28
|
-
name = file.gsub(/^\.[\/\\]/, "").gsub(/[\/\\]/, ".")
|
29
|
-
yield name if block_given?
|
30
|
-
arr << name
|
31
|
-
end
|
32
|
-
end
|
33
|
-
return arr
|
34
|
-
end
|
35
|
-
|
36
26
|
end
|
37
27
|
|
38
28
|
class CompcArguments
|
data/lib/asrake/compc_task.rb
CHANGED
@@ -3,6 +3,7 @@ require 'rake/tasklib'
|
|
3
3
|
require 'asrake/host'
|
4
4
|
require 'asrake/base_compiler_task'
|
5
5
|
require 'asrake/compc_args'
|
6
|
+
require 'asrake/asdoc'
|
6
7
|
|
7
8
|
module ASRake
|
8
9
|
class CompcTask < BaseCompilerTask
|
@@ -13,10 +14,13 @@ class CompcTask < BaseCompilerTask
|
|
13
14
|
super
|
14
15
|
|
15
16
|
# create directory task for output
|
16
|
-
|
17
|
-
|
17
|
+
if !output_is_dir?
|
18
|
+
directory self.output_dir
|
19
|
+
file self.output => self.output_dir
|
20
|
+
end
|
21
|
+
|
18
22
|
# create file task for output
|
19
|
-
file self.output
|
23
|
+
file self.output do
|
20
24
|
self.build
|
21
25
|
end
|
22
26
|
|
@@ -41,6 +45,36 @@ class CompcTask < BaseCompilerTask
|
|
41
45
|
puts result
|
42
46
|
end
|
43
47
|
|
48
|
+
if @include_asdoc
|
49
|
+
file self.output do
|
50
|
+
asdoc = ASRake::Asdoc.new
|
51
|
+
asdoc.output = "#{self.output_dir}/.asrake/"
|
52
|
+
asdoc.source_path = self.source_path
|
53
|
+
asdoc.library_path = self.library_path
|
54
|
+
asdoc.load_config = self.load_config
|
55
|
+
self.source_path.each do |path|
|
56
|
+
asdoc.doc_classes << ASRake::get_classes(path)
|
57
|
+
end
|
58
|
+
asdoc.keep_xml = true
|
59
|
+
asdoc.skip_xsl = true
|
60
|
+
asdoc.lenient = true
|
61
|
+
asdoc.exclude_dependencies = true
|
62
|
+
asdoc.execute
|
63
|
+
|
64
|
+
if output_is_dir?
|
65
|
+
cp_r File.join(asdoc.output, 'tempdita'), File.join(self.output_dir, 'docs')
|
66
|
+
else
|
67
|
+
Zip::ZipFile.open(self.output) do |zipfile|
|
68
|
+
FileList[File.join(asdoc.output, 'tempdita', '*')].each do |file|
|
69
|
+
zipfile.add(File.join('docs', File.basename(file)), file)
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
rm_rf asdoc.output
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
44
78
|
end
|
45
79
|
|
46
80
|
end
|
data/lib/asrake.rb
CHANGED
@@ -24,4 +24,22 @@ THE SOFTWARE.
|
|
24
24
|
Dir.glob(File.join(File.expand_path(File.dirname(__FILE__)), "asrake/*_task.rb")).each {|f| require f }
|
25
25
|
Dir.glob(File.join(File.expand_path(File.dirname(__FILE__)), "asrake/*_args.rb")).each {|f| require f }
|
26
26
|
|
27
|
-
require 'asrake/file_utils'
|
27
|
+
require 'asrake/file_utils'
|
28
|
+
|
29
|
+
module ASRake
|
30
|
+
class << self
|
31
|
+
|
32
|
+
def get_classes(path)
|
33
|
+
arr = []
|
34
|
+
Dir.chdir(path) do
|
35
|
+
FileList["**/*.as"].pathmap('%X').each do |file|
|
36
|
+
name = file.gsub(/^\.[\/\\]/, "").gsub(/[\/\\]/, ".")
|
37
|
+
yield name if block_given?
|
38
|
+
arr << name
|
39
|
+
end
|
40
|
+
end
|
41
|
+
return arr
|
42
|
+
end
|
43
|
+
|
44
|
+
end
|
45
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asrake
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.10.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -70,6 +70,7 @@ extensions: []
|
|
70
70
|
extra_rdoc_files: []
|
71
71
|
files:
|
72
72
|
- lib/asrake/adt_task.rb
|
73
|
+
- lib/asrake/asdoc.rb
|
73
74
|
- lib/asrake/base_compiler_args.rb
|
74
75
|
- lib/asrake/base_compiler_task.rb
|
75
76
|
- lib/asrake/clean_task.rb
|