buildr-as3 0.2.32.pre → 0.2.33.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/Gemfile CHANGED
@@ -3,12 +3,15 @@ source "http://rubygems.org"
3
3
  # Example:
4
4
  # gem "activesupport", ">= 2.3.5"
5
5
 
6
+ gem "archive-tar-minitar", "~> 0.5.2"
7
+ gem "buildr", "~> 1.4.6"
8
+
6
9
  # Add dependencies to develop your gem here.
7
10
  # Include everything needed to run rake, tests, features, etc.
8
11
  group :development do
9
12
  gem "shoulda", ">= 0"
10
- gem "bundler", "~> 1.0.0"
11
- gem "jeweler", "~> 1.5.2"
13
+ gem "bundler", "~> 1.1.3"
14
+ gem "jeweler", "~> 1.8.3"
12
15
  gem "buildr", "~> 1.4.6"
13
16
  #gem "rcov", ">= 0"
14
17
  gem "simplecov", :require => false
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.32.pre
1
+ 0.2.33.pre
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "buildr-as3"
8
- s.version = "0.2.32.pre"
8
+ s.version = "0.2.33.pre"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Dominic Graefen"]
12
- s.date = "2012-02-19"
12
+ s.date = "2012-03-30"
13
13
  s.description = "Build like you code - now supporting ActionScript 3 & Flex"
14
14
  s.email = "dominic @nospam@ devboy.org"
15
15
  s.executables = ["buildr-as3"]
@@ -48,10 +48,12 @@ Gem::Specification.new do |s|
48
48
  "lib/buildr/as3/test/base.rb",
49
49
  "lib/buildr/as3/test/flexunit4.rb",
50
50
  "lib/buildr/as3/toolkits.rb",
51
+ "lib/buildr/as3/toolkits/airsdk.rb",
51
52
  "lib/buildr/as3/toolkits/alchemy.rb",
52
53
  "lib/buildr/as3/toolkits/apparat.rb",
53
54
  "lib/buildr/as3/toolkits/base.rb",
54
55
  "lib/buildr/as3/toolkits/flexsdk.rb",
56
+ "lib/buildr/as3/toolkits/player.rb",
55
57
  "rake/jeweler.rb",
56
58
  "rake/jeweler_prerelease_tasks.rb",
57
59
  "rake/pre_release_gemspec.rb",
@@ -68,26 +70,18 @@ Gem::Specification.new do |s|
68
70
  s.homepage = "http://github.com/devboy/buildr_as3"
69
71
  s.licenses = ["MIT"]
70
72
  s.require_paths = ["lib"]
71
- s.rubygems_version = "1.8.11"
73
+ s.rubygems_version = "1.8.21"
72
74
  s.summary = "Buildr extension to allow ActionScript3/Flex development."
73
- s.test_files = [
74
- "spec/as3/compiler/aircompc_spec.rb",
75
- "spec/as3/compiler/airmxmlc_spec.rb",
76
- "spec/as3/compiler/compc_spec.rb",
77
- "spec/as3/compiler/mxmlc_spec.rb",
78
- "spec/as3/compiler/task_spec.rb",
79
- "spec/as3/project_spec.rb",
80
- "spec/sandbox.rb",
81
- "spec/spec_helper.rb"
82
- ]
83
75
 
84
76
  if s.respond_to? :specification_version then
85
77
  s.specification_version = 3
86
78
 
87
79
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
80
+ s.add_runtime_dependency(%q<archive-tar-minitar>, ["~> 0.5.2"])
81
+ s.add_runtime_dependency(%q<buildr>, ["~> 1.4.6"])
88
82
  s.add_development_dependency(%q<shoulda>, [">= 0"])
89
- s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
90
- s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
83
+ s.add_development_dependency(%q<bundler>, ["~> 1.1.3"])
84
+ s.add_development_dependency(%q<jeweler>, ["~> 1.8.3"])
91
85
  s.add_development_dependency(%q<buildr>, ["~> 1.4.6"])
92
86
  s.add_development_dependency(%q<simplecov>, [">= 0"])
93
87
  s.add_development_dependency(%q<simplecov-rcov>, [">= 0"])
@@ -95,9 +89,11 @@ Gem::Specification.new do |s|
95
89
  s.add_development_dependency(%q<ci_reporter>, ["~> 1.6.5"])
96
90
  s.add_runtime_dependency(%q<buildr>, [">= 1.4.6"])
97
91
  else
92
+ s.add_dependency(%q<archive-tar-minitar>, ["~> 0.5.2"])
93
+ s.add_dependency(%q<buildr>, ["~> 1.4.6"])
98
94
  s.add_dependency(%q<shoulda>, [">= 0"])
99
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
100
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
95
+ s.add_dependency(%q<bundler>, ["~> 1.1.3"])
96
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
101
97
  s.add_dependency(%q<buildr>, ["~> 1.4.6"])
102
98
  s.add_dependency(%q<simplecov>, [">= 0"])
103
99
  s.add_dependency(%q<simplecov-rcov>, [">= 0"])
@@ -106,9 +102,11 @@ Gem::Specification.new do |s|
106
102
  s.add_dependency(%q<buildr>, [">= 1.4.6"])
107
103
  end
108
104
  else
105
+ s.add_dependency(%q<archive-tar-minitar>, ["~> 0.5.2"])
106
+ s.add_dependency(%q<buildr>, ["~> 1.4.6"])
109
107
  s.add_dependency(%q<shoulda>, [">= 0"])
110
- s.add_dependency(%q<bundler>, ["~> 1.0.0"])
111
- s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
108
+ s.add_dependency(%q<bundler>, ["~> 1.1.3"])
109
+ s.add_dependency(%q<jeweler>, ["~> 1.8.3"])
112
110
  s.add_dependency(%q<buildr>, ["~> 1.4.6"])
113
111
  s.add_dependency(%q<simplecov>, [">= 0"])
114
112
  s.add_dependency(%q<simplecov-rcov>, [">= 0"])
@@ -28,4 +28,4 @@ require "#{File.dirname(__FILE__)}/as3/packaging"
28
28
  require "#{File.dirname(__FILE__)}/as3/toolkits"
29
29
  require "#{File.dirname(__FILE__)}/as3/ide"
30
30
  require "#{File.dirname(__FILE__)}/as3/doc"
31
- require File.dirname(__FILE__) + '/as3/test'
31
+ require "#{File.dirname(__FILE__)}/as3/test"
@@ -21,8 +21,10 @@
21
21
  #
22
22
 
23
23
  require "#{File.dirname(__FILE__)}/toolkits/base"
24
- require "#{File.dirname(__FILE__)}/toolkits/flexsdk"
25
24
  require "#{File.dirname(__FILE__)}/toolkits/apparat"
26
25
  require "#{File.dirname(__FILE__)}/toolkits/alchemy"
26
+ require "#{File.dirname(__FILE__)}/toolkits/flexsdk"
27
+ require "#{File.dirname(__FILE__)}/toolkits/airsdk"
28
+ require "#{File.dirname(__FILE__)}/toolkits/player"
27
29
 
28
30
  include Buildr::AS3::Toolkits
@@ -0,0 +1,62 @@
1
+ #
2
+ # Copyright (C) 2012 by Justin Walsh / http://theJustinWalsh.com
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ # of this software and associated documentation files (the "Software"), to deal
6
+ # in the Software without restriction, including without limitation the rights
7
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ # copies of the Software, and to permit persons to whom the Software is
9
+ # furnished to do so, subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in
12
+ # all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ # THE SOFTWARE.
21
+ #
22
+
23
+ module Buildr
24
+ module AS3
25
+ module Toolkits
26
+ class AirSDK < Buildr::AS3::Toolkits::ZipToolkiteBase
27
+
28
+ attr_reader :home, :version
29
+
30
+ def initialize(version)
31
+ @version = version
32
+ @spec = "com.adobe.air:sdk:zip:#{version.gsub(/ /, '-')}"
33
+ @zip = Buildr.artifact(@spec)
34
+ @home = @zip_destination = File.join(File.dirname(@zip.to_s), "sdk-#{version.gsub(/ /, '-')}")
35
+ self
36
+ end
37
+
38
+ def invoke #:nodoc:
39
+ @url ||= generate_url_from_version @version
40
+ super
41
+ self
42
+ end
43
+
44
+ def from(url)
45
+ @url = url
46
+ self
47
+ end
48
+ private
49
+
50
+ def generate_url_from_version(version)
51
+ version_major = version.split(".")[0]
52
+ version_minor = version.split(".")[1]
53
+ version_id = "#{version_major}.#{version_minor}"
54
+ os = Buildr::Util.win_os? ? "win" : "mac"
55
+ ext = Buildr::Util.win_os? ? "zip" : "tbz2"
56
+
57
+ "http://airdownload.adobe.com/air/#{os}/download/#{version_id}/AdobeAIRSDK.#{ext}"
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -33,7 +33,7 @@ module Buildr
33
33
  @version = version
34
34
  @spec = "com.googlecode:apparat-bin:zip:#{@version}"
35
35
  @zip = Buildr.artifact(@spec)
36
- @zip_destination = File.join(File.dirname(@zip.to_s), "apparat-#{@version}", "apparat-#{@version}")
36
+ @zip_destination = File.join(File.dirname(@zip.to_s),"apparat")
37
37
  generate_paths @zip_destination, @version
38
38
  end
39
39
 
@@ -65,7 +65,7 @@ module Buildr
65
65
  end
66
66
 
67
67
  def generate_paths(home_dir, version)
68
- @home = home_dir
68
+ @home = "#{home_dir}/apparat-#{version}"
69
69
  bat_ext = Buildr::Util.win_os? ? "" : ""
70
70
  @apparat = "#{@home}/apparat#{bat_ext}"
71
71
  @asmifier = "#{@home}/asmifier#{bat_ext}"
@@ -91,8 +91,8 @@ module Buildr
91
91
  compile.options[:apparat].invoke
92
92
  cmd_args = []
93
93
  cmd_args << "apparat.tools.tdsi.TurboDieselSportInjection"
94
- cmd_args << "-i #{output}"
95
- cmd_args << "-o #{output}"
94
+ cmd_args << "-i" << "#{output}"
95
+ cmd_args << "-o" << "#{output}"
96
96
  reserved = []
97
97
  options.to_hash.reject { |key, value| reserved.include?(key) }.
98
98
  each do |key, value|
@@ -106,8 +106,8 @@ module Buildr
106
106
  compile.options[:apparat].invoke
107
107
  cmd_args = []
108
108
  cmd_args << "apparat.tools.reducer.Reducer"
109
- cmd_args << "-i #{output}"
110
- cmd_args << "-o #{output}"
109
+ cmd_args << "-i" << "#{output}"
110
+ cmd_args << "-o" << "#{output}"
111
111
  reserved = []
112
112
  options.to_hash.reject { |key, value| reserved.include?(key) }.
113
113
  each do |key, value|
@@ -121,7 +121,12 @@ module Buildr
121
121
  def call_system(args)
122
122
  unless Buildr.application.options.dryrun
123
123
  cp = compile.options[:apparat].scala_dependencies + compile.options[:apparat].apparat_dependencies
124
- sh (['java', '-classpath', cp.join(":")] + args).join(" ")
124
+ sep = Buildr::Util.win_os? ? ";" : ":"
125
+ cmd_args = ['-classpath', cp.join(sep)] + args
126
+ unless Buildr.application.options.dryrun
127
+ trace(cmd_args.join(' '))
128
+ Java::Commands.java cmd_args
129
+ end
125
130
  end
126
131
  end
127
132
 
@@ -20,6 +20,8 @@
20
20
  # THE SOFTWARE.
21
21
  #
22
22
 
23
+ include Archive::Tar
24
+
23
25
  module Buildr
24
26
  module AS3
25
27
  module Toolkits
@@ -32,8 +34,15 @@ module Buildr
32
34
  else
33
35
  Buildr::download(Buildr::artifact(@spec) => @url).invoke
34
36
  end unless File.exists? @zip.to_s
35
-
36
- unzip_toolkit(@zip,@zip_destination)
37
+ begin
38
+ unarchive(@zip,@zip_destination).invoke
39
+ rescue Exception => e
40
+ if Buildr::Util.win_os? and e.message.include? "symlink() function is unimplemented"
41
+ warn "Disregarding symlink() issue on Windows"
42
+ else
43
+ raise e
44
+ end
45
+ end
37
46
 
38
47
  self
39
48
  end
@@ -42,9 +51,9 @@ module Buildr
42
51
  # from(url) => self
43
52
  #
44
53
  # * You can pass a url where the ToolkitArtifact should be downloaded from as a string:
45
- # FLEX_SDK.from("http://domain.tld/flex_sdk.zip")
54
+ # from("http://domain.tld/toolkit.zip")
46
55
  # * You can pass :maven as a parameter to download it from a maven repository:
47
- # FLEX_SDK.from(:maven)
56
+ # from(:maven)
48
57
  # * If you don't call this function at all, buildr-as3 will try and resolve a url on automatically
49
58
  def from(url)
50
59
  @url = url
@@ -53,28 +62,13 @@ module Buildr
53
62
 
54
63
  protected
55
64
 
56
- def system_unzip_toolkit(zip, destination)
57
- project_dir = Dir.getwd
58
- Dir.chdir File.dirname(zip.to_s)
59
- system("unzip #{File.basename(zip.to_s).to_s} -d #{File.basename(destination).to_s}")
60
- Dir.chdir project_dir
61
- end
62
-
63
- def unzip_toolkit(zip,destination)
64
- unless File.exists? destination
65
- puts "Unzipping Archive, this might take a while."
66
- if Buildr::Util.win_os?
67
- puts "Please make sure unzip is installed and in your PATH variable!"
68
- system_unzip_toolkit zip, destination
69
- else
70
- begin
71
- # Buildr.unzip(destination.to_s=>zip.to_s).target.invoke
72
- # rescue TypeError
73
- # puts "RubyZip extract failed, trying system unzip now."
74
- puts "Please make sure unzip is installed and in your PATH variable!"
75
- system_unzip_toolkit zip, destination
76
- end
65
+ def unarchive(archive,destination)
66
+ if @url.to_s =~ /\.tar\.bz2$/ || @url.to_s =~ /\.tbz2$/
67
+ file destination => archive do
68
+ Minitar.unpack(archive, destination)
77
69
  end
70
+ else
71
+ Buildr.unzip( destination => archive ).target
78
72
  end
79
73
  end
80
74
 
@@ -20,29 +20,45 @@
20
20
  # THE SOFTWARE.
21
21
  #
22
22
 
23
+ require "fileutils"
24
+ require "rexml/document"
25
+ include REXML
26
+
23
27
  module Buildr
24
28
  module AS3
25
29
  module Toolkits
26
30
  class FlexSDK < Buildr::AS3::Toolkits::ZipToolkiteBase
27
31
 
32
+ SDK_OPTIONS = [:player, :airsdk]
33
+
28
34
  attr_reader :home, :mxmlc_jar, :compc_jar, :asdoc_jar, :fcsh_jar, :flex_config,
29
- :asdoc_templates, :default_options, :air_config, :bin, :adt_jar, :adl
35
+ :asdoc_templates, :default_options, :air_config, :airmobile_config, :bin, :adt_jar, :adl
30
36
 
31
37
  attr_writer :flex_config, :air_config, :asdoc_templates
32
38
 
33
- def initialize(version)
39
+ def initialize(version, options={})
34
40
  @version = version
35
41
  @default_options = []
36
42
  @spec = "com.adobe.flex:sdk:zip:#{@version}"
37
43
  @zip = Buildr.artifact(@spec)
38
44
  @zip_destination = File.join(File.dirname(@zip.to_s), "sdk-#{@version}")
45
+
46
+ @player = options[:player] if options[:player].instance_of?(Player)
47
+ @airsdk = options[:airsdk] if options[:airsdk].instance_of?(AirSDK)
48
+
39
49
  generate_paths @zip_destination
40
50
  self
41
51
  end
42
52
 
43
53
  def invoke #:nodoc:
54
+ @player.invoke unless @player.nil?
55
+ @airsdk.invoke unless @airsdk.nil?
44
56
  @url ||= generate_url_from_version @version
45
57
  super
58
+
59
+ # Configuration files must be generated after the SDKs are installed
60
+ generate_configs
61
+
46
62
  self
47
63
  end
48
64
 
@@ -102,15 +118,88 @@ module Buildr
102
118
  @mxmlc_jar = "#{@home}/lib/mxmlc.jar"
103
119
  @compc_jar = "#{@home}/lib/compc.jar"
104
120
  @asdoc_jar = "#{@home}/lib/asdoc.jar"
105
- @adt_jar = "#{@home}/lib/adt.jar"
106
- @adl = Buildr::Util.win_os? ? "#{@home}/bin/adl.exe" : "#{@home}/bin/adl"
107
121
  @asdoc_templates = "#{@home}/asdoc/templates"
108
122
  @fcsh_jar = "#{@home}/lib/fcsh.jar"
109
- @flex_config = "#{@home}/frameworks/flex-config.xml"
110
- @air_config = "#{@home}/frameworks/air-config.xml"
111
123
  @bin = "#{@home}/bin"
124
+
125
+ air_home = @airsdk ? @airsdk.home : @home
126
+ @adt_jar = "#{air_home}/lib/adt.jar"
127
+ @adl = Buildr::Util.win_os? ? "#{air_home}/bin/adl.exe" : "#{air_home}/bin/adl"
112
128
  true
113
129
  end
130
+
131
+ def generate_configs
132
+ config_version = @version
133
+ config_version += ".#{@player.version}" if @player
134
+ config_version += ".#{@airsdk.version}" if @airsdk
135
+
136
+ if @player || @airsdk
137
+ # Generate config files
138
+ # TODO: Pretty sure these files are being generated everytime and that the artificate syntax is incorrect
139
+ # Additionally, I tried to use the .content method of the artifact, but it generated errors
140
+
141
+ flex_config = Buildr.artifact("com.adobe.flex:config:xml:flex:#{@config_version}")
142
+ configure("#{@home}/frameworks/flex-config.xml", flex_config)
143
+ @flex_config = flex_config.to_s
144
+
145
+ air_config = Buildr.artifact("com.adobe.flex:config:xml:air:#{@config_version}")
146
+ configure("#{@home}/frameworks/air-config.xml", air_config)
147
+ @air_config = air_config.to_s
148
+
149
+ airmobile_config = Buildr.artifact("com.adobe.flex:config:xml:airmobile:#{@config_version}")
150
+ configure("#{@home}/frameworks/airmobile-config.xml", airmobile_config)
151
+ @airmobile_config = airmobile_config.to_s
152
+ else
153
+ @flex_config = "#{@home}/frameworks/flex-config.xml"
154
+ @air_config = "#{@home}/frameworks/air-config.xml"
155
+ @airmobile_config = "#{@home}/frameworks/airmobile-config.xml"
156
+ end
157
+ end
158
+
159
+ def configure(template, artifact)
160
+ xml = Document.new(File.open(template))
161
+
162
+ # Expand theme into a full path
163
+ theme = xml.elements['/flex-config/compiler/theme/filename']
164
+ theme.text = "#{@home}/frameworks/#{theme.text}" if theme
165
+
166
+ # Expand RSLs into full path
167
+ xml.each_element('/flex-config/runtime-shared-library-path/path-element') { |p|
168
+ p.text = "#{@home}/frameworks/#{p.text}"
169
+ }
170
+
171
+ # Expand frameworks into full path
172
+ xml.each_element('/flex-config/compiler/namespaces/namespace/manifest') { |p|
173
+ p.text = "#{@home}/frameworks/#{p.text}"
174
+ }
175
+
176
+ if @player
177
+ # Overwrite the playrglobal.swc and update the default version and target-player
178
+ xml.elements['/flex-config/swf-version'].text = @player.swf_version unless @player.swf_version.nil?
179
+ xml.elements['/flex-config/target-player'].text = @player.version
180
+ xml.elements['/flex-config/compiler/external-library-path/path-element'].text = @player.swc
181
+ end
182
+
183
+ # Expand the library paths and determine if this config file is an air config file
184
+ is_air_config = false
185
+ air_home = @airsdk ? @airsdk.home : @home
186
+ xml.each_element('/flex-config/compiler/library-path/path-element') { |p|
187
+ if p.text == 'libs/air'
188
+ is_air_config = true
189
+ p.text = "#{air_home}/frameworks/#{p.text}"
190
+ else
191
+ p.text = "#{@home}/frameworks/#{p.text}"
192
+ end
193
+ }
194
+
195
+ # Overwrite the playerglobal.swc w/ airglobal.swc if this is an adobe air config file
196
+ xml.elements['/flex-config/compiler/external-library-path/path-element'].text = "#{air_home}/frameworks/libs/air/airglobal.swc" if is_air_config
197
+
198
+ # Write out the file
199
+ # TODO: This would not be needed if I could figure how to use Artifict::content
200
+ FileUtils.mkdir_p File.dirname(artifact.to_s)
201
+ File.open(artifact.to_s, 'w') {|f| f.write(xml) }
202
+ end
114
203
  end
115
204
  end
116
205
  end
@@ -0,0 +1,68 @@
1
+ #
2
+ # Copyright (C) 2012 by Justin Walsh / http://theJustinWalsh.com
3
+ #
4
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
5
+ # of this software and associated documentation files (the "Software"), to deal
6
+ # in the Software without restriction, including without limitation the rights
7
+ # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8
+ # copies of the Software, and to permit persons to whom the Software is
9
+ # furnished to do so, subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included in
12
+ # all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16
+ # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20
+ # THE SOFTWARE.
21
+ #
22
+
23
+ module Buildr
24
+ module AS3
25
+ module Toolkits
26
+ class Player
27
+
28
+ attr_reader :home, :version, :swf_version, :swc
29
+
30
+ def initialize(version, swf_version=nil)
31
+ @version = version
32
+ if v = /^[0-9.]+/.match(@version) then @version = v[0] end
33
+ @swf_version = swf_version
34
+ @spec = "com.adobe.flex:player:swc:#{version.gsub(/ /, '-')}"
35
+ @playerglobal = Buildr.artifact(@spec)
36
+ @home = File.dirname(@playerglobal.to_s)
37
+ @swc = @playerglobal.to_s
38
+ self
39
+ end
40
+
41
+ def invoke #:nodoc:
42
+ @url ||= generate_url_from_version @version
43
+
44
+ Buildr::download(Buildr::artifact(@spec) => @url).invoke
45
+ return unless File.exists? @playerglobal.to_s
46
+
47
+ self
48
+ end
49
+
50
+ def from(url)
51
+ @url = url
52
+ self
53
+ end
54
+
55
+ private
56
+
57
+ def generate_url_from_version(version)
58
+ version_major = version.split(".")[0]
59
+ version_minor = version.split(".")[1]
60
+ version_minor = 0 # Adobe doesn't seem to store the player global properly
61
+ version_id = "#{version_major}_#{version_minor}"
62
+
63
+ "http://fpdownload.macromedia.com/pub/flashplayer/updaters/#{version_major}/playerglobal#{version_id}.swc"
64
+ end
65
+ end
66
+ end
67
+ end
68
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: buildr-as3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.32.pre
4
+ version: 0.2.33.pre
5
5
  prerelease: 7
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,43 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-02-19 00:00:00.000000000Z
12
+ date: 2012-03-30 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: archive-tar-minitar
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 0.5.2
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 0.5.2
30
+ - !ruby/object:Gem::Dependency
31
+ name: buildr
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ~>
36
+ - !ruby/object:Gem::Version
37
+ version: 1.4.6
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ~>
44
+ - !ruby/object:Gem::Version
45
+ version: 1.4.6
14
46
  - !ruby/object:Gem::Dependency
15
47
  name: shoulda
16
- requirement: &2154164580 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
17
49
  none: false
18
50
  requirements:
19
51
  - - ! '>='
@@ -21,32 +53,47 @@ dependencies:
21
53
  version: '0'
22
54
  type: :development
23
55
  prerelease: false
24
- version_requirements: *2154164580
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
25
62
  - !ruby/object:Gem::Dependency
26
63
  name: bundler
27
- requirement: &2154180480 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
28
65
  none: false
29
66
  requirements:
30
67
  - - ~>
31
68
  - !ruby/object:Gem::Version
32
- version: 1.0.0
69
+ version: 1.1.3
33
70
  type: :development
34
71
  prerelease: false
35
- version_requirements: *2154180480
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 1.1.3
36
78
  - !ruby/object:Gem::Dependency
37
79
  name: jeweler
38
- requirement: &2154180000 !ruby/object:Gem::Requirement
80
+ requirement: !ruby/object:Gem::Requirement
39
81
  none: false
40
82
  requirements:
41
83
  - - ~>
42
84
  - !ruby/object:Gem::Version
43
- version: 1.5.2
85
+ version: 1.8.3
44
86
  type: :development
45
87
  prerelease: false
46
- version_requirements: *2154180000
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ~>
92
+ - !ruby/object:Gem::Version
93
+ version: 1.8.3
47
94
  - !ruby/object:Gem::Dependency
48
95
  name: buildr
49
- requirement: &2154179520 !ruby/object:Gem::Requirement
96
+ requirement: !ruby/object:Gem::Requirement
50
97
  none: false
51
98
  requirements:
52
99
  - - ~>
@@ -54,10 +101,15 @@ dependencies:
54
101
  version: 1.4.6
55
102
  type: :development
56
103
  prerelease: false
57
- version_requirements: *2154179520
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ~>
108
+ - !ruby/object:Gem::Version
109
+ version: 1.4.6
58
110
  - !ruby/object:Gem::Dependency
59
111
  name: simplecov
60
- requirement: &2154179040 !ruby/object:Gem::Requirement
112
+ requirement: !ruby/object:Gem::Requirement
61
113
  none: false
62
114
  requirements:
63
115
  - - ! '>='
@@ -65,10 +117,15 @@ dependencies:
65
117
  version: '0'
66
118
  type: :development
67
119
  prerelease: false
68
- version_requirements: *2154179040
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
69
126
  - !ruby/object:Gem::Dependency
70
127
  name: simplecov-rcov
71
- requirement: &2154178560 !ruby/object:Gem::Requirement
128
+ requirement: !ruby/object:Gem::Requirement
72
129
  none: false
73
130
  requirements:
74
131
  - - ! '>='
@@ -76,10 +133,15 @@ dependencies:
76
133
  version: '0'
77
134
  type: :development
78
135
  prerelease: false
79
- version_requirements: *2154178560
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
80
142
  - !ruby/object:Gem::Dependency
81
143
  name: rspec
82
- requirement: &2154178080 !ruby/object:Gem::Requirement
144
+ requirement: !ruby/object:Gem::Requirement
83
145
  none: false
84
146
  requirements:
85
147
  - - ~>
@@ -87,10 +149,15 @@ dependencies:
87
149
  version: 2.1.0
88
150
  type: :development
89
151
  prerelease: false
90
- version_requirements: *2154178080
152
+ version_requirements: !ruby/object:Gem::Requirement
153
+ none: false
154
+ requirements:
155
+ - - ~>
156
+ - !ruby/object:Gem::Version
157
+ version: 2.1.0
91
158
  - !ruby/object:Gem::Dependency
92
159
  name: ci_reporter
93
- requirement: &2154177600 !ruby/object:Gem::Requirement
160
+ requirement: !ruby/object:Gem::Requirement
94
161
  none: false
95
162
  requirements:
96
163
  - - ~>
@@ -98,10 +165,15 @@ dependencies:
98
165
  version: 1.6.5
99
166
  type: :development
100
167
  prerelease: false
101
- version_requirements: *2154177600
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ none: false
170
+ requirements:
171
+ - - ~>
172
+ - !ruby/object:Gem::Version
173
+ version: 1.6.5
102
174
  - !ruby/object:Gem::Dependency
103
175
  name: buildr
104
- requirement: &2154177120 !ruby/object:Gem::Requirement
176
+ requirement: !ruby/object:Gem::Requirement
105
177
  none: false
106
178
  requirements:
107
179
  - - ! '>='
@@ -109,7 +181,12 @@ dependencies:
109
181
  version: 1.4.6
110
182
  type: :runtime
111
183
  prerelease: false
112
- version_requirements: *2154177120
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ none: false
186
+ requirements:
187
+ - - ! '>='
188
+ - !ruby/object:Gem::Version
189
+ version: 1.4.6
113
190
  description: Build like you code - now supporting ActionScript 3 & Flex
114
191
  email: dominic @nospam@ devboy.org
115
192
  executables:
@@ -149,10 +226,12 @@ files:
149
226
  - lib/buildr/as3/test/base.rb
150
227
  - lib/buildr/as3/test/flexunit4.rb
151
228
  - lib/buildr/as3/toolkits.rb
229
+ - lib/buildr/as3/toolkits/airsdk.rb
152
230
  - lib/buildr/as3/toolkits/alchemy.rb
153
231
  - lib/buildr/as3/toolkits/apparat.rb
154
232
  - lib/buildr/as3/toolkits/base.rb
155
233
  - lib/buildr/as3/toolkits/flexsdk.rb
234
+ - lib/buildr/as3/toolkits/player.rb
156
235
  - rake/jeweler.rb
157
236
  - rake/jeweler_prerelease_tasks.rb
158
237
  - rake/pre_release_gemspec.rb
@@ -180,7 +259,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
180
259
  version: '0'
181
260
  segments:
182
261
  - 0
183
- hash: 3682499044271835405
262
+ hash: 1242639871802554092
184
263
  required_rubygems_version: !ruby/object:Gem::Requirement
185
264
  none: false
186
265
  requirements:
@@ -189,16 +268,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
189
268
  version: 1.3.1
190
269
  requirements: []
191
270
  rubyforge_project:
192
- rubygems_version: 1.8.11
271
+ rubygems_version: 1.8.21
193
272
  signing_key:
194
273
  specification_version: 3
195
274
  summary: Buildr extension to allow ActionScript3/Flex development.
196
- test_files:
197
- - spec/as3/compiler/aircompc_spec.rb
198
- - spec/as3/compiler/airmxmlc_spec.rb
199
- - spec/as3/compiler/compc_spec.rb
200
- - spec/as3/compiler/mxmlc_spec.rb
201
- - spec/as3/compiler/task_spec.rb
202
- - spec/as3/project_spec.rb
203
- - spec/sandbox.rb
204
- - spec/spec_helper.rb
275
+ test_files: []