sprout 0.7.246 → 1.0.0.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/CHANGELOG.md +10 -0
- data/Gemfile +28 -0
- data/MIT-LICENSE +3 -2
- data/POSTINSTALL.rdoc +28 -0
- data/README.textile +152 -0
- data/bin/sprout +1 -131
- data/bin/sprout-generator +10 -0
- data/bin/sprout-library +11 -0
- data/bin/sprout-tool +10 -0
- data/lib/sprout.rb +4 -500
- data/lib/sprout/archive_unpacker.rb +122 -206
- data/lib/sprout/base.rb +90 -0
- data/lib/sprout/concern.rb +30 -0
- data/lib/sprout/dir.rb +23 -0
- data/lib/sprout/errors.rb +94 -0
- data/lib/sprout/executable.rb +496 -0
- data/lib/sprout/executable/boolean.rb +35 -0
- data/lib/sprout/executable/collection_param.rb +53 -0
- data/lib/sprout/executable/file_param.rb +53 -0
- data/lib/sprout/executable/files.rb +26 -0
- data/lib/sprout/executable/number.rb +10 -0
- data/lib/sprout/executable/param.rb +222 -0
- data/lib/sprout/executable/parameter_factory.rb +28 -0
- data/lib/sprout/executable/path.rb +21 -0
- data/lib/sprout/executable/paths.rb +21 -0
- data/lib/sprout/executable/string_param.rb +15 -0
- data/lib/sprout/executable/strings.rb +11 -0
- data/lib/sprout/executable/url.rb +10 -0
- data/lib/sprout/executable/urls.rb +10 -0
- data/lib/sprout/file_target.rb +76 -0
- data/lib/sprout/generator/base.rb +233 -0
- data/lib/sprout/generator/command.rb +67 -0
- data/lib/sprout/generator/directory_manifest.rb +49 -0
- data/lib/sprout/generator/file_manifest.rb +55 -0
- data/lib/sprout/generator/manifest.rb +13 -0
- data/lib/sprout/generator/template_manifest.rb +13 -0
- data/lib/sprout/generators/generator/generator_generator.rb +48 -0
- data/lib/sprout/generators/generator/templates/generator_class.rb +17 -0
- data/lib/sprout/generators/generator/templates/generator_executable +9 -0
- data/lib/sprout/generators/generator/templates/generator_template +1 -0
- data/lib/sprout/generators/generator/templates/generator_test.rb +37 -0
- data/lib/sprout/generators/generator/templates/generator_test_helper.rb +16 -0
- data/lib/sprout/generators/library/library_generator.rb +20 -0
- data/lib/sprout/generators/library/templates/library.gemspec +19 -0
- data/lib/sprout/generators/library/templates/library.rb +15 -0
- data/lib/sprout/generators/ruby/ruby_generator.rb +59 -0
- data/lib/sprout/generators/ruby/templates/ruby_base.rb +10 -0
- data/lib/sprout/generators/ruby/templates/ruby_executable +6 -0
- data/lib/sprout/generators/ruby/templates/ruby_gemfile +4 -0
- data/lib/sprout/generators/ruby/templates/ruby_input.rb +7 -0
- data/lib/sprout/generators/tool/templates/Gemfile +4 -0
- data/lib/sprout/generators/tool/templates/tool.gemspec +22 -0
- data/lib/sprout/generators/tool/templates/tool.rb +38 -0
- data/lib/sprout/generators/tool/tool_generator.rb +36 -0
- data/lib/sprout/library.rb +111 -0
- data/lib/sprout/log.rb +1 -0
- data/lib/sprout/platform.rb +71 -0
- data/lib/sprout/process_runner.rb +80 -40
- data/lib/sprout/progress_bar.rb +341 -0
- data/lib/sprout/rdoc_parser.rb +91 -0
- data/lib/sprout/remote_file_loader.rb +72 -50
- data/lib/sprout/remote_file_target.rb +44 -152
- data/lib/sprout/ruby_feature.rb +167 -0
- data/lib/sprout/specification.rb +197 -0
- data/lib/sprout/string.rb +19 -0
- data/lib/sprout/system.rb +35 -0
- data/lib/sprout/system/base_system.rb +225 -0
- data/lib/sprout/system/java_system.rb +9 -0
- data/lib/sprout/system/osx_system.rb +26 -0
- data/lib/sprout/system/unix_system.rb +72 -0
- data/lib/sprout/system/vista_system.rb +16 -0
- data/lib/sprout/system/win_nix_system.rb +41 -0
- data/lib/sprout/system/win_system.rb +76 -0
- data/lib/sprout/test/sprout_test_case.rb +211 -0
- data/lib/sprout/version.rb +9 -4
- data/rakefile.rb +85 -144
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/sprout.gemspec +26 -0
- data/test/fixtures/archive_unpacker/copyable/some_file.exe +0 -0
- data/test/fixtures/archive_unpacker/copyable/some_file.rb +0 -0
- data/test/fixtures/archive_unpacker/copyable/some_file.swc +0 -0
- data/test/fixtures/archive_unpacker/tgz/some folder.tgz +0 -0
- data/test/fixtures/archive_unpacker/tgz/some_file.tgz +0 -0
- data/test/fixtures/archive_unpacker/zip/some folder.zip +0 -0
- data/test/fixtures/archive_unpacker/zip/some_file.zip +0 -0
- data/test/fixtures/examples/app_generator.rb +127 -0
- data/test/fixtures/examples/echo_inputs.rb +151 -0
- data/test/fixtures/executable/echochamber_gem/bin/echochamber +3 -0
- data/test/fixtures/executable/echochamber_gem/echo_chamber.rb +10 -0
- data/test/fixtures/executable/flex3sdk_gem/flex3sdk.rb +11 -0
- data/test/fixtures/executable/flex3sdk_gem/mxmlc +3 -0
- data/test/fixtures/executable/flex3sdk_gem/mxmlc.bat +3 -0
- data/test/fixtures/executable/mxmlc.rb +805 -0
- data/test/fixtures/executable/params/input.as +0 -0
- data/test/fixtures/executable/params/input2.as +0 -0
- data/test/fixtures/executable/params/input3.as +0 -0
- data/test/fixtures/executable/params/mxmlc +5 -0
- data/test/fixtures/executable/path with spaces/input.as b/data/test/fixtures/executable/path with → spaces/input.as +0 -0
- data/test/fixtures/executable/path with spaces/input2.as b/data/test/fixtures/executable/path with → spaces/input2.as +0 -0
- data/test/fixtures/executable/path with spaces/input3.as b/data/test/fixtures/executable/path with → spaces/input3.as +0 -0
- data/test/fixtures/executable/paths/folder1/file1 +0 -0
- data/test/fixtures/executable/paths/folder1/file2 +0 -0
- data/test/fixtures/executable/paths/folder1/file3 +0 -0
- data/test/fixtures/executable/paths/folder2/file4 +0 -0
- data/test/fixtures/executable/paths/folder2/file5 +0 -0
- data/test/fixtures/executable/paths/folder3/file6 +0 -0
- data/test/fixtures/executable/src/Main.as +0 -0
- data/test/fixtures/executable/windows_line_endings +47 -0
- data/test/fixtures/generators/song_generator.rb +11 -0
- data/test/fixtures/generators/song_subclass/least_favorite.rb +10 -0
- data/test/fixtures/generators/song_subclass/templates/Song.txt +3 -0
- data/test/fixtures/generators/temp_generator.rb +24 -0
- data/test/fixtures/generators/templates/Main.as +9 -0
- data/test/fixtures/generators/templates/OtherFileTemplate +1 -0
- data/test/fixtures/generators/templates/SomeFile +1 -0
- data/test/fixtures/generators/templates/SomeSubclassFile +2 -0
- data/test/fixtures/generators/templates/Song.txt +3 -0
- data/test/fixtures/generators/templates/destroy +0 -0
- data/test/fixtures/generators/templates/generate +0 -0
- data/test/fixtures/library/archive/Archive.swc +0 -0
- data/test/fixtures/library/sources/lib/a/A.as +0 -0
- data/test/fixtures/library/sources/lib/b/B.as +0 -0
- data/test/fixtures/library/sources/src/Source.as +0 -0
- data/test/fixtures/process_runner/chmod_script.sh +3 -0
- data/test/fixtures/process_runner/dir with spaces/chmod_script.sh +3 -0
- data/test/fixtures/process_runner/failure +5 -0
- data/test/fixtures/process_runner/success +4 -0
- data/test/fixtures/remote_file_loader/md5/echochamber-test.zip +0 -0
- data/test/fixtures/remote_file_loader/md5/file_with_known_md5 +0 -0
- data/test/fixtures/remote_file_target/bin/echochamber +3 -0
- data/test/fixtures/remote_file_target/bin/echochamber.bat +3 -0
- data/test/fixtures/remote_file_target/echochamber-test.zip +0 -0
- data/test/fixtures/specification/asunit4.rb +25 -0
- data/test/fixtures/specification/ext/AsUnit-4.1.pre.swc +0 -0
- data/test/fixtures/specification/flashplayer.rb +30 -0
- data/test/fixtures/specification/flex4sdk.rb +72 -0
- data/test/fixtures/specification/flexunit4.sproutspec +17 -0
- data/test/fixtures/specification/lib/as3reflection/Reflection.as +0 -0
- data/test/fixtures/specification/src/AsUnit.as +0 -0
- data/test/fixtures/user/mxmlc_crlf +3 -0
- data/test/unit/archive_unpacker_test.rb +108 -0
- data/test/unit/boolean_param_test.rb +38 -0
- data/test/unit/executable_option_parser_test.rb +142 -0
- data/test/unit/executable_param_test.rb +76 -0
- data/test/unit/executable_test.rb +237 -0
- data/test/unit/fake_executable_task.rb +22 -0
- data/test/unit/fake_other_executable.rb +20 -0
- data/test/unit/fake_process_runner.rb +29 -0
- data/test/unit/file_param_test.rb +61 -0
- data/test/unit/file_target_test.rb +42 -0
- data/test/unit/files_param_test.rb +72 -0
- data/test/unit/generator_generator_test.rb +85 -0
- data/test/unit/generator_test.rb +333 -0
- data/test/unit/library_generator_test.rb +41 -0
- data/test/unit/library_test.rb +88 -0
- data/test/unit/osx_system_test.rb +20 -0
- data/test/unit/path_param_test.rb +43 -0
- data/test/unit/paths_param_test.rb +53 -0
- data/test/unit/platform_test.rb +76 -0
- data/test/unit/process_runner_test.rb +104 -0
- data/test/unit/rdoc_parser_test.rb +15 -0
- data/test/unit/remote_file_loader_test.rb +34 -0
- data/test/unit/remote_file_target_test.rb +105 -0
- data/test/unit/ruby_feature_test.rb +108 -0
- data/test/unit/ruby_generator_test.rb +70 -0
- data/test/unit/specification_test.rb +73 -0
- data/test/unit/sprout_test.rb +170 -0
- data/test/unit/sprout_test_helper.rb +18 -0
- data/test/unit/string_param_test.rb +19 -0
- data/test/unit/string_test.rb +20 -0
- data/test/unit/strings_param_test.rb +27 -0
- data/test/unit/test_helper.rb +1 -0
- data/test/unit/tool_generator_test.rb +43 -0
- data/test/unit/unix_system_test.rb +52 -0
- data/test/unit/user_test.rb +147 -0
- data/test/unit/vista_system_test.rb +40 -0
- data/test/unit/win_nix_system_test.rb +26 -0
- data/test/unit/win_system_test.rb +61 -0
- metadata +318 -113
- data/doc/Bundle +0 -14
- data/doc/Generator +0 -35
- data/doc/Library +0 -63
- data/doc/Task +0 -21
- data/doc/Tool +0 -20
- data/lib/platform.rb +0 -113
- data/lib/progress_bar.rb +0 -354
- data/lib/sprout/builder.rb +0 -51
- data/lib/sprout/bundle_resolver.rb +0 -349
- data/lib/sprout/commands/generate.rb +0 -9
- data/lib/sprout/dynamic_accessors.rb +0 -40
- data/lib/sprout/general_tasks.rb +0 -6
- data/lib/sprout/generator.rb +0 -7
- data/lib/sprout/generator/base_mixins.rb +0 -186
- data/lib/sprout/generator/named_base.rb +0 -227
- data/lib/sprout/project_model.rb +0 -278
- data/lib/sprout/simple_resolver.rb +0 -88
- data/lib/sprout/tasks/erb_resolver.rb +0 -118
- data/lib/sprout/tasks/gem_wrap_task.rb +0 -214
- data/lib/sprout/tasks/git_task.rb +0 -134
- data/lib/sprout/tasks/library_task.rb +0 -118
- data/lib/sprout/tasks/sftp_task.rb +0 -248
- data/lib/sprout/tasks/ssh_task.rb +0 -153
- data/lib/sprout/tasks/tool_task.rb +0 -836
- data/lib/sprout/tasks/zip_task.rb +0 -158
- data/lib/sprout/tool_task_model.rb +0 -19
- data/lib/sprout/user.rb +0 -415
- data/lib/sprout/version_file.rb +0 -89
- data/lib/sprout/zip_util.rb +0 -61
- data/samples/gem_wrap/rakefile.rb +0 -17
data/lib/sprout/version.rb
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
|
+
|
|
1
2
|
module Sprout
|
|
3
|
+
NAME = 'sprout'
|
|
4
|
+
|
|
2
5
|
if(!defined? Sprout::VERSION)
|
|
3
6
|
module VERSION #:nodoc:
|
|
4
|
-
MAJOR =
|
|
5
|
-
MINOR =
|
|
6
|
-
TINY =
|
|
7
|
+
MAJOR = 1
|
|
8
|
+
MINOR = 0
|
|
9
|
+
TINY = 0
|
|
10
|
+
RELEASE = 'pre'
|
|
7
11
|
|
|
8
|
-
STRING = [MAJOR, MINOR, TINY].join('.')
|
|
12
|
+
STRING = [MAJOR, MINOR, TINY, RELEASE].join('.')
|
|
9
13
|
MAJOR_MINOR = [MAJOR, MINOR].join('.')
|
|
10
14
|
end
|
|
11
15
|
end
|
|
12
16
|
end
|
|
17
|
+
|
data/rakefile.rb
CHANGED
|
@@ -1,163 +1,104 @@
|
|
|
1
1
|
require 'rubygems'
|
|
2
|
+
require 'bundler'
|
|
3
|
+
|
|
4
|
+
Bundler.setup
|
|
5
|
+
|
|
2
6
|
require 'rake'
|
|
3
7
|
require 'rake/clean'
|
|
4
8
|
require 'rake/testtask'
|
|
5
|
-
require 'rake/packagetask'
|
|
6
|
-
require 'rake/gempackagetask'
|
|
7
9
|
require 'rake/rdoctask'
|
|
8
|
-
require 'rake/contrib/rubyforgepublisher'
|
|
9
|
-
require 'fileutils'
|
|
10
|
-
require File.dirname(__FILE__) + '/lib/sprout'
|
|
11
|
-
require File.dirname(__FILE__) + '/lib/sprout/version'
|
|
12
|
-
|
|
13
|
-
PROJECT = "sprout"
|
|
14
|
-
NAME = "sprout"
|
|
15
|
-
SUMMARY = "Sprout is an open-source, cross-platform project generation, configuration and build tool, that currently suports ActionScript 2, ActionScript 3, Flex and AIR development."
|
|
16
|
-
GEM_VERSION = Sprout::VERSION::STRING
|
|
17
|
-
AUTHOR = "Luke Bayes"
|
|
18
|
-
EMAIL = "projectsprouts@googlegroups.com"
|
|
19
|
-
HOMEPAGE = "http://www.projectsprouts.org"
|
|
20
|
-
DESCRIPTION =<<EOF
|
|
21
|
-
Sprout is a modular set of tools that take the tedium and frustration out of creating and managing programming projects by automatically installing and configuring external tools, libraries, commands and build tasks. Bundles are currently available to support ActionScript 2, ActionScript 3, Flex and AIR development.
|
|
22
|
-
EOF
|
|
23
|
-
HOMEPATH = "http://#{PROJECT}.rubyforge.org"
|
|
24
|
-
RELEASE_TYPES = ["gem"]
|
|
25
|
-
PKG_LIST = FileList['[a-zA-Z]*',
|
|
26
|
-
'samples/**/*',
|
|
27
|
-
'bin/**/*',
|
|
28
|
-
'lib/**/*',
|
|
29
|
-
'doc/*'
|
|
30
|
-
]
|
|
31
|
-
PKG_LIST.exclude('.svn')
|
|
32
|
-
PKG_LIST.exclude('artifacts')
|
|
33
|
-
PKG_LIST.each do |file|
|
|
34
|
-
task :package => file
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def apply_shared_spec(s)
|
|
38
|
-
s.summary = SUMMARY
|
|
39
|
-
s.description = DESCRIPTION
|
|
40
|
-
s.name = NAME
|
|
41
|
-
s.version = GEM_VERSION
|
|
42
|
-
s.author = AUTHOR
|
|
43
|
-
s.email = EMAIL
|
|
44
|
-
s.homepage = HOMEPAGE
|
|
45
|
-
s.rubyforge_project = PROJECT
|
|
46
|
-
s.require_path = 'lib'
|
|
47
|
-
s.bindir = 'bin'
|
|
48
|
-
s.has_rdoc = true
|
|
49
|
-
s.rdoc_options << '--title' << 'Project Sprouts -- Core Documentation'
|
|
50
|
-
s.rdoc_options << '--main' << 'Sprout::Sprout'
|
|
51
|
-
s.rdoc_options << '--line-numbers' << '--inline-source'
|
|
52
|
-
s.rdoc_options << '--charset' << 'utf-8'
|
|
53
|
-
s.rdoc_options << '-i' << '.'
|
|
54
|
-
s.files = PKG_LIST.to_a
|
|
55
|
-
s.executables = ['sprout']
|
|
56
|
-
s.default_executable = 'sprout'
|
|
57
|
-
|
|
58
|
-
s.add_dependency('rubyzip', '>= 0.9.1')
|
|
59
|
-
s.add_dependency('archive-tar-minitar', '>= 0.5.1')
|
|
60
|
-
s.add_dependency('rubigen', '1.5.4')
|
|
61
|
-
s.add_dependency('net-sftp', '>= 2.0.4')
|
|
62
|
-
s.add_dependency('net-ssh', '>= 2.0.19')
|
|
63
|
-
s.add_dependency('rake')
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
osx_spec = Gem::Specification.new do |s|
|
|
67
|
-
apply_shared_spec(s)
|
|
68
|
-
s.platform = 'darwin'
|
|
69
|
-
# Add osx-specific dependencies here
|
|
70
|
-
|
|
71
|
-
# Can't really depend on rb-appscript b/c this requires OS X dev-tool disk
|
|
72
|
-
#s.add_dependency('rb-appscript', '>= 0.5.0')
|
|
73
|
-
s.add_dependency('open4', '>= 0.9.6')
|
|
74
|
-
end
|
|
75
|
-
|
|
76
|
-
osx_snow_leopard_spec = Gem::Specification.new do |s|
|
|
77
|
-
apply_shared_spec(s)
|
|
78
|
-
s.platform = 'x86-darwin-10'
|
|
79
|
-
# Add snow-leopard-specific dependencies here
|
|
80
|
-
|
|
81
|
-
# Can't really depend on rb-appscript b/c this requires OS X dev-tool disk
|
|
82
|
-
#s.add_dependency('rb-appscript', '>= 0.5.0')
|
|
83
|
-
s.add_dependency('open4', '>= 0.9.6')
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
nix_spec = Gem::Specification.new do |s|
|
|
87
|
-
apply_shared_spec(s)
|
|
88
|
-
s.platform = 'x86-linux'
|
|
89
|
-
# Add nix-specific dependencies here
|
|
90
|
-
s.add_dependency('open4', '>= 0.9.6')
|
|
91
|
-
end
|
|
92
|
-
|
|
93
|
-
win_spec = Gem::Specification.new do |s|
|
|
94
|
-
apply_shared_spec(s)
|
|
95
|
-
s.platform = 'mswin32'
|
|
96
|
-
# Add win-specific dependencies here
|
|
97
|
-
s.add_dependency('win32-open3', '0.2.5')
|
|
98
|
-
# Added again here b/c win users report
|
|
99
|
-
# having to install these manually:
|
|
100
|
-
s.add_dependency('net-sftp', '>= 2.0.4')
|
|
101
|
-
s.add_dependency('net-ssh', '>= 2.0.19')
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
ruby_spec = Gem::Specification.new do |s|
|
|
105
|
-
apply_shared_spec(s)
|
|
106
|
-
s.platform = Gem::Platform::RUBY
|
|
107
|
-
s.add_dependency('open4', '>= 0.9.6')
|
|
108
|
-
end
|
|
109
10
|
|
|
110
|
-
|
|
111
|
-
end
|
|
112
|
-
|
|
113
|
-
Rake::GemPackageTask.new(osx_snow_leopard_spec) do |pkg|
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
Rake::GemPackageTask.new(nix_spec) do |pkg|
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
Rake::GemPackageTask.new(win_spec) do |pkg|
|
|
120
|
-
end
|
|
121
|
-
|
|
122
|
-
Rake::GemPackageTask.new(ruby_spec) do |pkg|
|
|
123
|
-
end
|
|
11
|
+
require File.dirname(__FILE__) + '/lib/sprout/version'
|
|
124
12
|
|
|
125
|
-
Rake::RDocTask.new do |
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
t.options << '--line-numbers' << '--inline-source'
|
|
131
|
-
t.options << '--charset' << 'utf-8'
|
|
132
|
-
t.options << '-i .'
|
|
13
|
+
Rake::RDocTask.new do |rdoc|
|
|
14
|
+
rdoc.title = "Project Sprouts v.#{Sprout::VERSION::STRING}"
|
|
15
|
+
rdoc.rdoc_dir = 'rdoc'
|
|
16
|
+
rdoc.main = "Sprout::Sprout"
|
|
17
|
+
rdoc.rdoc_files.include("README.textile", "lib/**/*.rb")
|
|
133
18
|
end
|
|
134
19
|
|
|
135
20
|
CLEAN.add('rdoc')
|
|
136
21
|
|
|
22
|
+
namespace :test do
|
|
23
|
+
Rake::TestTask.new(:units) do |t|
|
|
24
|
+
t.libs << "test/unit"
|
|
25
|
+
t.test_files = FileList["test/unit/*_test.rb"]
|
|
26
|
+
t.verbose = true
|
|
27
|
+
end
|
|
137
28
|
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
files = Dir.glob('pkg/*x86-mswin*')
|
|
142
|
-
files.each do |name|
|
|
143
|
-
new_name = name.gsub('-x86', '')
|
|
144
|
-
puts "Renaming x86-mswin gem from #{name} to #{new_name}"
|
|
145
|
-
FileUtils.mv(name, new_name)
|
|
29
|
+
namespace :coverage do
|
|
30
|
+
desc "Delete aggregate coverage data."
|
|
31
|
+
task(:clean) { rm_f "coverage.data" }
|
|
146
32
|
end
|
|
147
|
-
end
|
|
148
33
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
34
|
+
# Apparently, rcov does not work on Windows.
|
|
35
|
+
# Hide these tasks so that we can at least
|
|
36
|
+
# run the others...
|
|
37
|
+
if(!(RUBY_PLATFORM =~ /mingw/i) && !(RUBY_PLATFORM =~/mswin/i))
|
|
38
|
+
require 'rcov/rcovtask'
|
|
39
|
+
|
|
40
|
+
namespace :coverage do
|
|
41
|
+
desc "Delete aggregate coverage data."
|
|
42
|
+
task(:clean) { rm_f "coverage.data" }
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
desc "Aggregate code coverage for unit, functional and integration tests"
|
|
46
|
+
task :coverage => "test:coverage:clean"
|
|
47
|
+
|
|
48
|
+
# Hold collection in case we need it:
|
|
49
|
+
#%w[unit functional integration].each do |target|
|
|
50
|
+
%w[unit].each do |target|
|
|
51
|
+
namespace :coverage do
|
|
52
|
+
Rcov::RcovTask.new(target) do |t|
|
|
53
|
+
t.libs = ["lib", "test"]
|
|
54
|
+
t.test_files = FileList["test/#{target}/**/*_test.rb"]
|
|
55
|
+
t.output_dir = ".coverage/#{target}"
|
|
56
|
+
t.verbose = true
|
|
57
|
+
t.rcov_opts << "--aggregate coverage.data --exclude .bundle"
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
task :coverage => "test:coverage:#{target}"
|
|
61
|
+
end
|
|
62
|
+
end
|
|
152
63
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
64
|
+
namespace :torture do
|
|
65
|
+
desc "Flog the Sprouts"
|
|
66
|
+
task :flog do
|
|
67
|
+
puts "--------------------------"
|
|
68
|
+
puts "Flog Report:"
|
|
69
|
+
message =<<EOM
|
|
70
|
+
According to Jake Scruggs at: http://bit.ly/3QrvW
|
|
71
|
+
|
|
72
|
+
Score of Means
|
|
73
|
+
0-10 Awesome
|
|
74
|
+
11-20 Good enough
|
|
75
|
+
21-40 Might need refactoring
|
|
76
|
+
41-60 Possible to justify
|
|
77
|
+
61-100 Danger
|
|
78
|
+
100-200 Whoop, whoop, whoop
|
|
79
|
+
200 + Someone please think of the children
|
|
80
|
+
EOM
|
|
81
|
+
puts message
|
|
82
|
+
puts ""
|
|
83
|
+
|
|
84
|
+
sh "find lib -name '*.rb' | xargs flog"
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
desc "Flay the Sprouts"
|
|
88
|
+
task :flay do
|
|
89
|
+
puts "--------------------------"
|
|
90
|
+
puts "Flay Report:"
|
|
91
|
+
sh "flay lib/**/*.rb"
|
|
92
|
+
end
|
|
158
93
|
end
|
|
94
|
+
|
|
95
|
+
desc "Run all tortuous reports"
|
|
96
|
+
task :torture => ['torture:flog', 'torture:flay']
|
|
97
|
+
|
|
159
98
|
end
|
|
160
99
|
|
|
161
|
-
|
|
162
|
-
|
|
100
|
+
task :test => 'test:units'
|
|
101
|
+
|
|
102
|
+
desc "Run all tests and reports"
|
|
103
|
+
task :cruise => [:test, 'test:coverage', 'test:torture']
|
|
163
104
|
|
data/script/console
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# File: script/console
|
|
3
|
+
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
|
4
|
+
|
|
5
|
+
libs = " -r irb/completion"
|
|
6
|
+
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
|
7
|
+
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
|
8
|
+
libs << " -r #{File.dirname(__FILE__) + '/../lib/as3.rb'}"
|
|
9
|
+
puts "Loading as3 gem"
|
|
10
|
+
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
require 'rubigen'
|
|
6
|
+
rescue LoadError
|
|
7
|
+
require 'rubygems'
|
|
8
|
+
require 'rubigen'
|
|
9
|
+
end
|
|
10
|
+
require 'rubigen/scripts/destroy'
|
|
11
|
+
|
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
|
14
|
+
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
|
3
|
+
|
|
4
|
+
begin
|
|
5
|
+
require 'rubigen'
|
|
6
|
+
rescue LoadError
|
|
7
|
+
require 'rubygems'
|
|
8
|
+
require 'rubigen'
|
|
9
|
+
end
|
|
10
|
+
require 'rubigen/scripts/generate'
|
|
11
|
+
|
|
12
|
+
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
|
13
|
+
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
|
14
|
+
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/sprout.gemspec
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
lib = File.expand_path File.join(File.dirname(__FILE__), 'lib')
|
|
3
|
+
$:.unshift lib unless $:.include?(lib)
|
|
4
|
+
|
|
5
|
+
require 'bundler'
|
|
6
|
+
require 'rake'
|
|
7
|
+
require 'sprout/version'
|
|
8
|
+
|
|
9
|
+
Gem::Specification.new do |s|
|
|
10
|
+
s.name = 'sprout'
|
|
11
|
+
s.version = Sprout::VERSION::STRING
|
|
12
|
+
s.platform = Gem::Platform::RUBY
|
|
13
|
+
s.authors = ["Luke Bayes"]
|
|
14
|
+
s.email = "projectsprouts@googlegroups.com"
|
|
15
|
+
s.homepage = "http://projectsprouts.org"
|
|
16
|
+
s.summary = "Software development - evolved"
|
|
17
|
+
s.description = "Project Sprouts gives you access to beautiful generators and easily customized templates, automated build scripts, distributed libraries and simple system configuration"
|
|
18
|
+
s.post_install_message = File.read 'POSTINSTALL.rdoc'
|
|
19
|
+
s.required_rubygems_version = ">= 1.3.6"
|
|
20
|
+
s.rubyforge_project = "sprout"
|
|
21
|
+
s.require_path = ['lib']
|
|
22
|
+
s.files = FileList['**/**/*'].exclude /.git|.svn|.DS_Store/
|
|
23
|
+
s.executables = ['sprout', 'sprout-library', 'sprout-tool', 'sprout-generator']
|
|
24
|
+
s.add_bundler_dependencies
|
|
25
|
+
end
|
|
26
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
##
|
|
2
|
+
# This is an example of how I think generators ought to look.
|
|
3
|
+
#
|
|
4
|
+
# The current interface to Rubigen is unacceptable because
|
|
5
|
+
# of it's dependence on duplicate boilerplate, and global
|
|
6
|
+
# state.
|
|
7
|
+
#
|
|
8
|
+
# should also be a generator helper that allows you
|
|
9
|
+
# to reference an existing directory on disk, and will
|
|
10
|
+
# emit a new generator (gem?) that would recreate those files:
|
|
11
|
+
#
|
|
12
|
+
# sprout-generator-importer ~/Projects/SomeProject
|
|
13
|
+
#
|
|
14
|
+
class AppGenerator
|
|
15
|
+
include Sprout::Generator
|
|
16
|
+
|
|
17
|
+
##
|
|
18
|
+
# The path where classes should usually be created.
|
|
19
|
+
add_param :src, String, { :default => 'src' }
|
|
20
|
+
|
|
21
|
+
##
|
|
22
|
+
# The path where test cases should be created.
|
|
23
|
+
add_param :test, String, { :default => 'test' }
|
|
24
|
+
|
|
25
|
+
##
|
|
26
|
+
# The path where libraries should be added.
|
|
27
|
+
add_param :lib, String, { :default => 'lib' }
|
|
28
|
+
|
|
29
|
+
##
|
|
30
|
+
# The path where binaries should be created.
|
|
31
|
+
add_param :bin, String, { :default => 'bin' }
|
|
32
|
+
|
|
33
|
+
##
|
|
34
|
+
# The path where all assets should be created.
|
|
35
|
+
add_param :assets, String, { :default => 'assets' }
|
|
36
|
+
|
|
37
|
+
##
|
|
38
|
+
# The path where skins should be created.
|
|
39
|
+
add_param :skins, String, { :default => 'skins' }
|
|
40
|
+
|
|
41
|
+
##
|
|
42
|
+
# The path where scripts are created.
|
|
43
|
+
add_param :script, String, { :default => 'script' }
|
|
44
|
+
|
|
45
|
+
##
|
|
46
|
+
# The name of the project that should be created.
|
|
47
|
+
add_param :input, String, { :reader => :get_input }
|
|
48
|
+
|
|
49
|
+
##
|
|
50
|
+
# Prevent the creation of a lib directory.
|
|
51
|
+
add_param :no_lib, Boolean
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# Prevent the creation of an assets directory.
|
|
55
|
+
add_param :no_assets, Boolean
|
|
56
|
+
|
|
57
|
+
def manifest
|
|
58
|
+
directory input do
|
|
59
|
+
file 'rakefile.rb.erb', 'rakefile.rb'
|
|
60
|
+
file 'Gemfile.erb', 'Gemfile'
|
|
61
|
+
|
|
62
|
+
directory src do
|
|
63
|
+
file 'Class.as.erb', "#{input}.as"
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
directory File.join(assets, skins) do
|
|
67
|
+
file 'ProjectSprouts.png', 'ProjectSprouts.png'
|
|
68
|
+
end unless no_assets
|
|
69
|
+
|
|
70
|
+
directory lib unless no_lib
|
|
71
|
+
directory bin
|
|
72
|
+
|
|
73
|
+
default_project_files
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
private
|
|
78
|
+
|
|
79
|
+
def get_input
|
|
80
|
+
@input.camel_case
|
|
81
|
+
end
|
|
82
|
+
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
##
|
|
87
|
+
# Defined in the imaginary base class:
|
|
88
|
+
def default_project_files
|
|
89
|
+
directory script do
|
|
90
|
+
file 'generate', 'generate'
|
|
91
|
+
file 'destroy', 'destroy'
|
|
92
|
+
file 'console', 'console'
|
|
93
|
+
end
|
|
94
|
+
end
|
|
95
|
+
|
|
96
|
+
##
|
|
97
|
+
# These directives ought to also be very easy to test.
|
|
98
|
+
#
|
|
99
|
+
class AppGeneratorTest
|
|
100
|
+
include Sprout::GeneratorTestHelper
|
|
101
|
+
|
|
102
|
+
context "a new generator" do
|
|
103
|
+
|
|
104
|
+
setup do
|
|
105
|
+
@fixture = File.join fixtures, 'generators'
|
|
106
|
+
@generator = ProjectGenerator.new
|
|
107
|
+
@generator.path = @fixture
|
|
108
|
+
@generator.name = 'SomeProject'
|
|
109
|
+
@generator.execute
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
should_create_directory File.join(@fixture, 'SomeProject') do
|
|
113
|
+
with_file 'rakefile.rb' do |content|
|
|
114
|
+
assert_matches /SomeProject.as/, content
|
|
115
|
+
assert_matches /SomeProjectRunner.as/, content
|
|
116
|
+
assert_matches /SomeProject.swf/, content
|
|
117
|
+
end
|
|
118
|
+
should_create_directory 'script' do
|
|
119
|
+
with_file 'generate'
|
|
120
|
+
with_file 'destroy'
|
|
121
|
+
with_file 'console'
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
end
|
|
125
|
+
|
|
126
|
+
end
|
|
127
|
+
|