AsProject -- это кросс-платформенный инструмент разработки с открытым кодом, предназначенный для автоматизации создания проектов, классов, тестов и их блоков, а также библиотек swfmill.
Он скачивает, устанавливает и конфигурирует debug-версию флэш-проигрывателя и набор opensource-инструментов для разработки Actionscript-приложений. Также он включает набор средств для сборки проектов. Его автор, Люк Байес, заодно является создателем AsUnit.
gem install asproject
Пользователи Маков (и любых Unix-образных ОС, как вовремя сказал Майкл) добавляют к началу этой строки sudo. Идем дальше.
sudo
asproject SomeProject
Результат -- структура на диске D:
D:\SomeProject\art D:\SomeProject\doc D:\SomeProject\project D:\SomeProject\project\assets D:\SomeProject\project\bin D:\SomeProject\project\lib D:\SomeProject\project\rakefile.rb D:\SomeProject\project\README.txt D:\SomeProject\project\src D:\SomeProject\project\test D:\SomeProject\project\config D:\SomeProject\project\.as2_classpath D:\SomeProject\project\.project D:\SomeProject\project\assets\img D:\SomeProject\project\assets\img\skins D:\SomeProject\project\assets\img\skins\default D:\SomeProject\project\assets\img\skins\SWFMillTemplate.erb D:\SomeProject\project\assets\img\skins\default\PatternPark.jpg D:\SomeProject\project\lib\asunit D:\SomeProject\project\lib\asunit\asunit D:\SomeProject\project\lib\asunit\AsUnitTestRunner.as D:\SomeProject\project\lib\asunit\asunit\errors D:\SomeProject\project\lib\asunit\asunit\framework D:\SomeProject\project\lib\asunit\asunit\runner D:\SomeProject\project\lib\asunit\asunit\textui D:\SomeProject\project\lib\asunit\asunit\util D:\SomeProject\project\lib\asunit\asunit\errors\AssertionFailedError.as D:\SomeProject\project\lib\asunit\asunit\errors\AssertionPassedError.as D:\SomeProject\project\lib\asunit\asunit\errors\ClassNotFoundError.as D:\SomeProject\project\lib\asunit\asunit\errors\IllegalOperationError.as D:\SomeProject\project\lib\asunit\asunit\errors\InstanceNotFoundError.as D:\SomeProject\project\lib\asunit\asunit\errors\InvocationTargetError.as D:\SomeProject\project\lib\asunit\asunit\errors\UnimplementedFeatureError.as D:\SomeProject\project\lib\asunit\asunit\framework\Assert.as D:\SomeProject\project\lib\asunit\asunit\framework\AssertMock.as D:\SomeProject\project\lib\asunit\asunit\framework\AssertTest.as D:\SomeProject\project\lib\asunit\asunit\framework\ITestListener.as D:\SomeProject\project\lib\asunit\asunit\framework\Test.as D:\SomeProject\project\lib\asunit\asunit\framework\TestCase.as D:\SomeProject\project\lib\asunit\asunit\framework\TestCaseMock.as D:\SomeProject\project\lib\asunit\asunit\framework\TestCaseTest.as D:\SomeProject\project\lib\asunit\asunit\framework\TestCaseXml.as D:\SomeProject\project\lib\asunit\asunit\framework\TestFailure.as D:\SomeProject\project\lib\asunit\asunit\framework\TestResult.as D:\SomeProject\project\lib\asunit\asunit\framework\TestSuite.as D:\SomeProject\project\lib\asunit\asunit\runner\BaseTestRunner.as D:\SomeProject\project\lib\asunit\asunit\runner\IResultPrinter.as D:\SomeProject\project\lib\asunit\asunit\textui\ResultPrinter.as D:\SomeProject\project\lib\asunit\asunit\textui\SuccessBar.as D:\SomeProject\project\lib\asunit\asunit\textui\TestRunner.as D:\SomeProject\project\lib\asunit\asunit\util\ArrayIterator.as D:\SomeProject\project\lib\asunit\asunit\util\ArrayIteratorTest.as D:\SomeProject\project\lib\asunit\asunit\util\Iterator.as D:\SomeProject\project\src\SomeProject.as D:\SomeProject\project\test\SomeProjectRunner.as D:\SomeProject\project\config\asclass_config.rb
AsProject работает на Ruby.
cd SomeProject/project rake что такое rake?
cd SomeProject/project rake
Происходит следующее:
- Поиск и/или скачивание подходящих компиляторов (для ActionScript 2 это обычно mtasc и swfmill) (скачивается только то, что не было скачано ранее)
- Сборка проекта соответствующими компиляторами (swfmill, mtasc и/или hamtasc)
- Скачивание, распаковка и установка подходящего Flash-проигрывателя (debug-версия).
- Настройка файла mm.cfg, чтобы можно было просматировать trace-выражения в терминале.
- Настройка безопасности Flash Player, чтобы можно было использовать одновременно как локальные swf-файлы, так и загруженные из сети.
- Поиск и загрузка лог-файла файла flashout.txt, содержащего результаты вызовов trace.
- Запуск созданного SWF-файла в ожидаемой версии Debug Flash Player (7, 8 или 9).
- Отображение вызовов trace в терминале.
Команды и результаты в окне терминала:
D:\SomeProject\project>asclass -s utils.MathUtil >> TestSuites rebuilt from: D:/SomeProject/project/test --------------------------- >> Created file at: ./src/utils/MathUtil.as >> Created file at: ./test/utils/MathUtilTest.as >> Created file at: utils/AllTests.as >> Created file at: AllTests.as D:\SomeProject\project>rake test (in D:/SomeProject/project) mtasc.exe -cp src -cp test -cp lib/asunit -frame 2 -main -version 8 -swf bin/Som eProjectSkin.swf -out bin/SomeProjectRunner.swf SomeProjectRunner SAFlashPlayer.exe ./bin/SomeProjectRunner.swf
>> TestSuites rebuilt from: D:/SomeProject/project/test --------------------------- >> Created file at: ./src/utils/MathUtil.as >> Created file at: ./test/utils/MathUtilTest.as >> Created file at: utils/AllTests.as >> Created file at: AllTests.as
D:\SomeProject\project>rake test (in D:/SomeProject/project) mtasc.exe -cp src -cp test -cp lib/asunit -frame 2 -main -version 8 -swf bin/Som eProjectSkin.swf -out bin/SomeProjectRunner.swf SomeProjectRunner SAFlashPlayer.exe ./bin/SomeProjectRunner.swf
Результат в открывшемся окне Flash Player'а:
AsUnit 2.5 by Luke Bayes and Ali Mills ..F Time: 0.007 There was 1 failure: 0) utils.MathUtilTest.testFailure() assertTrue.message: Failing test FAILURES!!! Tests run: 2, Failures: 1, Errors: 0
Time: 0.007 There was 1 failure: 0) utils.MathUtilTest.testFailure() assertTrue.message: Failing test
FAILURES!!! Tests run: 2, Failures: 1, Errors: 0
Получить помощь по инструменту asclass:
asclass -h
1. asproject: Движок шаблонов проектов, позволяющий как использовать и редактировать шаблоны существующих проектов, так и делать свои собственные. Помогает быстро создавать новые, конфигурируемые и готовые к использованию приложения ActionScript 2, ActionScript 3 и построенные на Flex framework.
2. asclass: Инструмент, использующий движок шаблонов asproject, но для создания новых ActionScript-классов, интерфейсов, тестов и их наборов. Этот тул позволяет манипулировать базовыми шаблонами для произвольного количества именованных типов, включая ActionScript 2, 3 и MXML. Он позволяет сохранять отредактированные шаблоны для всех проектов или для выбранных вами конкретных.
3. utilities: Набор утилит для упрощения компиляции, тестирования и разворачивания ActionScript-проекта.
Читайте: руководство по первым шагам с AsProject.
Демо AsProject можно увидеть здесь. А вот -- домашняя страница AsProject на Google Code.
Так поженились Ruby и ActionScript'ы (полигамия, разрешена в программировании). Ждем детей. Должны получиться красивые.
Генераторы, как и в Rails, легко делать свои. Прямо по образу и подобию. И вся мощь и легкость освоения Rake на откуп.
Но главное -- Flash сообщество, возможно, начнет-таки массово двигаться к сохраняющей башку свежей разработке через тесты и software as specification. Рутины на возьню с тестами теперь считай нет, только сам тест напиши и реализацию...
А еще немного портирования RCov и Spec::Autotest, и эта ботва сможет пускать тесты автоматом после любого сохранения. В мире Ruby так многие любят делать, хотя по-моему фича на любителя.
PS: sudo добавляют пользователи любых Unix образных ОС. Тул абсолютно кросс-платформенный, даже под FreeBSD можно без особых проблем прикрутить Linux плеер.
Майк, я ждал твоего комментария =)
Все ждали комментария Майка =)
А теперь не ждите, пишите свои =)
А вообще... Это навязывание своих фантазий про идеальную среду разработки...
Идеальной среды еще нет, потому что...да потому что адобы мало думают про нас и наши фактические потребности
Василий, -- да, это навязывание своих, но не фантазий, а уже готовых и работающих тулов. Написанное слово -- это навязывание, и выбор таков: либо навязываешь ты, либо тебе, либо -- наше дело сторона. Поскольку я исключаю себя из третьего варианта, то из оставшихся выбираю первый.
Насчет Адобов... они действуют, как собачья упряжка в условиях бури в тундре: хозяин (маркетинг и руководство) погоняет вперед, но собаки (девелоперы) бегут с той скоростью, с которой могут.
Берегите Адоб. Если мы его потеряем, то светлое будущее с Майкрософтом обеспечено. Ругайте Адоб. Но без публичных истерик: напишите лучше багрепорт им, но не дерекламируйте технологию публично в глазах колеблющихся.
Больше тулов под любимую платформу, хороших и разных!
Не подумайте, что я защищаю Адоб. Я -- на стороне флэш-проигрывателя =)
Rost, we're searchin' for you, man! =) Where're you now?
Дим, сейчас сижу дома с сынишкой, скоро буду в офисе.
Сории за потерю, свяжусь сегодня после 7.
Рост, поменяй пожалуйста в блогролле ссылку на мой новый блог www.yarovoy.com/gc/.
Ага, Юр, обновил.