Ruby 如何使用正则表达式从HTML中提取链接?

我想从google.com中提取链接;我的HTML代码如下所示: <a href="http://www.test.com/" class="l" 代码是: require "open-uri" url = "http://www.google.com/search?q=ruby" source = open(url).read() links = source.scan(/"(.*?)" class="l"/) links.each { |link| puts #{link}

Ruby 紫外线+红宝石的Textmate?我怎么用这个?

好了,我已经买了三天的Macbook了 我安装了textmate,看到了一个很酷的Ruby语法突出显示工具,叫做紫外线 我已经安装了紫外宝石,但我不知道它的功能。我该如何使用它呢?还是自动安装?应该有紫外线主题吗?紫外线到底起什么作用 是ruby应用程序中使用的语法突出显示引擎。与Textpow相结合,它允许您将在textmate中看到的相同语法高亮显示显示到web页面上 Textmate附带了很多主题,您可以从vibrant ink中选择,这可能是最流行的主题,紫外线利用了这些主题 我觉得这会

如何在Ruby NET:SFTP上输入远程目录?

如何输入命令-cd这样的目录,从而在没有路径前缀的情况下操作远程文件 这是我目前的代码 Net::SFTP.start do |sftp| sftp.rename!(REMOTE_PATH + "latest.zip", REMOTE_PATH + "latest.back.zip") sftp.upload!("latest.zip", REMOTE_PATH + "latest.zip") end 我希望: sftp.cd REMOTE_PATH sftp.rename!(

Ruby套接字服务器线程问题:如何发送到所有客户端?

我正在做一个TCP套接字服务器。为每个连接的客户端创建一个线程。在某个时刻,我尝试向所有连接的客户端发送数据。线程在尝试时异常中止。ruby 1.8.7 require 'socket' # I test it home right now server = TCPServer.new('localhost', 12345); while(session = server.accept) #Here is the thread being created Thread.new(session

字符串#在Ruby中拆分的行为不符合预期

path是包含名称、年龄、职业、爱好等内容的文件的路径 我希望输出的名称只,但我得到了整个行 为什么会这样?你的问题不是很清楚 拆分(“\n”)-如果要按行拆分 拆分-如果要按空格拆分 我可以理解,您不需要chomp,因为它删除了所有“\n”您的问题不是很清楚 拆分(“\n”)-如果要按行拆分 拆分-如果要按空格拆分 我可以理解,您不需要chomp,因为它删除了所有“\n”问题已经有了公认的答案,但值得注意的是,最初问题的原因是: 这是问题所在: File.open(path, 'r').eac

Ruby 为什么';";时间“自”;不为我工作?

为什么这对我不起作用: class Time # Return the time difference (as a Float) between now and a specified older Time or parse-able String. # a = Time.now # Time.since(a) # => 8.920116 # a.since(a) # => 0.0 # Time.since '11:30' # => 28.1

Ruby Rails包含条件为的模块

我试图只在满足条件时才包含一个模块 module PremiumServer def is_premium true end end class Server include Mongoid::Document include PremiumServer if self.premium field :premium, :type => Boolean, :default => false end 这不管用,我也不知道为什么。有人能告诉我如何根据满足的条

Ruby 打开https时的EOR

我一直在尝试使用facebook图形api,不过ruby在打开api url时会提高EOFError(https://graph.facebook.com/.....) 我正在使用Ruby 1.8.6和Rails 2.2.2。 代码如下: require 'uri' require 'https' access_token = open("https://graph.facebook.com/oauth/access_token?client_id=app_id&client_secr

Ruby Redis命名空间基础

我对Redis真的很陌生,一直在使用它和我的Ruby on Rails(Rails 2.3和Ruby 1.8.7)应用程序,使用Redis gem作为键值存储的简单标记功能。我最近意识到我可以用它来维护一个用户活动提要 问题是我需要内存中的标记数据(存储为key=>set),这对于确定标记相关操作的结果非常重要,对于活动提要,数据可以先入先出的方式删除。假设我为每个用户存储X个活动 我是否可以为redis数据集命名,让其中一个永久保留在内存中,另一个暂时保留在内存中。当一个人使用不相关的数据集,

ruby rails-文本字段的建议列表

rails 3+中是否有用于填写文本字段的建议列表的功能或Gem? 类似于谷歌即时搜索,在文本字段中根据键入的关键字下拉匹配条目。该函数将进行ajax调用,并从后端数据库或其他一些源等检索相对值。我现在没有代码,我猜应该是观察一个字段并基于此进行ajax调用。有没有更好的方法 谢谢大家! 查看ryan bates的自动完成。你觉得这就是你要找的吗

Ruby 在sinatra响应后执行代码,Twilio应用程序连接到外部API

我已经看到并理解了:after过滤器,但我甚至不知道我要做什么的术语。我有一个使用twilio和highrise日志调用的简单应用程序。由于延迟问题,我想在发布到外部API之前通过sinatra返回twiml响应。有什么建议吗 我见过类似的问题,但没有一个是关于ruby/sinatra的。谢谢。宝石可以满足你的需要。它允许您计划将来执行的代码,例如在发送HTTP响应后执行 DJ依赖于ActiveRecord,它需要一个db表来存储作业,但您也可以在Sinatra上运行它:有一个用于此的gem,称

Ruby 我如何按日期将约会列表分组?

我要寄一份预约单 现在它们看起来像这样: -Jan 1 --appointment @230 -Jan 1 --appointment @3 -Jan 1 --appointment @4 -Jan 2 --appointment @4 -Jan 2 --appointment @5 我想把清单还给你 -Jan 1 --appointment @230 --appointment @3 --appointment @4 -Jan 2 --appointment @4 --appointment

将ruby诅咒重定向到/dev/null

我正在尝试为使用Ruby的Curses库的应用程序编写规范。诅咒显然垄断了终端屏幕,所以我尝试将rspec的输出重定向到一个文件。这在很大程度上是可行的,但是我的一些失败的规范缺少信息,我认为RSpec正在将它的一些输出打印到$stdout 我尝试过将Curses库配置为不打印到屏幕上,但没有效果。有没有办法禁用Curses输出以便测试可以正常运行?尝试,当您决定恢复Curses输出时,调用Curses。refresh我有一个配置标志,指定是否执行Curses输出。对于单元测试,我禁用curse

Ruby 通过节俭直接瞄准客运工人的方式

我正试图让我的应用程序使用节俭的方式相互交流。所有应用程序都在同一个网络中运行,并且都是使用Nginx和Phusion运行的ruby应用程序。使用thrift与thrift::HTTPClientTransport在应用程序之间通信没有问题,但这涉及到在接收应用程序上公开HTTP URL。我制作了一个框架中间件,它将请求接收到此路径,调用被调用的方法,并通过thrift进行响应 我的问题是,在运行passenger时,如何绕过中间件和thift HTTP传输的需要。我想到了一些想法,包括制作自己

Ruby 正则表达式与可能的空字符串匹配

我想得到A=[和第一个封闭]之间的任何东西: 到目前为止还不错 但是,对于A=[]: 如何获得一个空字符串,而不是[B=[boy?使用。*?而不是.+?。前者匹配零个或多个字符,而后者匹配一个或多个字符 "Hello A=[] B=[boy] World".match(/A*=*\[(.*?)\]/)[1] # => "" 我会使用: str = "Hello A=[apple] B=[boy] World" str[/A=\[(.*?)\]/, 1] # => "apple" s

尝试使用Ruby super直接调用方法

考虑以下代码: class Hello def hi puts "Hello" end end class HelloWorld < Hello def hi super.hi puts "World" end end HelloWorld.new.hi 给出输出: $ ruby super.rb Hello super.rb:9:in `hi': undefined method `hi' for nil:NilClass (NoMethod

Ruby 在函数中使用@符号作为变量前缀的目的是什么?

我知道类中的实例变量可以通过在变量名前面加@符号来表示。这在课堂上有一些实际应用 在函数中这样做的实际应用是什么 def foo one = 1 @two = 2 end 这是一个实例变量。它的值在实例上保持不变 class Foo def set_baz @baz = 1 end def get_baz @baz end end foo = Foo.new foo.get_baz #=> nil foo.set_baz foo.get

Ruby 用空格遍历字符串

我有一个字符串:results=123456 我想遍历字符串并打印:1,2,3,4,5,6 这是我迄今为止的代码: results.each do |k| print k, "," end 我也尝试过使用每个字符。这应该可以: results.split('').join(',') # => "1,2,3, ,4,5,6, " 或者,如果要将字符串作为输出: result.each_char.map.join(',') # => "1,2,3, ,4,5,6, " 每个字符

Ruby 仅强制严格RSpec DSL

作为一个天真的程序员,我在测试中犯了一个巨大的错误: it_behaves_like 'a Database' do def build_content # ... end end 在一些随机错误和使用共享规范添加更多测试之后,我意识到这样的代码从一开始就是错误的,并且消耗了一些有价值的测试。它应该一直是: it_behaves_like 'a Database' do before :all do def build_content # ...

Ruby 如何避免在Gemfile和.gempec中指定gem依赖项?

我正在创建一个Gem,它需要在用户的系统上安装其他Gem。我在做传统的事情,并在Gemfile中指定我的依赖项,以便bundle安装识别 Gem规范文件似乎也可以通过以下方式找到特定的依赖项: Gem::Specification do |s| s.add_runtime_dependency... s.add_development_dependency... end 如何避免在这两个位置指定依赖项?在您的GEM文件中: #!/usr/bin/env ruby gemspec Ge

在ruby中从单元测试初始化env.rb

如何从Test::Unit::TestCase初始化env.rb。我希望能够在我的ruby/Cucumber应用程序中对我的ruby方法进行单元测试,env.rb在此之前做了很多设置 简化示例: env.rb require 'logger' $LOG = Logger.new(STDOUT) HelloWorld.rb class HelloWorld def say_hi greeting = 'Hello World' $LOG.info greeting

Ruby Chrome中的Sinatra流媒体不起作用

我想用sinatra 1.4.4进行流媒体播放。我使用了sinatra文档中的流媒体示例。当我在Ubuntu13.10上的Firefox28.0中测试它时,它运行良好。但是当我在Chrome上测试它时(版本33.0.1750.152 Ubuntu 13.10 256984),这条信息在1.5秒后同时出现 require 'sinatra' require 'sinatra/streaming' set server: :thin get '/' do stream do |out|

在Ruby中用值交换散列键并将键转换为符号?

这是输入哈希: p Score.periods #{"q1"=>0, "q2"=>1, "q3"=>2, "q4"=>3, "h1"=>4, "h2"=>5} 这是我的当前代码,用于在将键转换为符号时,将键与值交换: periods = Score.periods.inject({}) do |hsh,(k,v)| hsh[v] = k.to_sym hsh end 结果如下: p periods #{0=>:q1, 1=>:q2, 2

从ruby中的哈希中获取值

我有这样的散列: {"0"=>{"car_addition_id"=>"9"}, "1"=>{"car_addition_id"=>"10"}} 我只想从这个散列中得到数组中的10和9个值。我该怎么做? 提前谢谢 试试这个: h = {"0"=>{"car_addition_id"=>"9"}, "1"=>{"car_addition_id"=>"10"}} h.map{|k,v| v.values}.flatten =>

Ruby对象ID、dup和可变性

我在Ruby中遇到了以下问题 a = [1, 2, 3] b = a b.delete_at(1) b => [1,3] a => [1,3] b.object_id => 70178446287080 a.object_id => 70178446287080 所以我对这有点了解。保存对对象id处数组的引用 b也有一个指向同一位置的引用,b指向a,a指的是它的对象id。基本上它们指的是同一个东西。所以如果我对b进行了变异,a也会发生变异 这种行为属于哪一类?有没有我可

从client-ruby尝试时,服务器中的更改目录未更改

这是我代码的一小部分。如果这还不够,我将发布完整的代码。 我在服务器上执行的命令很少,除了使用require'net/ssh'更改目录cd命令外,其他一切都很正常 我试过cd和Dir.chdir,但没有成功。这里@action是我的目录名 puts @ssh.exec!('pwd') @ssh.exec!("cd ./#{@action}") puts @ssh.exec!('pwd') 在执行命令之前和之后,我尝试打印当前工作目录,它显示相同的路径,而没有转到所需的路径 为什么Dir.

Ruby File.read()在我的Capistrano任务中失败(文件*确实*存在)

我的Capistrano任务失败了 No such file or directory @ rb_sysopen - /home/blog/pids/grantb.blog.staging.pid` 以下是该文件确实存在的证据,来自我的命令提示符: [blog@grantb current]$ ls /home/blog/pids/grantb.blog.staging.pid /home/blog/pids/grantb.blog.staging.pid [blog@grantb curr

修复rbenv:未安装版本“ruby-2.0.0”

我得到一个错误: rbenv: version `ruby-2.0.0' is not installed 运行以下命令后: git clone https://github.com/neverstopbuilding/sinatra-boilerplate.git cd sinatra-boilerplate bundle install git init bundle exec guard

Ruby 如何编写修改“site”对象的Jekyll插件?

我想写一个Jekyll插件来修改站点对象。site对象在Jekyll构建过程中始终可用。在Jekyll中,向其添加属性的最直接方法是在_config.yml文件中定义它。这在某些情况下是有效的,但我需要更进一步 我问这个问题的原因是,我需要做的事情比在YAML文件上下文中所能做的更多。我想向站点对象添加一个方法。我假设我只需要将该方法添加到Site类中,但它不起作用 非工作插件: module Jekyll class Site def foo "foo" end

Ruby 使用define_方法创建动态测试单元用例也会运行占位符值

因此,我使用创建了一组可以并发运行的测试用例 我在yaml中指定了测试用例名称,并通过并行过程将每个测试用例名称分配给全局var$t 然后我使用define_方法为每个测试单元测试用例定义唯一的方法名称。如果没有唯一的方法名,测试单元将出现错误,测试用例被重新定义错误 我看到的是,每个测试用例名称都被解析,测试正在运行,返回适当的测试单元结果——测试运行顺利,并且正确结束 然而,在测试运行结束时,我在testcase上看到一个未定义的方法错误,这是define_method占位符变量,即defi

如何合并两个CSV';使用保留数据的规则使用几乎相同的集合?(使用Ruby和FasterCSV)

我有两个csv文件,每个文件有13列 每行的第一列包含一个唯一的字符串。有些在每个文件中重复,有些只存在于一个文件中 如果该行仅存在于一个文件中,我希望将其保留在新文件中 如果两者都存在,我希望将具有特定值(或缺少特定值)的一个保留在同一行的特定列中 例如: 文件1: D600-DS-1991, name1, address1, date1 D601-DS-1991, name2, address2, date2 D601-DS-1992, name3, address3, date3 文件2

使用静态套接字在windows中进行Ruby编译

我试着用这样的bat文件编译ruby2.1.5源代码 修改ext/Setup文件,静态链接socket模块 但我不能很好地编译ruby,编译器显示出这样的错误 我使用的是VS2012,并在x86本机命令行工具中使用了nmake。 VC++6.0 cl.exe也出现了同样的错误 add无法编译带有相同错误的ruby2.2.0。我现在有相同的问题。如果我找到解决方案,我会汇报的 ..\ruby-2.1.5\win32\configure.bat --so-name ruby215 --disa

Ruby 终止分叉进程(转发端口)

我在本地计算机上安装了Oracle瘦客户机,以便在远程主机上执行SQL命令。 此外,我还有一个Ruby脚本,其中包含使用OCI8GEM的SQL命令,并且该脚本工作正常 但是,要运行SQL命令,我需要打开一个隧道,转发到远程Oracle正在侦听的端口: ssh -L 1521:localhost:1521 <user>@<host> 然而,隧道并没有被摧毁 有没有一种方法可以从Ruby脚本中杀死/终止隧道?HUP信号不会杀死进程,它只是向进程发送一个信号,而该进程可以随意

在ruby中解析HttpParty get响应

我不知道如何解析这个响应。我只想从中提取一个计数 更新: 如何解析这个XML响应 这是我的API连接信息 我正在使用Ruby irb和HttpParty require 'httparty' api_key = "6e569b3d-3457-9485-edb2-eccd27272dbf" secret_key = "MDVkYTQzMDgtOWRiOC04NDULTRkYWUtODQwOTc5ZDFkZTQ3NTZhOG1NWQtNmMzMi0xYjE0LWYMzgtNDc0YzU0MWYxY

Ruby 如何让http服务器处理post请求?

我正在尝试用ruby编写自己的http web服务器。现在它只能处理GET请求。我还想添加对POST请求的支持 http服务器应该做什么来服务Post请求?下面是我解析请求行以获取http谓词的代码。一旦我知道这个动词是post,我就不知道该怎么处理它了 def handle_request(socket, request_line) STDERR.puts request_line header_params = request_line.split(/\r?\n/) firs

Ruby 转换为.js时,sprocket strip是否在.coffee.erb中进行注释

似乎.coffee.erb中的注释已在最终编译的.js中删除 例如: 在 文件顶部附近有一条类似IE helper的注释 在上面的rakefile之后,我运行bundle-exec-rake-assets:compile-VERSION=0.8,最后的javascript删除哈希标记注释。这是有道理的,因为javascript不支持作为注释的开头 有没有办法将coffee脚本转换为//javascript或类似的格式?来自: 有时,您希望将块注释传递给生成的JavaScript。例如,当您需要在

Ruby 单击不代表斜体但代表图标的标记

也许我不得不用糟糕的HTML编程检查来管理 在下面的代码中,不是用斜体字表示单词,而是一个图标。我想点击哪个,但哪个是适合的 我去了post,尝试了按钮和图像的方法,但都不起作用 我通过创建页面对象来尝试它,因为这是我想要的方式 按钮:与会者列表,:title=>“与会者”和图像:与会者列表,:title=>“与会者” 用作 onUpcomingWebinarPage.attenders\u列表 我认为,您可以尝试使用元素: 在page对象中,您需要创建一个泛型。因为这是一个奇怪的情况,所以我将

Ruby 如何将值从dash的.erb传递到作业(.rb)

我想在我的仪表板上使用两次小部件,但有不同的选项。我想在html中设置这些选项,如下所示: <li data-row="1" data-col="1" data-sizex="1" data-sizey="1"> <div data-id="myweather" data-view="myweather" data-offset="0"> </li> <li data-row="1" data-col="1" data-sizex="1" dat

无法在ruby和money gem中输出货币

如果我运行此代码: require "money" price1 = Money.new(100) price2 = Money.new(2000) total = price1 + price2 puts total 我收到一个I18n::InvalidLocale错误: 如何避免此问题?尝试以下方法: require "money" price1 = Money.new(100) price2 = Money.new(2000) total = price1 + price2

Ruby “browser.text.include?”返回误报?(watir webdriver和cucumber)

基本上,我希望在提交带有空必填字段的表单时检查错误消息 def usertabfieldvalidation @session.button(:class, "btn-primary").click @session.text.include? 'Giant Gerbils of the world unite' end 这一步过去了。我想检查文本,请填写此字段,但我查找的任何文本都将通过。我对ruby和watir webdriver还比较陌生,所以想知道我哪里出了问题 提前感谢。所以我将RS

Ruby 令人惊讶的字符串串联

我很惊讶在我支持的代码库中偶然发现了一些字符串连接。为什么,或者如何,下面的代码将两个字符串连接在一起 queue_name = 'gen-request-' "#{ENV['USERNAME'].gsub('.','')}" => "gen-request-robertkuhar" 我本来希望在两个字符串之间看到一个“+”,但它不在那里。这是暗示还是什么 我知道这对于中间的字符串插值更有意义。这不是我要问的。我想知道什么是语言语法首先允许它工作。这只适用于字符串文字,以及文字语法的一部

Ruby 打印文件中最长的行

我试图打印文件“words”中最长的一行,这是一个文件,每个文件都有一个新行中的单词列表。 有了下面的代码,我可以让它打印每一行比前一行长的内容。但是,我需要它只打印整个文件中最长的一行 我对Ruby还是新手,在谷歌上似乎找不到答案 max = 0 IO.foreach('words') do |line| if line.length > max max = line.length print line end end 我非常感谢你

Ruby 内部服务器错误heroku

我正在用sinatra开发一个ruby应用程序。在我把它放在heroku身上之前,一切都很顺利。heroku向我提供了内部服务器错误,但没有错误代码: 目前我的工作站是一台windows计算机。 我的日志如下所示: config.ru require 'tilt/haml' require 'sass/plugin/rack' require '4c96748' run Sinatra::Application gemfile source 'https://rubygems.org' rub

Ruby 将数组元素转换为散列

我有一个包含以下元素的数组: results = ["test=complete", "test2=passed", "test3=failed", "test4=successful"] 我想将此数组转换为具有以下键和值的哈希: results_hash = {"test": "complete", "test2": "passed", "test3": "failed", "test4": "successful"} 我该怎么做?不确定是否最好使用set、hash等 results =

Ruby Net:Http get请求给出的响应与浏览器不同

我正在尝试使用Net::HTTP从API服务器获取 我从控制台获取uri并粘贴到浏览器中,然后收到JSON响应 但是使用Ruby Net::HTTP get,我收到一些安全消息: 为什么不同?浏览器和Ruby脚本位于同一个公共IP后面 顺便说一句,你被正确地检测为爬虫。请注意,来自浏览器和脚本的请求并不完全相同。浏览器发送一些标题,如接受语言、用户代理等。您可以使用浏览器中的web inspector工具查看这些标题。另一方面,在脚本中,您只将Accept header和设置为JSON,这本身就

Ruby 更改来自不同类的类实例变量

我目前正在用Ruby编写一个命令行Tic-Tac-Toe游戏,在将游戏板上的单元格更改为玩家的标记X或O时遇到问题。在我的代码中,我通过玩家类实例中的make_-move方法访问GameBoard类中的cells类变量。但是,当我运行代码时,单元格不会更改 代码: 应显示: X | 2 | 3 ----------- 4 | 5 | 6 ----------- 7 | 8

在Ruby的超级模块中调用重写方法

在下面的代码中,Parentjust\u do覆盖了祖父母just\u do。在我的课堂上,我怎么称呼祖父母呢 你真的无法取消覆盖某些内容。在这种特殊情况下,您可以重新导入它,但这可能会产生其他副作用 父对象最好保留原始对象,因为可能需要调用: module GrandParent def just_do puts "GrandParent" end end module Parent def self.included(base) base.extend Clas

所有Ruby命令立即关闭

我在我的Windows Server 2016 64位机器上重新安装了Ruby 2.6.5 x86(以前有64位2.6.5和一些2.4.5版本。不记得是32/64位)。最后我没有运行MSYS安装。我看到路径已经更新为包含ruby。当我在命令提示符下键入ruby时,什么也没发生。我没有收到任何消息说ruby未被识别。实际上,看起来ruby将在命令提示符下打开(我看到鼠标加载动画),但随后立即终止。我该如何解决这个问题 根据要求,这里是where ruby的结果: 不是交互式解释器,它仅用于运行

  1    2   3   4   5   6  ... 下一页 最后一页 共 2287 页