Ruby off the rails

Sometimes it feels that my company is the only company in the world using Ruby but not Ruby on Rails, to the point that Rails has almost become synonymous with Ruby.

I'm sure this isn't really true, but it'd be fun to hear some stories about non-Rails Ruby usage out there.

9416 次浏览

我们使用一些 Ruby 来进行文件操作,但是还不能合并 Rails。

I haven't done any non-Rails Ruby web dev, but all of my Project Euler solutions are in Ruby, as well as some other small projects, like my IRC 机器人.

我们主要使用 Rail,但是我们也有很多其他非 Rails 的 Ruby 东西——例如一个独立的用于用户集中身份验证的身份验证守护进程,以及一个“图像处理服务器”,它运行任意数量的 Ruby 进程来并行处理图像。

哦,别忘了老好人 Rake: -)

我在工作中使用 Ruby 的唯一一个站点是使用 Rails,但是我想尝试使用 Merb

除此之外,我还用 Ruby 编写了很多小实用程序——比如一个可以读取 RSS 提要并将新文章导入到数据库中的应用程序。

这很有趣,所以我也写了一些愚蠢的东西,因为它是如此之快。昨天,我写了一个应用程序,播放 蒙提霍尔问题100,000次,以帮助一个朋友说服她的教授,切换是正确的策略。

看看 鞋子吧,这是一个用 Ruby 构建 GUI 的简单 API,面向新手程序员。

I've used Ruby a lot professionally for quick scripts for things like shuffling files around. I'm the same way in that I was using Ruby first before touching Rails at all.

Ruby 的一个巨大好处是能够非常容易地创建 DSL。Ruby 允许您以自然语言的方式创建“业务规则”,业务分析师通常可以很容易地使用这种方式。许多 Web 开发之外的 Ruby 应用程序就是为此而存在的。

我强烈推荐用谷歌搜索“ ruby dsl”来获得一些优秀的阅读材料,但是我想给你留下一个特别的帖子。拉斯 · 奥尔森在 领域特定语言上写了 两部分博客文章。我看到他做了一个关于领域特定语言的演讲,非常好。我强烈推荐阅读这些文章。

我还发现了这个 Obie Fernandez 关于 Ruby DSL 的精彩演讲。强烈推荐阅读!

我在工作中大量使用 Ruby,但它们都不是基于 Rails (甚至是 web)的。

我的域通常是客户端 窗户应用程序(wxRuby GUI)和脚本,自动化 Excel、 Internet Explorer、 SQL Server 查询和报告生成(win32ole COM 自动化)。我还使用 sqlite、 pdf-writer 和 grumff 库来完成各种数据转换和图形生成任务。

Rails 的成功对于 Ruby 来说是伟大的,但是我同意 Rails 受到了如此多的关注,以至于 Ruby 在网络之外的价值经常被忽视。

Ruby with a homebrew extension written in C++ does all the heavy pixel pushing for my photography processing. I was using Python+numpy but when doing 很艺术的东西, Ruby is just more fun. Also the relative lack of, or lesser maturity of, good image processing libraries makes me feel less like i'm reinventing wheels. I am clueless about Rails, other than i've heard of it, have a fuzzy idea what it is, and actually have a book on it (unopened)

在博尔德有一群优秀的 Ruby 用户,他们每月聚会一次。这一点已经表明—— Ruby 除了在 Rails 中使用之外,还有其他的存在。普通 Ruby 用户确实存在,他们渴望得到关注,有整洁的东西可以展示,并且可以在用户组会议上找到彼此。

他们吃的披萨也比 Python 小组吃的好,Python 小组也是在这个月的同一天见面的。只能选一个。

Ruby 也用于桌面应用程序,特别是用 JRuby 开发 Swing 桌面应用程序。

我已经在工作中用过 Ruby 了

  • A data extractor, generating csv files from binary output.
  • A .ini file generator, turning a simple syntax into a repetitive .ini format.
  • A simple TCP/IP server, acting as stand-in for the customer's system during testing.

Rails 的 一部分算吗?我们已经将 Ruby 用于 ETL 应用程序,并且插入 ActiveRecord 只是为了进行模型验证。

我们主要是一个 C + + 工作室,但是我们发现了一些 Ruby 被证明非常有用的领域。这里有一些:

  • 代码生成-构建了几个 DSL 来从单个输入文件生成 C + +/Java/C # 代码
  • Build Support
    • 从 VisualStudio 项目文件为 unix 生成 Makefile 的脚本
    • 用于构建项目和格式化 Cruise Control 输出的脚本
    • scripts for running our unit tests and formatting the output for Cruise Control
    • scripts for manipulating Visual Studio projects and solutions from the command line
  • 集成测试——我们可以使用 Ruby 比 C + + 更快更简洁地完成测试
  • QA 的整个测试套件都是用 Ruby 编写的

Ruby 基本上就是我的工具。这在很多地方都说得通。

我们使用 Ruby 来实现我们的测试自动化软件。这包括测试框架和驱动程序代码的 Selenium RC,水和 AutoIT。

Ruby 足够强大,可以创建综合应用程序,可以与像 Selenium 或 WAIR 这样的测试工具接口,同时读取数据文件,与远程 Windows UI 交互,并执行近乎透明的网络通信。同时在 Windows 或 Linux 上运行。

The uncluttered syntax makes it ideal for new and inexperienced programmers to read. While its totally OO nature makes it easy for these same programmers to apply good (recently learned) OO techniques, from the start.

Ruby 语法的灵活性也使得 DSL 的使用和创建更加容易。这允许技术含量较低的人参与进来,阅读并可能创建自己的测试。

我曾在一个需求不稳定的项目中使用 Ruby 生成 C # 和 T-SQL 存储过程的代码。数据模型被编码在 YAML 文件中,并且。Erb 模板用于类和存储过程。它还提供了比直接使用 C # 更多的 DRY 解决方案,因为重复代码可以分解成代码生成器中的单个方法。

或者你可以用露比做音乐,就像贾尔斯 · 鲍克特的“始祖鸟”一样。这个 presentation by Giles about Archaeopteryx是有史以来最好的演示之一。我强烈推荐。

我们使用 瓦提尔(Ruby 库)来测试我们的.net web 应用程序。

Where I work, we use Ruby to do a number of different one-off type batch jobs. One example of that is a job that interacts with Amazon's S3 service. At the time, the Ruby S3 library was probably the easiest one out there for us to get up and running in a short amount of time.

我编写了一个订单处理专家系统(也参见 DSL 答案) ,将100k 行的客户特定 perl 转换为大约10k 行的 Ruby 处理数十个客户。完全没有 web 组件,没有 Rails。

Google番茄酱使用 Ruby 作为嵌入式脚本语言。您可以使用它来执行各种3D 建模和导入/导出任务。脚本与免费版本一起工作,甚至还有不错的 文件

RubyCocoa 和 MacRuby。可以在没有 Rails 的情况下制作完整的基于 Cocoa 的 GUI 应用程序。然后你还可以用 Interface Builder。

虽然我们确实有一些 Rails 应用程序在工作,但是我们也使用 Ruby 处理一些相当密集的非 web 内容。

We've got an SMS delivery daemon, which pulls messages from a queue and then delivers them, and credit card processing daemon which other apps can call out to, which makes sure there's a central audit trail.

我自己使用了 Ruby 本身,并结合了框架 Rails。 我做了一个红宝石应用程序,每天从一个网站拉出所有的高分,并把它放在一个 mysql 数据库。这是迄今为止我第一次也是唯一一次自己在 Ruby 中使用它

我在工作中经常使用 Rails,但对于较小的应用程序或简单的基于 REST 的服务,我倾向于使用 辛纳屈。为了好玩,我还在用 Ruby 编写文本冒险游戏。

在工作中,我用 Ruby 为 Windows 编写所有的脚本。多亏了这个,我可以跟 Dos 的脚本说再见了

我是一个网络驱动程序用户。感谢 rake,ruby 被 webDriver 用于自动化构建过程。详情请参阅 http://code.google.com/p/webdriver/

去年我参与了一个博物馆项目,使用了大量的 Ruby

我花了大部分时间在互动地图上。地板上的地图有传感器,所以当人们在上面行走时,灯会被触发,墙上的显示屏会显示图像或视频,音轨也会被播放。

这部分展品的所有控制代码都是 Ruby。我用红宝石包装器编写了 C 接口来与地板传感器和照明控制器进行通信。该系统查询 MYSQL 数据库的媒体文件显示,然后告诉计算机在墙上播放的媒体通过 UDP。

这是整个展览中最可靠的部分。

露比被用于展览的其他主要部分,长城,虽然我没有做太多。大多数图形都是使用 OpenGL 接口、一点 Cocoa 和一个物理库在 Ruby 中进行原型设计,然后再移植到纯 Obj-C。

问得好。

我使用 Ruby 将 Excel 电子表格机场设施数据转换为 sqlite3,用于 Android 手机平台,同时为飞行员开发一个应用程序。

我在 Sinatra 中使用 Ruby,它比 Rails 简单得多。我确实使用过 Rails,但是我发现它已经变成了一个怪物,尽管与 Java 可用的 Web 框架相比,Rails 仍然令人惊叹。

然而,我喜欢 Ruby 的主要特性是“ eval”和“ method _ miss”,Rails 实际上在 ActiveRecord 中使用了这两个特性,这样你就可以使用令人惊奇的“ find _ by-field-name-”查询。

I used Ruby for a lot of back-end code simply because I was the only person who was tasked to do it and needed a nice clean language that allowed me to be very productive and write easy to maintain code. I find Ruby allows me to do that easier than Perl and Python. Other people's mileage might vary on that but it works well for me.

除此之外,我喜欢 Sequel 和 Nokogiri 的工作方式。

我差点被侮辱了,红宝石是铁轨上的东西。这就像回到了当 CGI 是最新的趋势,每个人都认为,如果你知道 perl 你必须这样做,只是因为你编程的 CGI 应用程序。Ruby 对我来说只是一个脚本语言,虽然没有 python 那么成熟,所以我有点后悔不得不跳过它的一些圈子和最近的变化,我仍然喜欢它并使用它。虽然我在 java 商店工作,因此 groovy 是脚本语言的理想选择,但是我仍然在家里使用 ruby,或者在工作时丢弃那些不需要共享的脚本。

I was considering getting into RoR from all the buzz and how quick/simple it is, but after looking over rails I didn't see anything at all that was amazing or even the least bit innovative or rapidly fast about its development compared to 任何 other framework. The only benefit I saw was that I could code in ruby, which would be nice, but initial setup, server maintenance and scaling is more difficult, thus re-offsetting the pleasure of coding in ruby.

我创建了一个演示文稿——恰好命名为 Off The Rails ——来讨论基于 Rack 的 Web 应用程序:

Https://github.com/alexch/off-the-rails

Git repo 包括 Markdown 格式的幻灯片和示例代码(以运行的应用程序和中间件的形式)。以下是摘要:

RubyonRails 是 Ruby 最流行的 Web 应用程序框架。但这不是唯一的一个!如果您认为 Rails 过于庞大,或者过于固执己见,或者任何其他的东西,那么您可能很乐意了解新一代构建在 Rack 上的所谓微框架。而且因为 Rails 3本身就是一个 Rack 应用程序,你不必放弃 Rails 来获得 Sinatra 路由或 Grape API 的好处。

这里有一些参考资料:

希望你觉得它有用!

除了 Rails 之外,我还在下面的中小型项目中广泛使用 Ruby:

  1. In large hierarchical text file parsing (to some extent similar to YAML structure)
  2. 专用小范围网络蜘蛛。
  3. 三个辛纳屈的应用。

我主要是一个 Web 开发人员,我学习 Ruby 来使用 Rails,但是我非常喜欢这种语言,所以我开始用 Ruby 开发一个桌面 Swing 应用程序,使用 JRuby 和 Monkeybar。我能够胜任 Java,但是不太喜欢使用它,而且 Swing API 很糟糕,所以把 Ruby 放在上面是一个很大的胜利。

Ruby 非常强大,而且 Rails 很好地证明了它应用于 Web 服务的强大功能。

尽管如此,Ruby 继续(并将继续)在不同的上下文中变得更加广泛,如系统管理、脚本、自动化、 ... ..。

问题是,在这个过程中的某个时候,Rails 获得了如此多的名声,以至于“影响”了 Ruby,让它看起来像是 Ruby 在跟随 Rails。但是这篇文章中的大量答案证明了这一点,Ruby 不仅仅是 Rails。

当我搜索 Ruby 的时候,我也感到“痒痒”,不得不不断地偏离 Rails 的信息,这些信息阻碍了 Ruby 的发展... ... 但是,嘿,Rails 也为 Ruby 的发展和市场营销做出了很大贡献:)

木偶和厨师: DevOps

I didn't see a mention of 木偶 or 主厨 in the 30 answers that preceded my arrival. Ruby appears to dominate current work in cloud automation and is the base, extension, and templating language of these two big players. They are used primarily to distribute system and application configuration information for server arrays and for general IT workstation management.

DevOps字段非常支持 Ruby。今天,Perl 有了一个竞争对手。虽然一个真正简单的脚本通常仍然可以直接为 sh(1),编写,但是一个复杂的任务现在可以用 Ruby 而不是 Perl 来完成。

我继承了一个遗留的应用程序,支持一些著名的交友网站的移动(由于机密性,我不会命名)。

遗留应用程序使用 Ruby 而不是 Rails,原始应用程序使用 Rails 的前身,称为“ Merb”(https://en.wikipedia.org/wiki/Merb)

Part of the application has been ported to use different technology to separate the technology into a backend and frontend layer. The backend layer uses pure ruby and the front-end uses ReactJS with some NodeJS integration.