小编ops*_*psb的帖子

使用imagemagick将边框添加到图像顶部

我有一个100x40的图像,我想在10像素高的图像顶部添加边框.

我发现了

convert source.jpg -border 0x10 out.jpg
Run Code Online (Sandbox Code Playgroud)

但这会在顶部和底部添加边框.反正有没有把它添加到顶部?

border imagemagick

19
推荐指数
2
解决办法
1万
查看次数

rspec上下文的范围常量

我经常想做

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不会将常量范围限制为闭包,因此它们会泄漏出来.有没有人有一个技巧来声明作用于上下文的常量?

rspec constants rspec2

19
推荐指数
2
解决办法
7550
查看次数

从grunt-contrib-jasmine登录

我正在使用grunt-contrib-jasmine来运行我的javascript规范.运行规范时如何将调试输出写入控制台,即如何获取

console.log("something");
Run Code Online (Sandbox Code Playgroud)

在控制台中显示输出?我发现我可以通过运行获得输出:

 $ grunt jasmine --verbose
Run Code Online (Sandbox Code Playgroud)

但这打印了很多我不感兴趣的信息.我怎样才能看到console.log的输出?

jasmine gruntjs

17
推荐指数
1
解决办法
5970
查看次数

vcr与capybara-webkit

我正在使用capybara-webkit来测试与第三方网站的集成(我需要javascript).

我想使用vcr来记录在集成测试期间发出的请求,但是capybara-webkit不会覆盖net http,因此vcr无法记录它们.我如何为vcr编写一个适配器,以便记录所需的内容?

ruby capybara-webkit vcr

14
推荐指数
2
解决办法
2954
查看次数

空数组作为active_record序列化属性的默认值

我有一个活跃的记录模型:

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

11
推荐指数
2
解决办法
4842
查看次数

如何在mongoid中强制执行独特的嵌入式文档

我有以下型号

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)

ruby-on-rails mongodb mongoid ruby-on-rails-3

9
推荐指数
2
解决办法
5157
查看次数

rspec hook中当前示例/组的名称

我正在添加一个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不起作用).

hook rspec filter rspec2 vcr

8
推荐指数
1
解决办法
2919
查看次数

保存active_record而不调用rails3中的回调

可能重复:
如何避免运行ActiveRecord回调?

在rails 2中,active_records上有一个名为create_without_callbacks的私有方法,您可以调用该方法将记录保存到数据库中,而不会触发与该对象关联的回调.这种方法在rails 3中已经消失了,有什么方法可以实现同样的东西?

activerecord ruby-on-rails callback ruby-on-rails-3

7
推荐指数
1
解决办法
6967
查看次数

使用ruby接管控制台输出

当我从控制台运行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)

ruby command-line

7
推荐指数
1
解决办法
1188
查看次数

自定义to_yaml和domain_type

我需要定义自定义方法来序列化/反序列化对象.我想做类似以下的事情.

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 yaml

6
推荐指数
2
解决办法
1281
查看次数