moneypools-sprouts-extensions 0.1.4
Sign up to get free protection for your applications and to get access to all the features.
- data/.document +5 -0
- data/.gitignore +6 -0
- data/README.markdown +45 -0
- data/Rakefile +33 -0
- data/VERSION +1 -0
- data/lib/sprouts-extensions.rb +66 -0
- data/lib/sprouts-extensions/rsl_manager.rb +44 -0
- data/lib/sprouts-extensions/tasks.rb +16 -0
- metadata +62 -0
data/.document
ADDED
data/.gitignore
ADDED
data/README.markdown
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
sprouts-extensions
|
2
|
+
=============
|
3
|
+
|
4
|
+
Purpose
|
5
|
+
========
|
6
|
+
Sprout-extensions is a set of little extensions monkey-patched into Sprout. It adds:
|
7
|
+
|
8
|
+
* the ability to use gems/tools on github
|
9
|
+
|
10
|
+
mxmlc "app.swf" do |t|
|
11
|
+
t.gem_name = 'jerryvos-sprout-flexsystemsdk-tool'
|
12
|
+
end
|
13
|
+
|
14
|
+
* the ability to easily alias your sprout task to a simpler, namespaced version
|
15
|
+
|
16
|
+
namespace :build do
|
17
|
+
desc "Compile the main swf"
|
18
|
+
mxmlc "app.swf" do |t|
|
19
|
+
t.task_alias = 'main' # the alias
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# rake -T
|
24
|
+
rake app.swf # Compile the main swf
|
25
|
+
rake build:main # Compile the main swf
|
26
|
+
|
27
|
+
* smarter tracking of when a rebuild actually has to happen when your task isn't named the same as your output file
|
28
|
+
* For the following task, sprout/rake will always rebuild the file, even if it already exists and the dependencies are up-to-date. With sprout-extension this doesn't happen
|
29
|
+
|
30
|
+
mxmlc "my_task_name" do |t|
|
31
|
+
t.output = "my_app.swf"
|
32
|
+
end
|
33
|
+
|
34
|
+
Usage
|
35
|
+
========
|
36
|
+
Install with gem install jerryvos-sprouts-extensions --source=http://gems.github.com
|
37
|
+
|
38
|
+
Update your Rakefile
|
39
|
+
require 'sprout'
|
40
|
+
#...
|
41
|
+
|
42
|
+
# Add this line
|
43
|
+
require 'sprouts-extensions'
|
44
|
+
|
45
|
+
# continue on
|
data/Rakefile
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
|
4
|
+
begin
|
5
|
+
require 'jeweler'
|
6
|
+
Jeweler::Tasks.new do |gem|
|
7
|
+
gem.name = "moneypools-sprouts-extensions"
|
8
|
+
gem.summary = %Q{Some extensions to sprout}
|
9
|
+
gem.email = "jerry.vos@gmail.com"
|
10
|
+
gem.homepage = "http://github.com/moneypools/sprout-extensions"
|
11
|
+
gem.authors = ["Richie Vos"]
|
12
|
+
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
13
|
+
end
|
14
|
+
|
15
|
+
rescue LoadError
|
16
|
+
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
17
|
+
end
|
18
|
+
|
19
|
+
require 'rake/rdoctask'
|
20
|
+
Rake::RDocTask.new do |rdoc|
|
21
|
+
if File.exist?('VERSION.yml')
|
22
|
+
config = YAML.load(File.read('VERSION.yml'))
|
23
|
+
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
24
|
+
else
|
25
|
+
version = ""
|
26
|
+
end
|
27
|
+
|
28
|
+
rdoc.rdoc_dir = 'rdoc'
|
29
|
+
rdoc.title = "sprout-extensions #{version}"
|
30
|
+
rdoc.rdoc_files.include('README*')
|
31
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
32
|
+
end
|
33
|
+
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.1.4
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'sprout'
|
2
|
+
sprout 'as3'
|
3
|
+
|
4
|
+
# enable github as a source
|
5
|
+
Sprout::Sprout.gem_sources += ['http://gems.github.com']
|
6
|
+
|
7
|
+
Sprout::ToolTask.class_eval do
|
8
|
+
# namespace respecting alias for this task.
|
9
|
+
# ToolTask is a file_task which generally doesn't respect namespacing.
|
10
|
+
# Since we DO want to namespace these commands, we're going to create the non-namespaced version
|
11
|
+
# and then build a task which is namespaced that just invokes the real one.
|
12
|
+
# Feels shady, but less shady than other solutions.
|
13
|
+
def task_alias=(task_alias)
|
14
|
+
desc name
|
15
|
+
task task_alias => name
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
Sprout::ToolTask.class_eval do
|
20
|
+
def switch_param_type(name, type)
|
21
|
+
original_param = param_hash[name]
|
22
|
+
params.delete original_param
|
23
|
+
|
24
|
+
new_param = create_param(type)
|
25
|
+
new_param.init do |p|
|
26
|
+
p.belongs_to = self
|
27
|
+
p.name = name
|
28
|
+
p.type = type
|
29
|
+
yield p if block_given?
|
30
|
+
end
|
31
|
+
|
32
|
+
param_hash[name] = new_param
|
33
|
+
params << new_param
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
Sprout::MXMLCTask.class_eval do
|
38
|
+
def initialize_task_with_fixed_rsls(*args)
|
39
|
+
value = initialize_task_without_fixed_rsls(*args)
|
40
|
+
switch_param_type('runtime_shared_library_path', 'strings')
|
41
|
+
value
|
42
|
+
end
|
43
|
+
|
44
|
+
alias_method :initialize_task_without_fixed_rsls, :initialize_task
|
45
|
+
alias_method :initialize_task, :initialize_task_with_fixed_rsls
|
46
|
+
end
|
47
|
+
|
48
|
+
|
49
|
+
# make the task a little smarter about how it determines when it needs to rebuild. Normally it bases
|
50
|
+
# this on the name of the task, but since these sprout tasks explicitly have an output file, use that
|
51
|
+
# instead.
|
52
|
+
[Sprout::COMPCTask, Sprout::MXMLCTask].each do |task_class|
|
53
|
+
task_class.class_eval do
|
54
|
+
def self.needed?()
|
55
|
+
! File.exist?(output) || out_of_date?(timestamp)
|
56
|
+
end
|
57
|
+
|
58
|
+
def timestamp
|
59
|
+
if File.exist?(output)
|
60
|
+
File.mtime(output.to_s)
|
61
|
+
else
|
62
|
+
Rake::EARLY
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
3
|
+
class RSLManager
|
4
|
+
include Singleton
|
5
|
+
|
6
|
+
attr_reader :source_dir, :output_dir
|
7
|
+
|
8
|
+
def load_params(params)
|
9
|
+
@source_dir, @output_dir = params.values_at(:source_dir, :output_dir)
|
10
|
+
@rsls, @trust_file_name = params.values_at(:rsls, :trust_file_name)
|
11
|
+
end
|
12
|
+
|
13
|
+
def copy_files
|
14
|
+
FileUtils.mkdir_p output_dir
|
15
|
+
@rsls.each do |rsl|
|
16
|
+
FileUtils.cp File.join(source_dir, 'frameworks/rsls', rsl), output_dir
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def add_output_to_trust_dirs
|
21
|
+
File.open(File.join(trust_dir, @trust_file_name), 'w') do |file|
|
22
|
+
file.puts(File.expand_path(output_dir))
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
# based on http://www.adobe.com/devnet/flashplayer/articles/flash_player_admin_guide/flash_player_admin_guide.pdf
|
28
|
+
# around page 83
|
29
|
+
def trust_dir
|
30
|
+
if PLATFORM =~ /(mswin)|(mingw)/
|
31
|
+
# vista
|
32
|
+
# "C:\Users\username\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust"
|
33
|
+
|
34
|
+
# windows 2000 & XP
|
35
|
+
File.join(ENV['HOME'], 'Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust')
|
36
|
+
elsif PLATFORM =~ /darwin/
|
37
|
+
File.join(ENV['HOME'], 'Library/Preferences/Macromedia/Flash Player/#Security/FlashPlayerTrust')
|
38
|
+
elsif PLATFORM =~ /linux/
|
39
|
+
File.join(ENV['HOME'], '.macromedia/#Security/FlashPlayerTrust')
|
40
|
+
else
|
41
|
+
raise "Unsupported platform #{PLATFORM}"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'sprouts-extensions/rsl_manager'
|
2
|
+
|
3
|
+
namespace :rsl do
|
4
|
+
desc "Copies the specified framework rsls into the output directory"
|
5
|
+
task :copy do
|
6
|
+
RSLManager.instance.copy_files
|
7
|
+
end
|
8
|
+
|
9
|
+
desc "Sets up the output directory of the rsls to be a trusted dir for running in the flash stand-alone"
|
10
|
+
task :configure_trust do
|
11
|
+
RSLManager.instance.add_output_to_trust_dirs
|
12
|
+
end
|
13
|
+
|
14
|
+
desc "Sets up the rsls"
|
15
|
+
task :setup => ['copy', 'configure_trust']
|
16
|
+
end
|
metadata
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: moneypools-sprouts-extensions
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Richie Vos
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
|
12
|
+
date: 2009-11-23 00:00:00 -06:00
|
13
|
+
default_executable:
|
14
|
+
dependencies: []
|
15
|
+
|
16
|
+
description:
|
17
|
+
email: jerry.vos@gmail.com
|
18
|
+
executables: []
|
19
|
+
|
20
|
+
extensions: []
|
21
|
+
|
22
|
+
extra_rdoc_files:
|
23
|
+
- README.markdown
|
24
|
+
files:
|
25
|
+
- .document
|
26
|
+
- .gitignore
|
27
|
+
- README.markdown
|
28
|
+
- Rakefile
|
29
|
+
- VERSION
|
30
|
+
- lib/sprouts-extensions.rb
|
31
|
+
- lib/sprouts-extensions/rsl_manager.rb
|
32
|
+
- lib/sprouts-extensions/tasks.rb
|
33
|
+
has_rdoc: true
|
34
|
+
homepage: http://github.com/moneypools/sprout-extensions
|
35
|
+
licenses: []
|
36
|
+
|
37
|
+
post_install_message:
|
38
|
+
rdoc_options:
|
39
|
+
- --charset=UTF-8
|
40
|
+
require_paths:
|
41
|
+
- lib
|
42
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
43
|
+
requirements:
|
44
|
+
- - ">="
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: "0"
|
47
|
+
version:
|
48
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
49
|
+
requirements:
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: "0"
|
53
|
+
version:
|
54
|
+
requirements: []
|
55
|
+
|
56
|
+
rubyforge_project:
|
57
|
+
rubygems_version: 1.3.5
|
58
|
+
signing_key:
|
59
|
+
specification_version: 3
|
60
|
+
summary: Some extensions to sprout
|
61
|
+
test_files: []
|
62
|
+
|