asrake 0.10.0 → 0.11.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 +16 -18
- data/lib/asrake/asdoc.rb +95 -25
- data/lib/asrake/base_compiler_args.rb +4 -1
- data/lib/asrake/compc_args.rb +5 -0
- data/lib/asrake/compc_task.rb +9 -10
- data/lib/asrake/host.rb +2 -2
- data/lib/asrake/version_task.rb +7 -12
- metadata +2 -3
- data/lib/asrake/clean_task.rb +0 -34
data/README.md
CHANGED
@@ -81,6 +81,22 @@ ASRake::CompcTask.new :build, args do |compc|
|
|
81
81
|
end
|
82
82
|
```
|
83
83
|
|
84
|
+
### Include ASDoc in a SWC
|
85
|
+
|
86
|
+
If you are compiling with `CompcArgs` or a `CompcTask`, you can set the field `include_asdoc` to have documentation added to your swc
|
87
|
+
|
88
|
+
```ruby
|
89
|
+
desc "Build swc"
|
90
|
+
ASRake::CompcTask.new :build do |build|
|
91
|
+
build.target_player = 11.0
|
92
|
+
build.output = "bin/bin/my_project.swc"
|
93
|
+
build.debug = true
|
94
|
+
build.source_path << "bin/src"
|
95
|
+
build.statically_link_only_referenced_classes << "lib/lib_used_in_project.swc"
|
96
|
+
build.include_asdoc = true
|
97
|
+
end
|
98
|
+
```
|
99
|
+
|
84
100
|
### Build an AIR
|
85
101
|
|
86
102
|
Compile your SWF file as normal, but set the `isAIR` property to true
|
@@ -142,24 +158,6 @@ namespace :version do
|
|
142
158
|
end
|
143
159
|
```
|
144
160
|
|
145
|
-
### Clean
|
146
|
-
|
147
|
-
```
|
148
|
-
ASRake::CleanTask.new(*compiler_args)
|
149
|
-
```
|
150
|
-
|
151
|
-
Provide your compiler arguments to `ASRake::CleanTask` and it will automatically create clean and clobber tasks.
|
152
|
-
|
153
|
-
```ruby
|
154
|
-
swf = ASRake::MxmlcTask.new :build do |build|
|
155
|
-
build.load_config << "mxmlc_config.xml"
|
156
|
-
build.output = "bin/my_app.swf"
|
157
|
-
build.isAIR = true
|
158
|
-
end
|
159
|
-
|
160
|
-
ASRake::CleanTask.new swf
|
161
|
-
```
|
162
|
-
|
163
161
|
Additional Functionality
|
164
162
|
------------------------
|
165
163
|
|
data/lib/asrake/asdoc.rb
CHANGED
@@ -6,25 +6,19 @@ require 'nokogiri'
|
|
6
6
|
module ASRake
|
7
7
|
class Asdoc
|
8
8
|
|
9
|
-
attr_accessor :
|
9
|
+
attr_accessor :additional_args
|
10
10
|
|
11
|
+
# we have some special handling of this
|
11
12
|
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
13
|
|
27
14
|
@@compiler_args = [
|
15
|
+
[:source_path, :dirs],
|
16
|
+
[:load_config, :dirs],
|
17
|
+
[:library_path, :dirs],
|
18
|
+
[:namespace, :string],
|
19
|
+
#
|
20
|
+
# The output directory for the generated documentation. The default value is "asdoc-output".
|
21
|
+
#
|
28
22
|
[:output, :dir],
|
29
23
|
#
|
30
24
|
# When true, retain the intermediate XML files created by the ASDoc tool. The default value is false.
|
@@ -45,11 +39,73 @@ class Asdoc
|
|
45
39
|
# All errors are written to the validation_errors.log file.
|
46
40
|
#
|
47
41
|
[:lenient, :bool],
|
48
|
-
|
49
|
-
|
50
|
-
|
42
|
+
#
|
43
|
+
# The path to the ASDoc template directory. The default is the asdoc/templates directory in the ASDoc
|
44
|
+
# installation directory. This directory contains all the HTML, CSS, XSL, and image files used for
|
45
|
+
# generating the output.
|
46
|
+
#
|
47
|
+
[:templates_path, :dir],
|
48
|
+
#
|
49
|
+
# A list of classes to document. These classes must be in the source path. This is the default option.
|
50
|
+
# This option works the same way as does the -include-classes option for the compc component compiler.
|
51
|
+
#
|
51
52
|
[:doc_classes, :array],
|
53
|
+
#
|
54
|
+
# A list of classes not documented. You must specify individual class names.
|
55
|
+
# Alternatively, if the ASDoc comment for the class contains the @private tag, is not documented.
|
56
|
+
#
|
57
|
+
[:exclude_classes, :array],
|
58
|
+
#
|
59
|
+
# A list of URIs to document. The classes must be in the source path.
|
60
|
+
# You must include a URI and the location of the manifest file that defines the contents of this namespace.
|
61
|
+
# This option works the same way as does the -include-namespaces option for the compc component compiler.
|
62
|
+
#
|
52
63
|
[:doc_namespaces, :array],
|
64
|
+
#
|
65
|
+
# Specifies the location of the include examples used by the @includeExample tag. This option specifies the
|
66
|
+
# root directory. The examples must be located under this directory in subdirectories that correspond to the
|
67
|
+
# package name of the class. For example, you specify the examples-path as c:\myExamples. For a class in the
|
68
|
+
# package myComp.myClass, the example must be in the directory c:\myExamples\myComp.myClass.
|
69
|
+
#
|
70
|
+
[:examples_path, :dir],
|
71
|
+
#
|
72
|
+
# The text that appears at the bottom of the HTML pages in the output documentation.
|
73
|
+
#
|
74
|
+
[:footer, :string],
|
75
|
+
#
|
76
|
+
# The text that appears in the browser window in the output documentation.
|
77
|
+
# The default value is "API Documentation".
|
78
|
+
#
|
79
|
+
[:window_title, :string],
|
80
|
+
#
|
81
|
+
# An integer that changes the width of the left frameset of the documentation. You can change this
|
82
|
+
# size to accommodate the length of your package names.
|
83
|
+
# The default value is 210 pixels.
|
84
|
+
#
|
85
|
+
[:left_frameset_width, :string],
|
86
|
+
#
|
87
|
+
# The text that appears at the top of the HTML pages in the output documentation.
|
88
|
+
# The default value is "API Documentation".
|
89
|
+
#
|
90
|
+
[:main_title, :string],
|
91
|
+
#
|
92
|
+
# The descriptions to use when describing a package in the documentation.
|
93
|
+
# You can specify more than one package option.
|
94
|
+
# The following example adds two package descriptions to the output:
|
95
|
+
# asdoc = ASRake::Asdoc.new
|
96
|
+
# asdoc.package << 'com.my.business "Contains business classes and interfaces"'
|
97
|
+
# asdoc.package << 'com.my.commands "Contains command base classes and interfaces"'
|
98
|
+
[:package, :array],
|
99
|
+
#
|
100
|
+
# Specifies an XML file containing the package descriptions.
|
101
|
+
#
|
102
|
+
[:package_description_file, :dir],
|
103
|
+
#
|
104
|
+
# Disable strict compilation mode. By default, classes that do not define constructors, or contain methods
|
105
|
+
# that do not define return values cause compiler failures. If necessary, set strict to false to override
|
106
|
+
# this default and continue compilation.
|
107
|
+
#
|
108
|
+
[:strict, :bool]
|
53
109
|
]
|
54
110
|
|
55
111
|
@@compiler_args.each do |name, type|
|
@@ -57,19 +113,25 @@ class Asdoc
|
|
57
113
|
end
|
58
114
|
|
59
115
|
def initialize
|
60
|
-
|
61
116
|
# set all defaults
|
62
117
|
@@compiler_args.each do |name, type|
|
63
|
-
instance_variable_set("@#{name}", []) if type == :array
|
118
|
+
instance_variable_set("@#{name}", []) if type == :array || type == :dirs
|
64
119
|
end
|
65
120
|
|
66
121
|
@doc_sources = []
|
67
122
|
|
68
123
|
yield self if block_given?
|
69
|
-
|
70
124
|
end
|
71
125
|
|
72
|
-
def
|
126
|
+
def add(args)
|
127
|
+
self.source_path << args.source_path
|
128
|
+
self.library_path << args.library_path
|
129
|
+
self.library_path << args.include_libraries
|
130
|
+
self.library_path << args.external_library_path
|
131
|
+
args.source_path.each { |p| self.doc_classes << ASRake::get_classes(p) } if args.kind_of? ASRake::CompcArguments_Module
|
132
|
+
end
|
133
|
+
|
134
|
+
def execute(&block)
|
73
135
|
command = "#{FlexSDK::asdoc}"
|
74
136
|
|
75
137
|
@@compiler_args.each do |name, type|
|
@@ -78,12 +140,19 @@ class Asdoc
|
|
78
140
|
case type
|
79
141
|
when :bool
|
80
142
|
command << " -#{arg}=#{value}" if value
|
81
|
-
when :
|
143
|
+
when :dirs
|
82
144
|
value.flatten!
|
83
|
-
value
|
145
|
+
value.uniq!
|
146
|
+
value = value.map{|s| s.index(' ') != nil ? "\"#{s}\"" : s} if value.length > 1
|
84
147
|
command << " -#{arg} #{cf value.join(' ')}" if !value.empty?
|
85
148
|
when :dir
|
86
149
|
command << " -#{arg}=#{cf value}" if value != nil
|
150
|
+
when :array
|
151
|
+
value.flatten!
|
152
|
+
value.uniq!
|
153
|
+
command << " -#{arg} #{value.join(' ')}" if !value.empty?
|
154
|
+
when :string
|
155
|
+
command << " -#{arg} #{value}" if value != nil
|
87
156
|
else
|
88
157
|
fail "unknown type #{type}"
|
89
158
|
end
|
@@ -99,7 +168,8 @@ class Asdoc
|
|
99
168
|
|
100
169
|
command << " #{additional_args}" if self.additional_args != nil
|
101
170
|
|
102
|
-
|
171
|
+
puts if !block_given?
|
172
|
+
run(command, true, &block)
|
103
173
|
end
|
104
174
|
|
105
175
|
end
|
@@ -115,7 +115,7 @@ module BaseCompilerArguments_Module
|
|
115
115
|
end
|
116
116
|
|
117
117
|
def to_s
|
118
|
-
|
118
|
+
@output
|
119
119
|
end
|
120
120
|
|
121
121
|
#
|
@@ -198,8 +198,11 @@ module BaseCompilerArguments_Module
|
|
198
198
|
|
199
199
|
def build(tips=true)
|
200
200
|
fail "Compiler not defined in #{self}" if compiler == nil
|
201
|
+
puts
|
201
202
|
if tips
|
203
|
+
puts "> #{compiler}#{generate_args}"
|
202
204
|
run "#{compiler}#{generate_args}" do |line|
|
205
|
+
puts "> #{line}"
|
203
206
|
generate_error_message_tips(line)
|
204
207
|
end
|
205
208
|
else
|
data/lib/asrake/compc_args.rb
CHANGED
data/lib/asrake/compc_task.rb
CHANGED
@@ -48,30 +48,29 @@ class CompcTask < BaseCompilerTask
|
|
48
48
|
if @include_asdoc
|
49
49
|
file self.output do
|
50
50
|
asdoc = ASRake::Asdoc.new
|
51
|
-
asdoc.output = "#{self.output_dir}/.
|
52
|
-
asdoc.
|
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
|
51
|
+
asdoc.output = "#{self.output_dir}/.asrake_temp/"
|
52
|
+
asdoc.add(self)
|
58
53
|
asdoc.keep_xml = true
|
59
54
|
asdoc.skip_xsl = true
|
60
55
|
asdoc.lenient = true
|
61
|
-
asdoc.
|
62
|
-
asdoc.execute
|
56
|
+
asdoc.execute { |line| }
|
63
57
|
|
64
58
|
if output_is_dir?
|
65
59
|
cp_r File.join(asdoc.output, 'tempdita'), File.join(self.output_dir, 'docs')
|
66
60
|
else
|
67
61
|
Zip::ZipFile.open(self.output) do |zipfile|
|
62
|
+
# remove any existing docs (eg, from -include-libraries linking a swc with asdoc)
|
63
|
+
begin
|
64
|
+
zipfile.remove('docs')
|
65
|
+
rescue
|
66
|
+
end
|
68
67
|
FileList[File.join(asdoc.output, 'tempdita', '*')].each do |file|
|
69
68
|
zipfile.add(File.join('docs', File.basename(file)), file)
|
70
69
|
end
|
71
70
|
end
|
72
71
|
end
|
73
72
|
|
74
|
-
rm_rf asdoc.output
|
73
|
+
rm_rf asdoc.output, :verbose => false
|
75
74
|
end
|
76
75
|
end
|
77
76
|
|
data/lib/asrake/host.rb
CHANGED
@@ -16,10 +16,10 @@ end
|
|
16
16
|
def run(command, abort_on_failure = true)
|
17
17
|
command.strip!
|
18
18
|
|
19
|
-
puts "> #{command}"
|
19
|
+
puts "> #{command}" if !block_given?
|
20
20
|
IO.popen("#{command} 2>&1") do |proc|
|
21
21
|
while !proc.closed? && (line = proc.gets)
|
22
|
-
puts "> #{line}"
|
22
|
+
puts "> #{line}" if !block_given?
|
23
23
|
yield line if block_given?
|
24
24
|
end
|
25
25
|
end
|
data/lib/asrake/version_task.rb
CHANGED
@@ -45,8 +45,13 @@ class VersionTask < Rake::TaskLib
|
|
45
45
|
puts "Incremented version from #{@version} to #{save(@version.bump!(:revision))}"
|
46
46
|
when ''
|
47
47
|
puts "Current version is #{@version}"
|
48
|
+
puts "Version number format is Major.Minor.Revision (aka Major.Minor.Patch)"
|
49
|
+
puts "To increment the version, provide the respective part as an argument."
|
50
|
+
puts "rake #{@version_task}[major] => #{@version.bump(:major)}"
|
51
|
+
puts "rake #{@version_task}[minor] => #{@version.bump(:minor)}"
|
52
|
+
puts "rake #{@version_task}[revision] => #{@version.bump(:revision)}"
|
48
53
|
else
|
49
|
-
fail "Invalid version argument '#{args[:part]}', run 'rake #{@
|
54
|
+
fail "Invalid version argument '#{args[:part]}', run 'rake #{@version_task}' for help."
|
50
55
|
end
|
51
56
|
@sync_task.execute()
|
52
57
|
end
|
@@ -60,17 +65,7 @@ class VersionTask < Rake::TaskLib
|
|
60
65
|
|
61
66
|
#add to this task to perform some operation post-bump
|
62
67
|
@sync_task = task :sync
|
63
|
-
|
64
|
-
desc "Display help for version task"
|
65
|
-
@help_task = task :help do
|
66
|
-
puts "Version number format is Major.Minor.Revision (aka Major.Minor.Patch)"
|
67
|
-
puts "To display the current version, run without arguments"
|
68
|
-
puts "rake #{@version_task} => #{@version}"
|
69
|
-
puts "To increment the version, provide the respective part as an argument."
|
70
|
-
puts "rake #{@version_task}[major] => #{@version.bump(:major)}"
|
71
|
-
puts "rake #{@version_task}[minor] => #{@version.bump(:minor)}"
|
72
|
-
puts "rake #{@version_task}[revision] => #{@version.bump(:revision)}"
|
73
|
-
end
|
68
|
+
|
74
69
|
end
|
75
70
|
|
76
71
|
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.11.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-09-
|
12
|
+
date: 2012-09-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -73,7 +73,6 @@ files:
|
|
73
73
|
- lib/asrake/asdoc.rb
|
74
74
|
- lib/asrake/base_compiler_args.rb
|
75
75
|
- lib/asrake/base_compiler_task.rb
|
76
|
-
- lib/asrake/clean_task.rb
|
77
76
|
- lib/asrake/compc_args.rb
|
78
77
|
- lib/asrake/compc_task.rb
|
79
78
|
- lib/asrake/file_utils.rb
|
data/lib/asrake/clean_task.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'rake/tasklib'
|
2
|
-
|
3
|
-
module ASRake
|
4
|
-
class CleanTask < Rake::TaskLib
|
5
|
-
|
6
|
-
attr_accessor :clean_list
|
7
|
-
attr_accessor :clobber_list
|
8
|
-
|
9
|
-
def initialize(*args)
|
10
|
-
|
11
|
-
self.clean_list = FileList.new
|
12
|
-
self.clobber_list = FileList.new
|
13
|
-
|
14
|
-
args.each do |configArgs|
|
15
|
-
clean_list.include(File.join(configArgs.output_dir, "*"))
|
16
|
-
clean_list.exclude(configArgs.output)
|
17
|
-
|
18
|
-
clobber_list.include(File.join(configArgs.output_dir, "*"))
|
19
|
-
end
|
20
|
-
|
21
|
-
desc "Remove package results & build artifacts"
|
22
|
-
task :clean do
|
23
|
-
clean_list.each { |f| rm_r f rescue nil }
|
24
|
-
end
|
25
|
-
|
26
|
-
desc "Remove all build & package results"
|
27
|
-
# adding clean as a dependency in case anything is added to the clean task later
|
28
|
-
task :clobber => [:clean] do
|
29
|
-
clobber_list.each { |f| rm_r f rescue nil }
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
33
|
-
end
|
34
|
-
end
|