标签: ruby

Ruby脱轨了

有时我觉得我的公司是世界上唯一使用Ruby而不是Ruby on Rails的公司,以至于Rails几乎已成为Ruby的代名词.

我确定这不是真的,但是听到一些关于非Rails Ruby使用的故事会很有趣.

ruby

114
推荐指数
12
解决办法
8908
查看次数

真正便宜的命令行选项在Ruby中解析

编辑:请,,阅读前回答这个帖子的底部列出的两个要求.人们不断发布他们的新宝石和图书馆等等,这显然不符合要求.

有时我想非常便宜地将一些命令行选项破解成一个简单的脚本.一个有趣的方法,没有处理getopts或解析或类似的东西,是:

...
$quiet       = ARGV.delete('-d')
$interactive = ARGV.delete('-i')
...
# Deal with ARGV as usual here, maybe using ARGF or whatever.
Run Code Online (Sandbox Code Playgroud)

它不是普通的Unix选项语法,因为它将接受选项非选项命令行参数,如" myprog -i foo bar -q",但我可以忍受.(有些人,比如Subversion的开发人员,更喜欢这个.有时我也会这样做.)

只是存在或不存在的选项不能比上述更简单地实现.(一个赋值,一个函数调用,一个副作用.)是否有一种同样简单的方法来处理带参数的选项,例如" -f filename "?

编辑:

我之前没有说过的一点,因为直到Trollop的作者提到图书馆符合"一个[800行]文件"之前我才清楚,我的目的不仅仅是清洁语法,但对于具有以下特征的技术:

  1. 整个代码可以包含在脚本文件中(不会压倒实际的脚本本身,可能只有几十行),因此可以bin使用标准的Ruby 1.8在任何系统上删除dir中的单个文件.[5-7]安装并使用它.如果你不能编写一个没有require语句的Ruby脚本,并且解析几个选项的代码在十几行左右,那么你就不能满足这个要求.

  2. 代码很小而且非常简单,人们可以记住足够的代码来直接输入代码来完成这一操作,而不是从其他地方剪切和粘贴.想想你在一个没有互联网访问权限的防火墙服务器的控制台上的情况,你想把一个快速的脚本拼凑起来供客户使用.我不了解你,但是(除了上面的要求失败之外)记住甚至45行的简化微型optparse也不是我要做的事情.

ruby

114
推荐指数
6
解决办法
5万
查看次数

如何比较Ruby中的版本?

如何编写一段代码来比较一些版本的字符串并获得最新的?

例如字符串:'0.1', '0.2.1', '0.44'.

ruby

114
推荐指数
7
解决办法
2万
查看次数

如何使用rvm将我的ruby 1.9.2-p0升级到最新的补丁级别?

我目前的ruby版本是,ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]但我想使用rvm将其更新到最新的补丁级别.我怎样才能做到这一点?

ruby ruby-on-rails rvm

114
推荐指数
4
解决办法
6万
查看次数

如何在ruby中实现抽象类?

我知道ruby中没有抽象类的概念.但是,如果它需要实施,那该怎么办呢?我试过像......

class A
  def self.new
    raise 'Doh! You are trying to write Java in Ruby!'
  end
end

class B < A
  ...
  ...
end
Run Code Online (Sandbox Code Playgroud)

但是当我尝试实例化B时,它会在内部调用A.new哪个会引发异常.

此外,模块无法实例化,但也无法继承.使新方法私有也行不通.有什么指针吗?

ruby abstract-class

113
推荐指数
9
解决办法
9万
查看次数

Ruby:扩展自我

在Ruby中,我理解了它的基本思想extend.但是,这段代码中发生了什么?具体来说,做extend什么?它只是将实例方法转换为类方法的便捷方式吗?你为什么要这样做,而不是从一开始就指定类方法?

module Rake
  include Test::Unit::Assertions

  def run_tests # etc.
  end

  # what does the next line do?
  extend self
end
Run Code Online (Sandbox Code Playgroud)

ruby

113
推荐指数
4
解决办法
3万
查看次数

在rails中阻止html.erb模板中的注释

你如何评论html与ruby代码混合?

some text <% ... %> more text <%= ... %>
something else
<% ... %>
Run Code Online (Sandbox Code Playgroud)

在jsp中它真的很简单:<%-- ... --%>但是我无法在rails中找到任何简洁的选项.

简单的html注释<!-- ... -->不起作用:ruby代码仍然执行并且会出错.

有一个选项可用于if falsehtml注释,但它非常冗长,更不用说IDE不支持它.

还有一种来自纯红宝石的选择,这令人惊讶地起作用.

<%
=begin %>
... html and ruby code goes here
<%
=end %>
Run Code Online (Sandbox Code Playgroud)

它通常很好,除了它冗长,看起来很奇怪,我知道没有任何ruby IDE支持它(是的,我喜欢用一次击键来评论/评论).

我很好奇,在轨道上有没有"正式"这样做?

谢谢!

ruby ruby-on-rails erb

113
推荐指数
9
解决办法
9万
查看次数

在Homebrew中安装错误

试图安装rvm和ruby 1.9.2

我已经安装了自制软件和git,但无法获得完整的更新,因为我一直收到权限错误.重新安装Snow Leopard并修复了权限.

现在这发生了......

$ brew install wget

错误:无法写入/ usr/local/Cellar

ruby permissions homebrew rvm

113
推荐指数
5
解决办法
7万
查看次数

使用--no-rdoc和--no-ri与bundler

使用时gem install gem_name我可以通过--no-rdoc--no-ri切换到跳过为安装时的gem生成RDoc/RI文档.

是否有类似的方法来做到这一点bundle install

ruby gem rubygems ruby-on-rails bundler

113
推荐指数
4
解决办法
4万
查看次数

OSX上的rails + MySQL:未加载库:libmysqlclient.18.dylib

我刚刚开始使用Ruby(和rails).我按照http://ruby.railstutorial.org/ruby-on-rails-tutorial-book#sec:ruby gems 进行了设置rvm.我用sqlite做得很好.

现在我想尝试将事情转换为MySQL,因为这是我开发的大部分内容.在我的Gemfile中,我用mysql2替换了sqlite:

group :development, :test do
#  gem 'sqlite3', '1.3.5'
  gem 'mysql2'
  gem 'rspec-rails', '2.9.0'
end
Run Code Online (Sandbox Code Playgroud)

但是当我尝试在MySQL中为rails创建数据库时,我得到:

$ rake db:create --trace
rake aborted!
dlopen(/Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
  Reason: image not found - /Users/username/.rvm/gems/ruby-1.9.3-p194@rails3tutorial2ndEd/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
Run Code Online (Sandbox Code Playgroud)

我已经看到其他帖子建议通过自制软件重新安装MySQL(我的是通过可下载的DMG安装的),但我不想这样做,因为我已经有其他几个非ruby项目的数据库了.

事实上我确实有Rails正在寻找的文件; 它安装在/usr/local/mysql/lib/libmysqlclient.18.dylib.告诉Rails如何找到它的最佳方法是什么?

ruby mysql macos ruby-on-rails

113
推荐指数
9
解决办法
9万
查看次数

标签 统计

ruby ×10

ruby-on-rails ×4

rvm ×2

abstract-class ×1

bundler ×1

erb ×1

gem ×1

homebrew ×1

macos ×1

mysql ×1

permissions ×1

rubygems ×1