我正试图找到一种方法,从另一个RakeFile修改/扩展一个RakeFile,而不实际更改它
当我运行rake任务时,我从SVN中检索到一个包含rakefile的解决方案。我想:
更改此rakefile中的变量
将新任务添加到此rakefile
它利用现有的任务
执行新任务
我希望最好在不修改光盘上原始RakeFile的情况下执行此操作。以下是一种在执行任务之前运行任意代码的方法
your_task = Rake::Task['task:name']
your_task.enhance { th
通过阅读Selenium文档,我可以看到在执行页面加载操作时设置了“newPageLoaded”标志。我试图找出是否有办法在页面加载时获取该标志的值
如何使用Ruby客户端实现这一点将非常好。:) 你能试试这样的吗
selenium.getEval("selenium.browserbot.isNewPageLoaded()");
我试过了,但不管页面是否已完成加载,它都返回false。我的JavaScript fu没有那么强大,所以我试图找出如何检查browserbot对象,看看是否可以找到
我是一名西班牙Rails开发新手。你能帮我解决Rails的问题吗
我有一个Ror2和谷歌地图的应用程序,我捕捉到了X和Y坐标
发送到控制器。我使用:带参数
:catastro,:url=>
{:controller=>“instalacion”,:action=>“catastro_ajax”},with=>“'coordx='+$('instalacion_longitud')。value+'&coordy='+$('instalacion_latud')。value”%>
在method:w
是否可以在上面写入集线器服务
更新:
我不想重写PubSubHubbub协议。我认为可以编写一个HUB,在ZMQ_PUB/ZMQ_SUB socket ZMQ_socket3上实现,但直到现在我还不清楚它是否有意义或是什么。pubsubbub有自己的协议。要使0mq使用该协议,您必须向0mq添加一个新的teansport。这是一件相当复杂的事情,尤其是PubSubHubbub协议基于XML,因此不容易解析
不过,您可以实现pubsubbub/0MQ桥。这应该很容易。什么是桥&它有意义吗。。。一些
是否可以写入第三个输出流?我的情况是,我有许多脚本,它们可以在计算机网格上远程执行各种命令。这些命令产生stdout和stderr。然而,我希望将进度反馈给中央控制机器,而不要让它与网格中各种机器的交错stdout和stderr混淆。我在想,如果可以写入第三个输出流,我可以将它用于来自网格的特定状态事件,控制脚本可以报告这些事件,同时stdout和stderr可以重定向到日志文件,以便在出现错误时进行调试。
值得一提的是,我可能会在ruby中实现这一点,所涉及的机器将是windows和unix机
我需要将嵌入文档的数组批量插入到现有文档中。我尝试了下面的代码,但它不起作用
arr_loc = []
arr_loc << Location.new(:name=> "test") << Location.new(:name=> "test2")
biz = Business.first
biz.locations = arr_loc
biz.save # not working
有关更多信息,请查看。。使用mongoid可以做到这一点吗?事实证
我在以下代码中遇到关联问题
我得到的错误是最后一行代码上的注释
编辑:我简化了代码…
require 'rubygems'
require 'data_mapper' # requires all the gems listed above
require 'pp'
DataMapper.setup(:default, 'sqlite:///Users/chris/Dropbox/HawkEye-DB Test/store.sqlite')
class Manufacturer
incl
我有一个模块a:
module A
extend self
attr_accessor :two, :four
ONE = "one"
@two = "two"
@three = "three"
@@four = "four"
@@five = "five"
def six
"six"
end
end
我要求它放在另一个文件中:
require 'a'
include A
p ONE # => "one"
p two # =&g
有人知道我如何在Ruby代码中运行单元测试(test::unit)吗?我在网上找不到任何帮助我的东西。我们都知道,通过执行“ruby your_test_name.rb”可以从命令行运行单元测试。我基本上不想从命令行运行,但我想在ruby代码本身中运行。有人有什么想法吗?提前谢谢你的帮助。你怎么能想象得到
如果您想在更改后自动启动代码(测试),请签出gemguard
1) 安装防护装置
添加到您的文件中
gem 'guard-test'
比跑
bundle install
或者如果您不使用b
我在SeleniumWeb驱动程序中编写了一个代码,用于测试我的网站的ContactUs页面的运行状况
代码运行良好。我的进一步目标是:
使用Rescue(当此脚本失败时获取错误消息。特别是当在函数>“def test\u contact\u us\u screen\u shot”的执行过程中找不到某些元素时)
参考代码
require 'rubygems'
require "selenium-webdriver"
require "test/unit"
class ContactUsScre
给定一个json数组:
[{ "x":"5", "y":"20" },{ "x":"6", "y":"10" },{ "x":"50", "y":"5" }]
我想找到argmax(x),这样我就可以放置argmax(arr,:arg=>“x”).y并获得5。如何在Ruby中优雅地实现这一点
编辑:稍微澄清一下。其思想是,您可以在列表中指定要最大化的元素的字段,该方法将返回最大化元素。我认为您需要可枚举的max\u by。要像您所说的那样获得y,应该是:
arr.max_by {|hash|
我想比较三个字符串,并根据哪些字符串相同而采取不同的操作
在我看来,有5种不同的结果:
它们都是一样的
他们都不一样
其中两个是相同的A=B、B=C或C=A
我正在努力编写一段高效的Ruby代码,以获得5种不同的结果。比较字符串似乎是一个相当昂贵的操作,我不想重复比较相同的字符串
这段代码将在一个循环中运行,因此进行一些优化似乎是个好主意。这不是我的计算机科学作业,这是一个现实世界的问题:-
[编辑]
对Sergio的代码进行进一步优化,可以得到更好的结果。我们可以将第三个字符串比较延迟到if…
我无法绑定到服务器地址。我使用SavonXML库与服务器建立了连接。现在我只需要监听服务器并收集它发送的HTTP数据包。服务器每次发送:
http://200.34.12.168/Videos/1/frame/0
http://200.34.12.168/Videos/1/frame/1
http://200.34.12.168/Videos/1/frame/2
http://200.34.12.168/Videos/1/frame/3
http://200.34.12.168/Videos/1
我正在用下面的拍子弹奏一根弦
"00:00:30.04,"
哪种方法是将该字符串解析为浮点的最聪明的方法
最好的,
菲尔你有3个数字。将它们分开,只需在每个字符串上调用#to_f(意思是“to float”)
string = "00:00:30.04,"
strings = string.split ":"
numbers = strings.map { |s| s.to_f }
numbers # => [0.0, 0.0, 30.04]
你有3个号码。将它们分开,只需在每个字符串
我刚刚在MacMountainLion上安装了ruby 2,如何安装gems?事实上,我已经安装了两个,但有点不对劲。也许新的装置可以解决这个问题
macbook:~m$ gem install rails
ERROR: Loading command: install (LoadError)
cannot load such file -- openssl
ERROR: While executing gem ... (NoMethodError)
undefined me
我有一个散列,其中包含一个数组:
{
"id": "0001001",
"name": "Bob Fisher",
"work": [
{
"employer": {
"id": "6883542487",
"name": "Marvel"
},
"location": {
"id": "108081209214649",
"name": "Las Vegas, Nevada"
我正在从一个似乎是JSON格式的网页下载内容。它是一个大文件,格式如下:
"address1":"123 Street","address2":"Apt 1","city":"City","state":"ST","zip":"xxxxx","country":"US"
\"address\1":\"123 Street\",\"address2\":\"Apt 1\",\"city\":\"City\",\"state\":\"ST\",\"zip\":\"xxxxx\",\"country
在使用Gemfile源运行bundler时:
来源“”
我得到这个错误:
Resolving dependencies...
Network error while fetching
https://s3.amazonaws.com/production.s3.rubygems.org/quick/Marshal.4.8/pg-0.14.0-x86mingw32.gemspec.rz
如果我运行指定Gemfile source的命令:
来源“”
它运行良好。有什么想法吗
使用bundler(1
我最初写了一个方法来记录一个单词的元音是否按字母顺序排列。我使用了下面的代码:
def ordered_vowel_word?(word)
vowels = ["a", "e", "i", "o", "u"]
letters_arr = word.split("")
vowels_arr = letters_arr.select { |l| vowels.include?(l) }
(0...(vowels_arr.length - 1)).all? do |i|
v
我在irb中运行了以下程序,但在完成后不会中断/退出线程:
count = 0
Thread.new do
while count < 20 do
puts 'Hai'
count += 1
end
Thread.kill
end
count=0
新做的
当计数小于20时,请执行以下操作
放‘海’
计数+=1
结束
线程杀死
结束
它就挂在控制台上。有没有办法完全退出线程?根据我的研究,线程应该在退出块后结束,但是我在网上找不到任何关于这个的信息。谢谢 这
我有两种型号,例如:
class Report ...
belongs_to :answer_sheet
end
class AnswerSheet ...
has_one :report
end
当我做一个测试时:
@answersheet.report = Report.create(:data => 'bleah')
@answersheet.save
# and then create another report and assign it to the same
我正在开发一个捆绑包,它是一个简单的CLI
CLI将发出web服务器请求并缓存对文本文件的部分响应
但是,在开发过程中,我找不到合适的地方来存储响应缓存(我做了一些谷歌搜索)。我只是把它放在gem根目录的“var”目录中。但我不认为gem的根目录是缓存文件的好地方
tmpdir适用于临时缓存文件,但我希望永久存储缓存
对于这样的缓存文件,在目录路径上有更好的做法吗?由于您可能不希望用户共享缓存内容(并且出于其他安全考虑),我会将其放在/home/$USER/$GEMNAME/cache(例如/h
尝试在irb(山狮上的zsh外壳)中使用Twitter gem试验Twitter api的新手。我一直在获取Twitter::Module的未定义方法。任何帮助都将不胜感激
irb(main):001:0> require "rubygems"
=> false
irb(main):002:0> require "twitter"
=> true
irb(main):003:0> puts Twitter.user("Suchitra_E").location
No
我正在使用构建一个Ruby应用程序的安装程序。它创建一个安装程序,为应用程序创建一个windows可执行文件(即启动器),为卸载程序创建一个。我想为启动器和卸载程序使用不同的图标。我不太明白怎么做。在我的releasy项目中,我想我已经告诉过它我不想使用的图标
Releasy::Project.new do
files ['*.rb', 'media/splash.png', 'media/uninstall.ico']
...
end
我重新定义了WindowsInstaller\g
ActiveRecord是否有办法捕获所有数据库字段,包括Pks和FKs?就像ORM DBIx::Class脚本在Catalyst上所做的那样
以下是对此的简要描述:
使用Catalyst“\u create.pl”脚本生成模型
脚本:
$ rm lib/MyApp/Model/DB.pm
$ script/myapp_create.pl model DB DBIC::Schema MyApp::Schema \ create=static components=TimeStamp,Pass
产出:
起点:0
完:999
尺码:999
起点:1000
完一九九九年
尺寸:1600
开始时间:2000年
完:2999
尺码:600
这个1600大小的数组怎么可能呢?我想你的意思是ids[(I*1000)…(I*1000+999)]你在做ids[start,length]而不是ids[start..end]参见
numThou = ids.size/1000
for i in 0..numThou
puts "START:" + (i*1000).to_s
puts "END:"
这里有一个非常基本的问题——我们被要求将以下内容翻译成新的格式,所以
"hello".send(:reverse)
变成
"hello".reverse
下面的:/是什么意思
10.send(:/, 3)
=> 3
这是一种类似的方法。方法将其第一个参数作为方法名,方法名可以是符号或字符串
因此,您正在使用10.send(:/,3)进行除法运算,它只不过是10/3(这是10./(3))的语法糖。这是一种类似的方法。方法将其第一个参数作为方法名,方法名可以是符号或字符串
因此,您正在
我对Ruby有点陌生,正在从头开始写一个程序。。。我遇到了一个错误,我不知道它是从哪里来的。我已经花了一个多小时,我相信这是一件非常简单的事情。我有其他类似的页面可以正常工作,但实例变量存在一些问题。这几乎是一个和我一样的问题
这是我的错误:
Showing C:/Users/kevin/Desktop/ruby_test/sites/simple_cms/app/views/sections/_form.html.erb where line #4 raised:
undefined
我想报告我路线的统计数据。
要做到这一点,我必须知道它们是什么
我用的是ruby的sinatra
所以我有
get '/test/:username' do
....
end
after do
request.path_info
end
但我得到“/test/test\u username123”作为输出
是否有一个变量(如graperoute.route\u path)可以让我获取路线
编辑:葡萄的路线。路线路径将输出“/api/:version/test/:username
所以我正在编写我的第一个Sinatra应用程序,并使用ActiveRecord作为ORM
所以在我的app.rb中,我有一个
class User < ActiveRecord::Base
validates_uniqueness_of :username
validates_presence_of :username
end
Sinatra在用户上崩溃。新建并说
无法获取数据。在上面。我看了教程也不知道。我明白了
我在函数之前声明了User类,因此它没有看到该类
cla
我刚刚尝试安装了peatio,我在peatio/config/database.yml中看到密码为空
那里应该写些什么?
以下是截图:
以下是我在尝试启动服务器时从终端收到的错误:
bundle-execrails服务器
/usr/local/lib/ruby/2.1.0/psych.rb:370:in'parse':():did
分析第6行第3列的块映射时找不到所需的键
(心理学:SyntaxError)
已编辑,以下是完整错误:
from/usr/local/lib/ruby/2.1.0/p
我通过rspec运行了几个测试。这些名称是test1.rb,test2.rb,等等。如何在一个队列中运行它们,而不是在linux控制台中逐个运行它们?我试了一个
rspec -e"test"
变体,但控制台说所有的例子都被过滤掉了。请帮助。在我继续之前,请注意所有规范文件名都应以\u spec.rb结尾。在您的情况下,它应该是:test1\u spec.rb,test2\u spec.rb,等等。我鼓励你结账。运行/spec目录中的所有规范。您可以运行:
$ rspec .
您可以传递选项以
我知道如何创建用户资源:
user "random" do
supports :manage_home => true
comment "Random User"
uid 1234
gid "users"
home "/home/random"
shell "/bin/bash"
password "$1$JJsvHslV$szsCjVEroftprNn4JHtDi."
end
但我不确定如何使用Chef查找当前节点上所有用户的列表。在chef客户端运行期间,
我有一个我正在连接的API,根据文档,我想从我对API的第一次调用中获得一个登录令牌。我用HttpParty设置了一个初始化方法,并获得了令牌,但我不确定如何将其放置在初始化方法中,或者为什么我似乎无法正确解析它
以下是初始化方法:
def initialize(username,password)
@username = username
@password = password
@login_token = login_token
get_token(se
标签: Ruby
mechanizemechanize-ruby
机械化ruby(即)-如何等待基于javascript的页面更新
我有一个需要登录的站点,但是需要很多秒才能登录,但之后它就被当作javascript处理了(看起来)
有没有一种方法可以刷新以下结果:
page = agent.submit(login_form)
-就像@iced所说的:mechanize不处理js。作为替代方案,您可以使用基于webdriver的解决方案(例如selenium、gebish、watir)
我有一些观点需要很多部分,而这些部分又需要几个引导模式才能正常工作
然而,加载modals有点痛苦,因为如果我将它们加载到错误的标记中,它会完全破坏它们,并复制它们
我想有一个很好的助手load\u modal,它实际上会保存一个需要加载的modal列表。然后,在我选择的HTML的一部分中,我可以选择迭代这个列表来加载部分
我的问题
如何存储要调用的部分及其参数的列表
我想到了以下几点(故意使用不起作用的语法,因为我不知道怎么做)
应用程序\u helper.rb
def load_moda
我想在键值对中转换以下句子,比如({total\u amount:discount\u amount})
我该怎么办?如果我能从……开始得到任何提示,那将很有帮助。我假设每个感兴趣的句子都是这样的:
$XX....for....$YY
$XX....off....$YY
或者像这样:
$XX....for....$YY
$XX....off....$YY
其中,XX和YY是非负整数,“for”和“off”是告诉您如何处理这两个数字的关键字。如果是这样,您似乎希望:
arr = ["$10
解析连字符单词列表并返回开头和结尾单词的最佳方法是什么
输入:
spider-man
wonder-woman
输出:
man-spider
woman-wonder
你可以拆分它,然后将其反转
"spider-man".split('-').reverse.join('-')
#=> "man-spider"
您可以使用,并且
你可以用正则表达式
"spider-man".gsub(/^(.+)-(.+)$/, '\2-\1')
#=> "man-spider"
它的速度
这是我正在编写的代码
def gold_room
puts "This room is full of gold. How much do you take?"
print "> "
choice = $stdin.gets.chomp
# this line has a bug, so fix it
if choice.include?("0") || choice.include?("1")
how_much = choice.to_i
else
我正在寻找一种从字符串中选择伪随机字符的方法
例如,我有一个64个字符的字符串。我想选择位置0、1、4、5、8、9
或者更硬的一个是相同的字符串,我会选择位置0,1,2,4,6,8,10,11,12等等
有没有快速的方法可以做到这一点?这可以使用[]来完成
是的,你可以用
更新:
如果你想得到字符串结果-加入结果
> "64charstring".chars.values_at(*[0, 1, 4]).join
=> "64a"
这里有一些可能对你很有用的东西:
#!/usr/bi
我有一个未知数量的东西,比如说100个苹果都有相同的质量
我有两个总重量的桶,当所有的苹果都在桶里的时候,我试图击中它们——桶1占总重量的60%,桶2占40%
我需要一个简单的ruby算法将苹果一个接一个地放入桶中。我需要保持两个桶尽可能均匀分布,而我正在填补他们
我不可能一下子做到这一切,所以我不知道哪一个是最后一个进入最后一桶的苹果。但我总能知道每个桶里苹果的总数
(这是我试图解决的一个真正的问题,不是一个家庭作业问题——我只是用这种方式来表达,以便于理解。)bucket_1,bucket_
我正在为一个对象创建一个类(比如,Bar),该对象将由另一个类的方法返回(比如,Foo#Bar),几乎所有对象都是由返回的
但是类MatchData没有。new
我知道我不需要模仿MatchData实现,但我想了解它,并知道当我发现它有趣时如何去做。假设我不希望客户端创建Bar对象,除非通过调用Foo#Bar
问题:
在内部,没有.new,如何创建MatchData对象
我如何实现它(是否模仿匹配数据)
匹配数据。新的方法是:
rb_cMatch=rb_define_类(“匹配数据”,rb_cO
我重新启动了atom和计算机。这似乎没有一个配置值。我将如何更新atom以反映这一点 你试过这三样东西吗
在~/.bashrc中,通过:
或者,安装
或者,让rvm创建一个可以配置为ruby命令的命令,如所述。thx-我看到了这些命令,但没有一个对我有效。事实上,这是非常奇怪的,它坚持在2.3.1。最后,我只是将rvm default 2.4.1添加到我的~/.bash_配置文件中,直到我可以更深入地了解它。非常难看,但似乎有效。
source ~/.bash_profile
我正在尝试构建我的Rspec测试,以测试我正在构建的ruby应用程序。我知道我应该先构建,然后再测试。代码100%有效,我只是在让Rspec查看我的代码时遇到了问题
github上的完整代码:
到目前为止,我使用rspec运行的唯一文件是ruby/spec/game_spec.rb
game_spec.rb文件如下所示:
require_relative.。/tictactoe
Rspec.description任务是什么
在…之前做
@game=Tictactoe::game.new
终止
我有一个数组的散列。数组由散列索引,散列是我读取此内容的方式:
[
{"name":"G18","data": [["X301",141],["x7901",57],["x2100",142],["x90",58]]},
{"name":"G19","data": [["M16",141],["M203",57],["M29S",142]]},
{"name":"G20","data": [["X301",141],["x7901",57],["x2100",142],["x90",58]
我使用以下方法生成10个随机数字:
10.times.map {|i| (0...9).to_a[rand(10)] }.join
但是如果你运行这个,你会注意到它不会给你10个随机数字。我不明白为什么。次迭代器将运行10次:
10.times
每次调用迭代器时,我们还将映射调用链接到迭代器,并传递一个黑色消息。这将确保块的内容也将被调用10次:
10.times.map {|i| }
在块内部,我们取一个区间,一组有开始和结束的值。在Ruby中,我们可以使用范围来实现这一点。我们取0-9
我的约会对象是:
2018年1月14日
我想把它改成:
2018年1月14日或2018年1月14日
两个步骤:
您需要将字符串转换为Date对象。为此,请使用
您可以使用将日期对象转换为首选格式
见下面的实施:
str = '01/14/2018'
date = Date.strptime(str, '%m/%d/%Y')
=> #<Date: 2018-01-14 ((2458133j,0s,0n),+0s,2299161j)>
date.strftime('%d-
我写了一个巨大的代码,如下所示
headers, *data_rows = @testCaseSheet
local = headers.zip(*data_rows)
local = local[1..-1].map {|dataRow| local[0].zip(dataRow).to_h}
testCaseHash = {}
local.each do |value|
testCaseHash[value["Locator"]] = value
所以我一直在试图解决一个问题,“给定一个字符串,求出最长子字符串的长度而不重复字符。”
比如说
Input: "abcabcbb"
Output: 3
Explanation: The answer is "abc", with the length of 3.
目前,我优化了算法,通过使用哈希表确定子字符串是否唯一。但是,我的代码仍然在O(n^2)运行时运行,因此在提交期间超出了时间限制
我试图做的是基本上遍历每个可能的子字符串,并检查它是否有任何重复的值。在这里,当涉及到暴力方法时,我
我正在从用户处获取输入字符串:
接下来,我用符号“*”拆分输入
接下来,我将这两个数字转换为浮点数据类型
然后,我将这两个数字相乘
def multiply(value1, value2)
result = $value1 * $value2
puts(" Multiplication Result: ", result)
end
输入和输出示例:
您可以使用指定格式,例如:
f |将浮点参数转换为[-]ddd.dddddddd,
|其中,精度指定后面的