是否可以要求带参数/参数的文件?
例如
resource.rb有
mode = ARGV.first
if mode == "prod"
#use prod db
else
#use test db
end
Run Code Online (Sandbox Code Playgroud)
而main.rb需要它与params类似的东西
require_relative './resource.rb prod'
Run Code Online (Sandbox Code Playgroud)
如果这是不可能或不好的做法,请告诉我.我想我可以使用版本控制在测试和prod之间切换,但它似乎有点迟钝.
(prod和测试仅用于区分.这是一个非常轻量级的项目,如果它有任何区别,则不是商业:))
在Windows XP上使用Ruby 1.9.3谢谢.
我很惊讶,这已经没有答案了.只有使用宝石和使用ruby参数但不能同时使用两者的东西.
如何使用rspec存根一个接受两个用户输入的方法?可能吗?
class Mirror
def echo
arr = []
print "enter something: "
arr[0] = gets.chomp
print "enter something: "
arr[1] = gets.chomp
return arr
end
end
describe Mirror do
it "should echo" do
@mirror = Mirror.new
@mirror.stub!(:gets){ "foo\n" }
@mirror.stub!(:gets){ "bar\n" }
arr = @mirror.echo
#@mirror.should_receive(:puts).with("phrase")
arr.should eql ["foo", "bar"]
end
end
Run Code Online (Sandbox Code Playgroud)
使用这些规范,@ mirror.echo的返回值是["bar","bar"],这意味着第一个存根被覆盖或被忽略.
我也试过使用@ mirror.stub!(:gets){"foo \nbar \n"}和@ mirror.echo返回["foo \nbar \n","foo \nbar \n"]
我创建了一个带有"_id","name"和"status"字段的pouchDB文档.但是,我发现如果我想更新文档的"status"字段,那么我还需要指定我不会改变的所有其他字段,否则它们会被删除.也就是说,如果我在更新时没有指定"名称"字段,则文档上将不再有"名称"字段.
function createFriendSchedule(friend){
pouchDB.put({
_id : friend['id'],
name : friend['name'],
status: "new"
}, function(err, response){
createAndDispatchEvent("friend Schedule created");
});
}
Run Code Online (Sandbox Code Playgroud)
这是更新文档的代码
function changeFriendStatus(friend){
pouchDB.get(friend['id'], function(err, retrieved){
pouchDB.put({
_id : friend['id'],
_rev : retrieved._rev, //need to specify _rev otherwise conflict will occur
name : retrieved.name, //if you don't specify name should remain the samme as before, then it will be left off the record!
status : friend['status']
}, function(err, response){
if(err){
console.log("COULDN'T CHANGE FRIEND STATUS");
} else { createAndDispatchEvent("friend status changed") …Run Code Online (Sandbox Code Playgroud)