Tag: ruby 1.9.2

使用明确版本的ruby以root身份安装没有rvm的Gems

我已经决定摆脱rvm,而我在使用新版本的ruby 1.9.2编译gem时遇到了麻烦。 gem需要1.9.2,我有它,但说不能没有安装,所以错误信息没有意义。 如何明确告诉gem使用所述版本的ruby进行编译? Gem::InstallError: linecache19 requires Ruby version >= 1.9.2. An error occured while installing linecache19 (0.5.12), and Bundler cannot continue. Make sure that `gem install linecache19 -v ‘0.5.12’` succeeds before bundling. apps2 ~/projects/sms/apps2/apps2_admin $ ruby -v ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-darwin10.8.0] apps2 ~/projects/sms/apps2/apps2_admin $ which ruby /usr/local/bin/ruby

Ruby 1.9.2导出CSV字符串而不生成文件

我根本无法获得文档中 “写入” 示例下的“To a String”示例。 ruby -v返回:ruby 1.9.2p290(2011-07-09修订版32553)[x86_64-darwin10.8.0] 我无法工作的文档中的示例如下: csv_string = CSV.generate do |csv| csv << ["row", "of", "CSV", "data"] csv << ["another", "row"] end 我得到的错误是: wrong number of arguments (0 for 1) 所以看起来我错过了一个论点,在这里的文档中它指出: This method wraps a String you provide, or an empty default String 但是当我传入一个空字符串时,它会给我以下错误: No such file or directory – 我不打算生成一个csv文件,我只是想创建一个csv字符串,我将其作为文本发送给用户。

如何“强制”我的Rails 3应用程序使用1.9.2

我已经设置了Rails 3.0.3并使用rvm安装了Ruby 1.9.2并将rvm设置为默认使用1.9.2。 但是,当我创建一个新的rails应用程序并检查环境变量时,它仍然反映了ruby 1.8.7,如何将其更新为1.9.2?

正则表达式,在Ruby中具有前瞻性

我当前的正则表达式之争是在字符串中的数字前替换所有逗号。 然后正则表达式必须忽略所有后续逗号。 我已经在rubular上拧了大约一个小时,看起来似乎无法正常工作。 测试字符串…… ‘this is, a , sentence33 Here, is another.’ 期望的输出…… ‘this is comma a comma sentence33 Here, is another.’ 所以有些东西…… testString.gsub(/\,*\d\d/,”comma”) 为了给你一些背景知识,我正在做一些有趣的侧面项目。 我收集的元素主要以逗号分隔,从两位数年龄开始。 然而,有时候可能包含逗号的年龄前的标题。 为了保留我稍后设置的结构,我需要替换标题中的逗号。 在尝试叠加溢出之后的答案…… 我还有一些问题。 不要笑,但这里是从屏幕抓取导致问题的实际线… statsString = ” 23, 5’9\”, 140lb, 29w, Slim, Brown Hair, Shaved Body, White, Looking for Friendship, 1-on-1 Sex, Relationship. Out Yes,SmokeNo,DrinkNo,DrugsNo,ZodiacCancer. Versatile, 7.5\” Cut, […]

在Ruby 1.9中使用instance_eval进行常量查找

短而甜 在Ruby 1.9中运行此代码: FOO = “global constant” class Something FOO = “success!” def self.handle &block self.new.instance_eval &block end end class Other FOO = “wrong constant” def self.handle Something.handle{FOO} end end puts Something.handle{FOO} puts Other.handle 我得到“成功!” 和“错误的常数”。 如何才能同时打印两次“成功!”的电话? 这不是一种人为的乐趣 – 我不会浪费人们的时间。 我有一个现实世界的问题,我已经把它缩小到最简单的例子来certificate这个问题。 继续阅读“为什么”。 一个更彻底的解释 调用Something.handle {FOO}正常工作。 Ruby使用Something类中给出的FOO的定义。 但是,如果我尝试从另一个类中以相同的方式调用它,它会为我提供该类的FOO定义。 我认为Ruby 1.9中更紧密的常量查找的想法是为了避免这样的问题。 instance_eval应该使用其接收器的范围(在本例中为self.new),而不是调用块的范围。 它适用于实例变量之类的东西,但不适用于常量。 这不是优先问题 – 删除“全局”和“错误”常量,而ruby仍然无法找到剩余的正确常量。 我遇到的现实问题是我有一个包含多个类的模块。 […]

capybara – 使用xPath查找离开范围内

我正在尝试使用默认的Rails日期,时间和日期时间字段与Capybara构建日期选择器。 我正在使用within方法来查找字段的选择框,但是当我使用xPath查找正确的框时,它会离开within内并找到元素页面上的第一个匹配项。 这是我正在使用的代码。 我正在测试的页面有2个日期时间字段,但由于此错误,我只能让它更改第一个。 目前我有一个带有id的div容器,它包含了datetime字段,但我确实打算通过标签切换代码来查找。 module Marketron module DateTime def select_date(field, options = {}) date_parse = Date.parse(options[:with]) year = date_parse.year.to_s month = date_parse.strftime(‘%B’) day = date_parse.day.to_s within(“div##{field}”) do find(:xpath, “//select[contains(@id, \”_#{FIELDS[:year]}\”)]”).select(year) find(:xpath, “//select[contains(@id, \”_#{FIELDS[:month]}\”)]”).select(month) find(:xpath, “//select[contains(@id, \”_#{FIELDS[:day]}\”)]”).select(day) end end def select_time(field, options = {}) require “time” time_parse = Time.parse(options[:with]) hour = time_parse.hour.to_s.rjust(2, ‘0’) minute = […]

从Ruby块中提取AST

是否可以从Ruby本身获取块的AST? 我已经看过ParseTree和ruby_parser,但他们似乎都对Ruby 1.9.2有粗略的支持(从我读过的内容)。 我需要一些适合1.9.2的东西。

DBI :: InterfaceError:无法加载驱动程序(未初始化的常量MysqlError)

我收录了gem, dbd-mysql (0.4.4) dbi (0.4.5) mysql (2.8.1) 在我运行以下代码时在rails控制台上, require ‘rubygems’ require “dbi” require ‘dbd-mysql’ dbh = DBI.connect(“DBI:Mysql:TestDB:localhost”,”username”, “pwd”) 1.9.2-p180 :001 > require ‘rubygems’ => false 1.9.2-p180 :002 > require “dbi” => false 1.9.2p180 :003 > require ‘dbd-mysql’ LoadError: no such file to load — dbd-mysql from /.rvm/gems/ruby-1.9.2-p180@rails3/gems/dbi-0.4.5/lib/dbi.rb:318:in `rescue in load_driver’ from /.rvm/gems/ruby-1.9.2-p180@rails3/gems/dbi-0.4.5/lib/dbi.rb:242:in `load_driver’ from /.rvm/gems/ruby-1.9.2-p180@rails3/gems/dbi-0.4.5/lib/dbi.rb:160:in […]

load在本地路径上工作,require则不工作

loadee.rb puts ‘> This is the second file.’ loaddemo.rb puts ‘This is the first (master) program file.’ load ‘loadee.rb’ puts ‘And back again to the first file.’ 当我运行”ruby loaddemo.rb” ,这很好用。 两个文件都在同一个目录中,这就是我运行的目录。 但是,如果我将负载更改为require,并且有或没有扩展我得到: :29:in `require’: no such file to load — loadee.rb (LoadError) from :29:in `require’ from loaddemo.rb:2:in `’ 我的问题当然是,为什么在这种情况下不需要工作? 它应该,对吗? 加载并要求使用不同的路径? Ruby版本1.9.2

ruby和nor irb都不能在当前目录中加载.rb文件

我在Ruby中导入文件时遇到了麻烦。 我在Windows XP中制作一个Ruby应用程序。 该应用程序的所有类文件都在”C:/Documents/Prgm/Surveyor_Ruby/lib” 。 但是当我require另一个文件中的文件时,ruby和irb都不能找到所需的文件。 当前目录的内容: C:\Documents\Prgm\Surveyor_Ruby\lib>dir Volume in drive C has no label. Volume Serial Number is AAAA-BBBB Directory of C:\Documents\Prgm\Surveyor_Ruby\lib 10/09/2010 06:32 PM . 10/09/2010 06:32 PM .. 10/08/2010 03:22 PM 5,462 main (commented).rb 10/08/2010 03:41 PM 92 question.rb 10/08/2010 09:06 PM 2,809 survey.rb 10/09/2010 06:25 PM 661 surveyor.rb 10/08/2010 01:39 PM […]