我想从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}
好了,我已经买了三天的Macbook了
我安装了textmate,看到了一个很酷的Ruby语法突出显示工具,叫做紫外线
我已经安装了紫外宝石,但我不知道它的功能。我该如何使用它呢?还是自动安装?应该有紫外线主题吗?紫外线到底起什么作用 是ruby应用程序中使用的语法突出显示引擎。与Textpow相结合,它允许您将在textmate中看到的相同语法高亮显示显示到web页面上
Textmate附带了很多主题,您可以从vibrant ink中选择,这可能是最流行的主题,紫外线利用了这些主题 我觉得这会
如何输入命令-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!(
我正在做一个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
path是包含名称、年龄、职业、爱好等内容的文件的路径
我希望输出的名称只,但我得到了整个行
为什么会这样?你的问题不是很清楚
拆分(“\n”)-如果要按行拆分
拆分-如果要按空格拆分
我可以理解,您不需要chomp,因为它删除了所有“\n”您的问题不是很清楚
拆分(“\n”)-如果要按行拆分
拆分-如果要按空格拆分
我可以理解,您不需要chomp,因为它删除了所有“\n”问题已经有了公认的答案,但值得注意的是,最初问题的原因是:
这是问题所在:
File.open(path, 'r').eac
为什么这对我不起作用:
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
我试图只在满足条件时才包含一个模块
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
这不管用,我也不知道为什么。有人能告诉我如何根据满足的条
我一直在尝试使用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
我对Redis真的很陌生,一直在使用它和我的Ruby on Rails(Rails 2.3和Ruby 1.8.7)应用程序,使用Redis gem作为键值存储的简单标记功能。我最近意识到我可以用它来维护一个用户活动提要
问题是我需要内存中的标记数据(存储为key=>set),这对于确定标记相关操作的结果非常重要,对于活动提要,数据可以先入先出的方式删除。假设我为每个用户存储X个活动
我是否可以为redis数据集命名,让其中一个永久保留在内存中,另一个暂时保留在内存中。当一个人使用不相关的数据集,
rails 3+中是否有用于填写文本字段的建议列表的功能或Gem?
类似于谷歌即时搜索,在文本字段中根据键入的关键字下拉匹配条目。该函数将进行ajax调用,并从后端数据库或其他一些源等检索相对值。我现在没有代码,我猜应该是观察一个字段并基于此进行ajax调用。有没有更好的方法
谢谢大家! 查看ryan bates的自动完成。你觉得这就是你要找的吗
我已经看到并理解了:after过滤器,但我甚至不知道我要做什么的术语。我有一个使用twilio和highrise日志调用的简单应用程序。由于延迟问题,我想在发布到外部API之前通过sinatra返回twiml响应。有什么建议吗
我见过类似的问题,但没有一个是关于ruby/sinatra的。谢谢。宝石可以满足你的需要。它允许您计划将来执行的代码,例如在发送HTTP响应后执行
DJ依赖于ActiveRecord,它需要一个db表来存储作业,但您也可以在Sinatra上运行它:有一个用于此的gem,称
我要寄一份预约单
现在它们看起来像这样:
-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的Curses库的应用程序编写规范。诅咒显然垄断了终端屏幕,所以我尝试将rspec的输出重定向到一个文件。这在很大程度上是可行的,但是我的一些失败的规范缺少信息,我认为RSpec正在将它的一些输出打印到$stdout
我尝试过将Curses库配置为不打印到屏幕上,但没有效果。有没有办法禁用Curses输出以便测试可以正常运行?尝试,当您决定恢复Curses输出时,调用Curses。refresh我有一个配置标志,指定是否执行Curses输出。对于单元测试,我禁用curse
标签: Ruby
Nginx
passengerthriftthrift-protocol
我正试图让我的应用程序使用节俭的方式相互交流。所有应用程序都在同一个网络中运行,并且都是使用Nginx和Phusion运行的ruby应用程序。使用thrift与thrift::HTTPClientTransport在应用程序之间通信没有问题,但这涉及到在接收应用程序上公开HTTP URL。我制作了一个框架中间件,它将请求接收到此路径,调用被调用的方法,并通过thrift进行响应
我的问题是,在运行passenger时,如何绕过中间件和thift HTTP传输的需要。我想到了一些想法,包括制作自己
我想得到A=[和第一个封闭]之间的任何东西:
到目前为止还不错
但是,对于A=[]:
如何获得一个空字符串,而不是[B=[boy?使用。*?而不是.+?。前者匹配零个或多个字符,而后者匹配一个或多个字符
"Hello A=[] B=[boy] World".match(/A*=*\[(.*?)\]/)[1] # => ""
我会使用:
str = "Hello A=[apple] B=[boy] World"
str[/A=\[(.*?)\]/, 1] # => "apple"
s
考虑以下代码:
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
我知道类中的实例变量可以通过在变量名前面加@符号来表示。这在课堂上有一些实际应用
在函数中这样做的实际应用是什么
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
我有一个字符串: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, "
每个字符
作为一个天真的程序员,我在测试中犯了一个巨大的错误:
it_behaves_like 'a Database' do
def build_content
# ...
end
end
在一些随机错误和使用共享规范添加更多测试之后,我意识到这样的代码从一开始就是错误的,并且消耗了一些有价值的测试。它应该一直是:
it_behaves_like 'a Database' do
before :all do
def build_content
# ...
我在根目录中已经有一个config.rb,其中包含以下内容:
# Require any additional compass plugins here.
# Set this to the root of your project when deployed:
http_path = "/"
css_dir = "css"
sass_dir = "sass"
images_dir = "images"
javascripts_dir = "js"
# generated_images_di
我正在创建一个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
如何从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
我想用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|
这是输入哈希:
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
我有这样的散列:
{"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中遇到了以下问题
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也会发生变异
这种行为属于哪一类?有没有我可
这是我代码的一小部分。如果这还不够,我将发布完整的代码。
我在服务器上执行的命令很少,除了使用require'net/ssh'更改目录cd命令外,其他一切都很正常
我试过cd和Dir.chdir,但没有成功。这里@action是我的目录名
puts @ssh.exec!('pwd')
@ssh.exec!("cd ./#{@action}")
puts @ssh.exec!('pwd')
在执行命令之前和之后,我尝试打印当前工作目录,它显示相同的路径,而没有转到所需的路径 为什么Dir.
标签: Ruby
capistranocapistrano3
我的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: 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
我想写一个Jekyll插件来修改站点对象。site对象在Jekyll构建过程中始终可用。在Jekyll中,向其添加属性的最直接方法是在_config.yml文件中定义它。这在某些情况下是有效的,但我需要更进一步
我问这个问题的原因是,我需要做的事情比在YAML文件上下文中所能做的更多。我想向站点对象添加一个方法。我假设我只需要将该方法添加到Site类中,但它不起作用
非工作插件:
module Jekyll
class Site
def foo
"foo"
end
因此,我使用创建了一组可以并发运行的测试用例
我在yaml中指定了测试用例名称,并通过并行过程将每个测试用例名称分配给全局var$t
然后我使用define_方法为每个测试单元测试用例定义唯一的方法名称。如果没有唯一的方法名,测试单元将出现错误,测试用例被重新定义错误
我看到的是,每个测试用例名称都被解析,测试正在运行,返回适当的测试单元结果——测试运行顺利,并且正确结束
然而,在测试运行结束时,我在testcase上看到一个未定义的方法错误,这是define_method占位符变量,即defi
我有两个csv文件,每个文件有13列
每行的第一列包含一个唯一的字符串。有些在每个文件中重复,有些只存在于一个文件中
如果该行仅存在于一个文件中,我希望将其保留在新文件中
如果两者都存在,我希望将具有特定值(或缺少特定值)的一个保留在同一行的特定列中
例如:
文件1:
D600-DS-1991, name1, address1, date1
D601-DS-1991, name2, address2, date2
D601-DS-1992, name3, address3, date3
文件2
我试着用这样的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
我在本地计算机上安装了Oracle瘦客户机,以便在远程主机上执行SQL命令。
此外,我还有一个Ruby脚本,其中包含使用OCI8GEM的SQL命令,并且该脚本工作正常
但是,要运行SQL命令,我需要打开一个隧道,转发到远程Oracle正在侦听的端口:
ssh -L 1521:localhost:1521 <user>@<host>
然而,隧道并没有被摧毁
有没有一种方法可以从Ruby脚本中杀死/终止隧道?HUP信号不会杀死进程,它只是向进程发送一个信号,而该进程可以随意
我不知道如何解析这个响应。我只想从中提取一个计数
更新:
如何解析这个XML响应
这是我的API连接信息
我正在使用Ruby irb和HttpParty
require 'httparty'
api_key = "6e569b3d-3457-9485-edb2-eccd27272dbf"
secret_key = "MDVkYTQzMDgtOWRiOC04NDULTRkYWUtODQwOTc5ZDFkZTQ3NTZhOG1NWQtNmMzMi0xYjE0LWYMzgtNDc0YzU0MWYxY
我正在尝试用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
似乎.coffee.erb中的注释已在最终编译的.js中删除
例如:
在
文件顶部附近有一条类似IE helper的注释
在上面的rakefile之后,我运行bundle-exec-rake-assets:compile-VERSION=0.8,最后的javascript删除哈希标记注释。这是有道理的,因为javascript不支持作为注释的开头
有没有办法将coffee脚本转换为//javascript或类似的格式?来自:
有时,您希望将块注释传递给生成的JavaScript。例如,当您需要在
也许我不得不用糟糕的HTML编程检查来管理
在下面的代码中,不是用斜体字表示单词,而是一个图标。我想点击哪个,但哪个是适合的
我去了post,尝试了按钮和图像的方法,但都不起作用
我通过创建页面对象来尝试它,因为这是我想要的方式
按钮:与会者列表,:title=>“与会者”和图像:与会者列表,:title=>“与会者”
用作
onUpcomingWebinarPage.attenders\u列表
我认为,您可以尝试使用元素:
在page对象中,您需要创建一个泛型。因为这是一个奇怪的情况,所以我将
我想在我的仪表板上使用两次小部件,但有不同的选项。我想在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
如果我运行此代码:
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
基本上,我希望在提交带有空必填字段的表单时检查错误消息
def usertabfieldvalidation
@session.button(:class, "btn-primary").click
@session.text.include? 'Giant Gerbils of the world unite'
end
这一步过去了。我想检查文本,请填写此字段,但我查找的任何文本都将通过。我对ruby和watir webdriver还比较陌生,所以想知道我哪里出了问题
提前感谢。所以我将RS
我很惊讶在我支持的代码库中偶然发现了一些字符串连接。为什么,或者如何,下面的代码将两个字符串连接在一起
queue_name = 'gen-request-' "#{ENV['USERNAME'].gsub('.','')}"
=> "gen-request-robertkuhar"
我本来希望在两个字符串之间看到一个“+”,但它不在那里。这是暗示还是什么
我知道这对于中间的字符串插值更有意义。这不是我要问的。我想知道什么是语言语法首先允许它工作。这只适用于字符串文字,以及文字语法的一部
我试图打印文件“words”中最长的一行,这是一个文件,每个文件都有一个新行中的单词列表。
有了下面的代码,我可以让它打印每一行比前一行长的内容。但是,我需要它只打印整个文件中最长的一行
我对Ruby还是新手,在谷歌上似乎找不到答案
max = 0
IO.foreach('words') do |line|
if line.length > max
max = line.length
print line
end
end
我非常感谢你
所以我用ruby写了这个游戏,我有这个功能:
puts "Monsters that make you loose a hand-weapon"
for m in monsters
specificTreasures = Array.new
specificTreasures = m.bc.SpecificVisibleTreasures + m.bc.specificHiddenTreasures
for treasure in specificTreasures
我正在用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
我有一个包含以下元素的数组:
results = ["test=complete", "test2=passed", "test3=failed", "test4=successful"]
我想将此数组转换为具有以下键和值的哈希:
results_hash = {"test": "complete", "test2": "passed", "test3": "failed", "test4": "successful"}
我该怎么做?不确定是否最好使用set、hash等
results =
我正在尝试使用Net::HTTP从API服务器获取
我从控制台获取uri并粘贴到浏览器中,然后收到JSON响应
但是使用Ruby Net::HTTP get,我收到一些安全消息:
为什么不同?浏览器和Ruby脚本位于同一个公共IP后面 顺便说一句,你被正确地检测为爬虫。请注意,来自浏览器和脚本的请求并不完全相同。浏览器发送一些标题,如接受语言、用户代理等。您可以使用浏览器中的web inspector工具查看这些标题。另一方面,在脚本中,您只将Accept header和设置为JSON,这本身就
我目前正在用Ruby编写一个命令行Tic-Tac-Toe游戏,在将游戏板上的单元格更改为玩家的标记X或O时遇到问题。在我的代码中,我通过玩家类实例中的make_-move方法访问GameBoard类中的cells类变量。但是,当我运行代码时,单元格不会更改
代码:
应显示:
X | 2 | 3
-----------
4 | 5 | 6
-----------
7 | 8
在下面的代码中,Parentjust\u do覆盖了祖父母just\u do。在我的课堂上,我怎么称呼祖父母呢
你真的无法取消覆盖某些内容。在这种特殊情况下,您可以重新导入它,但这可能会产生其他副作用
父对象最好保留原始对象,因为可能需要调用:
module GrandParent
def just_do
puts "GrandParent"
end
end
module Parent
def self.included(base)
base.extend Clas
我在我的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 页