小编kre*_*eek的帖子

为什么我的rspec测试在Ruby 1.9.2中的运行速度比1.8.7慢?

我正在使用spork来测试Sinatra应用程序,使用Ruby 1.9.2,测试运行时间约为3.5秒,但在Ruby 1.8.7中,它们平均为1.2秒.我确实尝试过Ruby 1.9.3甚至是JRuby,但他们使用的宝石有一些错误.有没有办法将Ruby 1.9.2的rspec性能提升到1.8.7的水平?

我的Gemfile:

source :rubygems
gem 'sinatra', '1.3.1'
gem 'thin', '1.3.1'
gem 'haml', '3.1.4'
gem 'datamapper', '1.2.0'
gem 'dm-postgres-adapter', '1.2.0'
gem 'carrierwave', '0.5.8'
gem 'carrierwave-datamapper', '0.2.0'

group :test do
  gem "dm-sqlite-adapter"
  gem "spork"
  gem "rspec"
  gem "rack-test"
end
Run Code Online (Sandbox Code Playgroud)

spec_helper.rb:

require 'rubygems'
require 'spork'
require 'sinatra'
require 'rack/test'
require 'rspec'

require File.join(File.dirname(__FILE__), '..', 'app.rb')
require File.join(File.dirname(__FILE__), '..', 'model/model.rb')

Spork.prefork do
  set :environment, :test
  set :files, "test_files"
end

Spork.each_run do
  RSpec.configure do |config|
    config.before(:each) { DataMapper.auto_migrate! } …
Run Code Online (Sandbox Code Playgroud)

ruby unit-testing rspec sinatra spork

6
推荐指数
1
解决办法
365
查看次数

是否可以将变换矩阵应用于SVG滤镜效果

我正在尝试重新创建一个像SVG中的推针一样的iphone地图,我将引脚部分放下,但我想知道如何处理阴影.我见过一堆投影示例,但它们只是将原始像素偏移几个像素.是否可以将变换矩阵应用于滤波器以使其偏斜?

这是迄今为止的pin SVG:

<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
    <defs>
        <radialGradient id="SVGID_1_" cx="29.3623" cy="31.1719" r="11.6241" gradientTransform="matrix(1.1875 0 0 1.1875 -30.8438 -30.2812)" gradientUnits="userSpaceOnUse">
            <stop  offset="0.2637" style="stop-color:#FF0000"/>
            <stop  offset="1" style="stop-color:#6D0000"/>
        </radialGradient>
    </defs>
    <rect x="9.251" y="13.844" fill="#CCCCCC" stroke="#7C7C7C" width="2" height="24.83"/>
    <circle fill="url(#SVGID_1_)" stroke="#660000" cx="10.5" cy="11.5" r="9.5"/>
    <ellipse transform="matrix(0.8843 0.4669 -0.4669 0.8843 4.475 -1.6621)" fill="#FFCCCC" cx="6.591" cy="8.199" rx="1.538" ry="1.891"/>
</svg>
Run Code Online (Sandbox Code Playgroud)

谢谢!

svg dropshadow svg-filters

5
推荐指数
1
解决办法
1557
查看次数

Carrierwave上传适用于rails控制台,但不符合规范

我有以下型号:

class Face < ActiveRecord::Base
  attr_accessible :face_index, :design, :background
  belongs_to :template
  mount_uploader :background, BackgroundUploader
end
Run Code Online (Sandbox Code Playgroud)

BackgroundUploader:

class BackgroundUploader < CarrierWave::Uploader::Base
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
end
Run Code Online (Sandbox Code Playgroud)

当我启动rails控制台时,我可以创建一个Face并为其保存背景:

f = Face.create(:face_index => 0)
f.background = File.open("/path/to/image.jpg")
f.save!
Run Code Online (Sandbox Code Playgroud)

这一切都有效,但当我尝试将其移至rspec时,我遇到了失败:

Failures:

  1) Face A new face 
     Failure/Error: @face.background = File.open(image_path)
     NoMethodError:
       undefined method `background_will_change!' for #<Face:0x007ff63d9f7410>
Run Code Online (Sandbox Code Playgroud)

规格:

describe Face do

  before(:each) do
    image_path = Rails.root.join('spec/support/images', '02.jpg').to_s
    @face = FactoryGirl.create(:face)
    @face.background = File.open(image_path)
    @face.save!
  end

  describe "A new face" do
    it { should belong_to(:template) } …
Run Code Online (Sandbox Code Playgroud)

ruby rspec ruby-on-rails carrierwave factory-bot

5
推荐指数
1
解决办法
4785
查看次数

从两个或更多seqs创建seq的地图

我是Clojure的新手,我想知道是否有办法从两个或更多序列创建一系列地图.

假设你有:

(def numbers '(1 2 3))
(def letters '("a" "b" "c"))
(def shapes '("circle" "square" "triangle")) 
Run Code Online (Sandbox Code Playgroud)

如果你合并那些我想在Ruby中得到哈希数组,或者在Clojure中得到一系列地图?

({:number 1, :letter "a", :shape "circle"} {:number 2, :letter "b", :shape "square"} {:number 3, :letter "c", :shape "triangle"})
Run Code Online (Sandbox Code Playgroud)

谢谢!

clojure hashmap map seq

5
推荐指数
1
解决办法
209
查看次数

Clojure:通过'扩展'可选的args来运行

我是Clojure的新手,我坚持如何'扩展'一个函数的可选args,这样它们就可以发送到另一个使用可选args的函数(但是希望那些args作为关键字而不是seq的关键字).

我正在解析xml,如果我硬编码值,如下所示我的函数工作,它走xml并找到'title'的值:

; zd was required like this
[clojure.data.zip.xml :as zd]
; ...
(defn get-node-value [parsed-xml & node-path]
  (zd/xml-> (zip/xml-zip parsed-xml) :item :title zd/text))

(get-node-value parsed-xml)
Run Code Online (Sandbox Code Playgroud)

我想要做的是使用'node-path'传递任意数量的关键字,但是当写成如下所示时,它会以一系列关键字形式出现,因此会引发异常:

(defn get-node-value [parsed-xml & node-path]
  (zd/xml-> (zip/xml-zip parsed-xml) node-path zd/text))

(get-node-value parsed-xml :item :title)
; ClassCastException clojure.lang.ArraySeq cannot be cast to clojure.lang.IFn  clojure.data.zip/fixup-apply (zip.clj:73)
Run Code Online (Sandbox Code Playgroud)

谢谢!

arguments clojure sequence keyword optional

5
推荐指数
1
解决办法
795
查看次数

是否可以将'required'传递给AngularJS指令?

我正在制作一个使用<input>内部的自定义自动完成指令,但是我在确定如何将'required'属性传递下来时遇到了一些麻烦,其他具有我可以看到但是'required'的值的属性似乎无论是否设置都是空白的.我的回复声明的第一部分如下:

return {
            restrict: 'E',
            template: tpl,
            replace: true,
            scope: {
                suggestionsPath: '=autoComplete',
                method: '@method',
                term: '@term',
                required: '@required',
                ngModel: "="
            }...
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript validation angularjs

5
推荐指数
1
解决办法
3680
查看次数

将UITextView滚动到底部,不带动画

我有以下代码,使用动画将textview滚动到底部.

- (void)scrollTextViewToBottom:(UITextView *)textView {
    [_logTextView scrollRangeToVisible:NSMakeRange([_logTextView.text length], 0)];
}
Run Code Online (Sandbox Code Playgroud)

我见过其他一些使用contentOffset但可能有错误的例子?因为它给出了不一致的结果.

objective-c uitextview ios

5
推荐指数
1
解决办法
1689
查看次数

如何使用OCMockito存根CocoaLumberjack或NSLog

我可以存根/验证类方法,但是我对定义的宏有困难.我正在尝试测试我的一个方法调用DDLogInfo.

它在CocoaLumberjack源代码中定义如此

#define DDLogInfo(frmt, ...)    LOG_MAYBE(LOG_ASYNC_ENABLED, LOG_LEVEL_DEF, DDLogFlagInfo,    0, nil, __PRETTY_FUNCTION__, frmt, ##__VA_ARGS__)
Run Code Online (Sandbox Code Playgroud)

谢谢!

unit-testing mocking objective-c ios ocmockito

5
推荐指数
1
解决办法
267
查看次数

有没有办法在redis中列出所有缓存的脚本?

SCRIPT EXISTS sha1
Run Code Online (Sandbox Code Playgroud)

以上将告诉您脚本是否存在但是有没有办法在redis中列出所有缓存的脚本?

谢谢!

scripting redis

5
推荐指数
1
解决办法
1376
查看次数

D3鼠标滚轮缩放行为的约束

d3可视化库具有出色的鼠标滚轮和触摸启用缩放功能,但似乎没有办法限制它.如何修补d3缩放行为以添加最小值和最大值?

javascript zoom d3.js

4
推荐指数
1
解决办法
2040
查看次数