Shoes 4:Shoes的下一个版本
Shoes是一个用于跨平台(Mac、Windows和Linux)GUI编程的小型DSL。它感觉像真正的Ruby,而不仅仅是另一个C++库的包装器。有关一些示例、手册和免费书籍,请查看Shoes网站。
想看看Shoes是什么样子的吗?好吧,给你看看!给定以下脚本:
Shoes.app width: 300, height: 200 do background lime..blue stack do para "欢迎来到Shoes的世界!" button "点击我" do alert "点击得好!" end image "http://shoesrb.com/img/shoes-icon.png", margin_top: 20, margin_left: 10 end end
这将生成以下应用程序:
外观和感觉会因你的操作系统而异,因为Shoes 4使用原生小部件。
很久很久以前,有一个叫_why的人。他创建了一个名为Hackety Hack的项目,旨在向所有人教授编程。为了触及地球的每个角落,_why决定让Hackety Hack能在Windows、Mac OS X和Linux上运行。这需要大量工作,所以_why决定与世界分享他的工具包。于是,Shoes诞生了。
嗨,感谢你的关注!Shoes 4目前处于预览阶段。它现在支持几乎所有的shoes DSL,但仍有一些不支持的地方和已知问题。我们现在定期在rubygems上发布更新的预览版,以便于安装。如果你还不太冒险,你仍然可以使用旧版shoes!
有两种方式可以获得Shoes 4 - 预览版gem发布和直接从github安装。这两种方式都需要安装当前版本的JRuby。
我们建议使用JRuby 9.X+,目前我们大多数测试是在9.1版本上进行的。JRuby 1.7.x 可能可以工作,但自4.0.0.pre6版本以来就未经测试。
因此,你的第一步是安装JDK(shoes也可以使用OpenJDK)和JRuby。确保为你的操作系统获取适当的JRuby版本。在Linux/Mac上,你也可以使用Ruby安装工具来安装JRuby。例如rvm:
$ rvm install jruby
JDK版本注意事项: JRuby 9版本需要7或8版本的JDK - JDK 9目前还不能与JRuby一起使用,因此也不能与Shoes一起使用。此外,在JDK主要版本中,确保安装最新的更新,我们遇到过新版本解决了一些错误的情况。
SWT要求: 请注意,Shoes 4默认后端基于SWT。这通常不是问题(除了需要JRuby/JDK,如上所述),因为你不需要自己安装SWT。但是,这意味着我们有与SWT相同的基本系统要求。对于Linux来说,这意味着你需要GTK+ >= 2.10或者如果你喜欢的话>= 3.0。此外,目前还没有ARM支持(如树莓派所需要的)。
$ gem install shoes --pre
C:\tmp> jruby -S gem install shoes --pre
如果你想要最新版本或想贡献代码,你需要直接从github仓库安装。
Fork仓库并克隆你的fork,或者
$ git clone git://github.com/shoes/shoes4.git
设置本地环境
$ cd shoes4
$ gem install bundler && bundle install
注意:如果您安装了rvm、rbenv或类似的工具,它可能会提示您应该使用特定版本的jruby。这是因为我们保持.ruby-version文件的更新。您应该能够使用JRuby 9.0.0.0或更高版本运行它。不过,我们推荐使用最新版本。
Fork仓库并克隆您的fork,或者
C:\tmp> git clone git://github.com/shoes/shoes4.git
设置本地环境
C:\tmp>cd shoes4
C:\tmp\shoes4>jruby -S gem install bundler
C:\tmp\shoes4>jruby -S bundle install
您已准备就绪!
Shoes 4带有一个命令行应用运行器。只需将Shoes应用的文件名传递给它即可。
$ bin/shoes samples/simple_sound.rb
注意: 对于Windows,使用C:\tmp\shoes4>bin\shoes samples\simple_sound.rb
。如果您将Shoes 4作为gem安装,只需执行C:\tmp> shoes path\to\file.rb
使用SWT后端时,还有一个简单的ruby启动脚本,您可以按如下方式使用:
$ bin/shoes-swt samples/simple_sound.rb
这在Mac上还不能工作,因为JRuby(JVM)需要一些额外的参数。在这里,您可以执行以下操作(基本上是bin/shoes所做的):
$ jruby -J-XstartOnFirstThread bin/shoes-swt samples/simple_sound.rb
另一种选择是在应用程序顶部添加require 'shoes'
,然后您可以简单地执行
$ jruby path/to/file.rb
在OS X上,您仍然需要为JRuby提供额外的参数
$ jruby -J-XstartOnFirstThread path/to/file.rb
您可以运行rake samples
,随机的我们认为正常工作的样例将会运行,直到您按Ctrl + C退出。其中一些非常简单,而其他的则更复杂,甚至是游戏!
如果您发现这些样例有任何问题,请告诉我们!
通过将SHOES_USE_INSTALLED
环境变量设置为true,您还可以使用已安装的shoes版本(shoes
命令 )来运行样例,而不是本地的bin/shoes
。
打包功能还处于初期阶段,请谨慎使用。
为了打包应用,您需要在环境中安装Shoes gem。如果您没有进行gem安装,您始终可以从当前源代码生成gem并安装:
$ rake install:all
现在,您可以打包应用了。但首先,请注意以下几点:
.gemspec
或Gemfile
,可能无法正常工作。它使用Warbler,而Warbler总是会寻找这些文件。如果您运行规格,您可能会注意到一些类似这样的警告:warning: Bundler `path' components are not currently supported. The `shoes-4.0.0.pre1' component was not bundled. Your application may fail to boot!
这是Warbler在说话。实际上,我们偷偷地加入了Shoes gem,但不要告诉别人。
好的,现在真的开始了。最简单的方法是将您的脚本单独放在一个目录中,然后:
$ bin/shoes package --mac path/to/directory-of/your-shoes-app.rb
这将生成一个Mac应用,您可以在path/to/directory-of/pkg/your-shoes-app.app
中找到它。
您还可以将shoes应用打包成jar文件:
$ bin/shoes package --jar path/to/directory-of/your-shoes-app.rb
您可以在与上面相同的目录中找到jar文件,即path/to/directory-of/pkg/your-shoes-app.jar
如果您想要更多控制(比如您想为应用命名为"Shoes App"以外的名称,或者您不想包含我们之前谈到的所有文件),请创建一个app.yaml
文件。有关更多详细信息,请参阅示例。
注意: 如果您使用app.yaml
,您将必须自定义或注释掉每个选项。示例仅仅是一个示例 ;)
当您的脚本旁边有一个app.yaml
文件时,您有三个选项:
$ bin/shoes package --mac path/to/directory-of/your-shoes-app.rb
$ bin/shoes package --mac path/to/directory-of/app.yaml
$ bin/shoes package --mac path/to/directory-of
打包器将使用这些命令中的任何一个找到您的指令。同样,您会在项目目录内的pkg
目录中找到您的应用。通过bin/shoes --help
了解更多信息。
哦,您还可以使用bin/shoes
来运行您的Shoes应用。
太棒了,谢谢您! 你可以尝试修复我们的一个问题。
我们引入了一个新标签"新手友好",用于我们认为适合初学者开始贡献的问题。这些问题要么相对容易解决,要么不依赖太多其他Shoes代码(例如全新功能),因此更容易上手。
请随意处理任何问题 - 如有需要我们会提供帮助。这个标签只是一个建议!=)
此外,在samples/README中有一份已经可以运行的样例列表,以及其他所有样例。你可以尝试让一个新样例运行起来。为此,你可以运行rake non_samples
来随机运行一个我们认为不能工作的样例。如果你只想列出不能工作的样例,也可以运行rake list_non_samples
。
无论做什么,请确保编写规格说明,因为Shoes 4是以TDD方式开发的(参见下面的运行规格说明部分)。所以确保不要破坏任何测试 :-)
如果你对测试或实现不确定,只需开一个问题或拉取请求。拉取请求不需要完成 - 它们是很好的讨论起点!我们很乐意帮助你准备好你的贡献,以便合并到Shoes 4中!
事实上,我们非常欢迎早期的拉取请求,以便审查代码并帮助你熟悉Shoes 4!=)
如果你有问题,也可以随时到FreeNode IRC的#shoes频道询问。人们可能不会立即回应,但过一段时间后总会有人回复 :-)
有时重构一些代码或编写一些规格说明也是熟悉项目的好方法。如果你想尝试这种方法,可以查看我们的Code Climate来寻找重构的候选对象,或者在本地运行规格说明后,查看coverage目录并打开index.html - 它显示了我们当前的覆盖率数据。看到一些没有覆盖到的内容,也许你可以为它编写一个规格说明?
有关如何运行前面提到的规格说明的信息,请参考以下部分 :-)
Shoes 4是使用RSpec以TDD风格开发的。你应该编写并运行规格说明 :)
最简单的方法是使用rake任务。
$ bundle exec rake
(尝试rake --tasks
获取完整列表)
如果你想了解更多关于运行规格说明的其他模式、测试的哲学和内容的详细信息,请查看wiki中的测试Shoes条目。
很久很久以前,有一个叫_why的人。他创建了一个名为Hackety Hack的项目,目的是教所有人编程。为了覆盖地球的各个角落,_why决定让Hackety Hack在Windows、Mac OS X和Linux上运行。这是一项艰巨的工作,所以_why决定与世界分享他的工具包。于是,Shoes诞生了。
Shoes的诞生是为了教地球各个角落的每个人编程。对新程序员或英语不好的程序员因为他们的Ruby/英语写得不好而苛刻是不酷的。显然,任何针对他人宗教、种族、性别认同或任何个人问题的反社会评论在这片充满chunky-bacon的土地上都是不被容忍的 !如果社区成员觉得你在任何项目空间(代码、问题、聊天室、邮件列表)的评论不当,他们会根据我们的行为准则友好地告诉你如何改进。
底线是:玩转Shoes,享受乐趣!
如果你想了解Shoes的最新动态,可以在以下地方找到我们:
想要与Shoes社区取得联系?太好了!你可以通过以下方式联系我们:
但是我们尽量将大多数关于开发的讨论保持在这个仓库/问题中,这样每个人都可以看到并查找它们。
AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI小说写作助手,一站式润色、改写、扩写
蛙蛙写作—国内先进的AI写作平台,涵盖小说、学术、社交媒体等多场景。提供续写、改写、润色等功能,助力创作者高效优化写作流程。界面简洁,功能全面,适合各类写作者提升内容品质和工作效率。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音 合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号