我有一个100x40的图像,我想在10像素高的图像顶部添加边框.
我发现了
convert source.jpg -border 0x10 out.jpg
Run Code Online (Sandbox Code Playgroud)
但这会在顶部和底部添加边框.反正有没有把它添加到顶部?
我经常想做
context "empty stack" do
SOME_CONSTANT = "value"
it "should be empty" do
# use SOME_CONSTANT
end
end
context "populated stack" do
SOME_CONSTANT = "a different value"
it "should have some items" do
# use SOME_CONSTANT
end
end
Run Code Online (Sandbox Code Playgroud)
ruby不会将常量范围限制为闭包,因此它们会泄漏出来.有没有人有一个技巧来声明作用于上下文的常量?
我正在使用grunt-contrib-jasmine来运行我的javascript规范.运行规范时如何将调试输出写入控制台,即如何获取
console.log("something");
Run Code Online (Sandbox Code Playgroud)
在控制台中显示输出?我发现我可以通过运行获得输出:
$ grunt jasmine --verbose
Run Code Online (Sandbox Code Playgroud)
但这打印了很多我不感兴趣的信息.我怎样才能看到console.log的输出?
我正在使用capybara-webkit来测试与第三方网站的集成(我需要javascript).
我想使用vcr来记录在集成测试期间发出的请求,但是capybara-webkit不会覆盖net http,因此vcr无法记录它们.我如何为vcr编写一个适配器,以便记录所需的内容?
我有一个活跃的记录模型:
class Person < ActiveRecord::Base
serialize :tags, Array
end
Run Code Online (Sandbox Code Playgroud)
在迁移中,tags列声明为
t.text :tags, :default => []
Run Code Online (Sandbox Code Playgroud)
但是当我试图创造一个人的时候
Person.new
Run Code Online (Sandbox Code Playgroud)
我收到了错误
ActiveRecord::SerializationTypeMismatch: added was supposed to be a Array, but was a String
Run Code Online (Sandbox Code Playgroud)
如何在迁移中将默认设置为空数组?
注意:我知道我可以使用after_initialize来做到这一点,但我更喜欢在迁移中设置默认值
serialization activerecord attributes ruby-on-rails ruby-on-rails-3
我有以下型号
class Person
include Mongoid::Document
embeds_many :tasks
end
class Task
include Mongoid::Document
embedded_in :commit, :inverse_of => :tasks
field :name
end
Run Code Online (Sandbox Code Playgroud)
我如何确保以下内容?
person.tasks.create :name => "create facebook killer"
person.tasks.create :name => "create facebook killer"
person.tasks.count == 1
different_person.tasks.create :name => "create facebook killer"
person.tasks.count == 1
different_person.tasks.count == 1
Run Code Online (Sandbox Code Playgroud)
即任务名称在特定人员中是唯一的
检查了索引上的文档后,我认为以下内容可能有效:
class Person
include Mongoid::Document
embeds_many :tasks
index [
["tasks.name", Mongo::ASCENDING],
["_id", Mongo::ASCENDING]
], :unique => true
end
Run Code Online (Sandbox Code Playgroud)
但
person.tasks.create :name => "create facebook killer"
person.tasks.create :name => "create facebook killer" …
Run Code Online (Sandbox Code Playgroud) 我正在添加一个rspec钩子,它允许我打开vcr并使用当前示例的名称作为卡带名称.
it "should have collaborators", :vcr => :once do
# web interactions
end
config.around(:each, :vcr => :once) do |example|
VCR.use_cassette(example.name, :record => :once) do
example.call
end
end
Run Code Online (Sandbox Code Playgroud)
麻烦的是我不知道如何获取当前示例的名称(example.name不起作用).
可能重复:
如何避免运行ActiveRecord回调?
在rails 2中,active_records上有一个名为create_without_callbacks的私有方法,您可以调用该方法将记录保存到数据库中,而不会触发与该对象关联的回调.这种方法在rails 3中已经消失了,有什么方法可以实现同样的东西?
当我从控制台运行vim或top时,他们可以接管渲染整个控制台.当我退出时,我就回到了控制台.
是否有可能从红宝石这样做?举个简单的例子,我该如何做
# Rakefile
task :clock do
loop do
console.render Time.now
sleep 1
end
end
Run Code Online (Sandbox Code Playgroud)
当我运行它时,控制台将被清除,第一行将显示时间.当我退出时,我会继续执行控制台会话,就像我运行rake clock之前一样.
检查了ruby curses 的tictactoe示例,这是时钟示例的实现.我已经在随机线上显示时钟,以演示整个控制台的刷新.
#!/usr/bin/env ruby
require 'curses'
loop do
Curses.clear
Curses.setpos(rand * 10, 0)
Curses.addstr(Time.now.to_s);
Curses.refresh
sleep 1
end
Run Code Online (Sandbox Code Playgroud) 我需要定义自定义方法来序列化/反序列化对象.我想做类似以下的事情.
class Person
def to_yaml_type
"!example.com,2010-11-30/Person"
end
def to_yaml
"string representing person"
end
def from_yaml(yaml)
Person.load_from(yaml)
end
end
Run Code Online (Sandbox Code Playgroud)
声明序列化/反序列化的正确方法是什么?
ruby ×3
activerecord ×2
rspec ×2
rspec2 ×2
vcr ×2
attributes ×1
border ×1
callback ×1
command-line ×1
constants ×1
filter ×1
gruntjs ×1
hook ×1
imagemagick ×1
jasmine ×1
mongodb ×1
mongoid ×1
yaml ×1