小编Cim*_*imm的帖子

用Ruby绘制GPS信息

我正在寻找以编程方式将我的GPS日志转换为图像的方法,并希望在Ruby中执行此操作...如果这是可接受的工具.我没有任何GIS背景,但作为程序员,我认为这是一个有趣的问题.

这是我到目前为止所提出的.首先,您需要某种图形库.我去了gnuplot,因为我找到了一个Ruby绑定,但是这些天R似乎很热.我创建了一个小脚本来转换GPX文件并将数据提供给gnuplot,结果如下:alt text http://dl.dropbox.com/u/45672/gpslog.png

这看起来很好,但gnuplot似乎真的是一个创建图形的工具,而不是空间数据.这是做到这一点的方式还是有更好的解决方案?

这是另一个例子,你知道如何构建这样的东西吗?

ruby plot gps spatial gpx

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

Spec RSpec模型属性设置器

我正在使用Sinatra(1.2)和RSpec(2.5),并且想要创建一个具有属性TDD样式的新对象.这是最终结果的样子:

class User
  def initialize(name)
    @name = name
  end
end
Run Code Online (Sandbox Code Playgroud)

我知道我必须在实现之前编写示例,但我想在这里解释我的问题.:)这是我到目前为止没有工作的规范:

describe User
  it "creates a new user object" do
    name = mock("A name")
    user = mock(User) # shouldn't do this, see the reply's
    user.should_receive(:name=).with(name)
    User.new(name)
  end
end
Run Code Online (Sandbox Code Playgroud)

当我运行RSpec时,我得到"预期:1次,收到0次"错误.知道如何解释RSpec我想分配名称属性吗?

注意:我没有使用Rails,没有使用ActiveRecord或任何东西,只有Ruby.

ruby setter attributes rspec

5
推荐指数
2
解决办法
8672
查看次数

在模型回调的Rails控制器中触发操作

我试图围绕Rails中的服务器发送事件进行直播.我有一个Rake任务侦听文件更改,这会将记录添加到数据库中.一旦添加,我想发送一个SSE到前端.

但是,模型不能向前端发送事件,控制器负责.如何告诉我的控制器将新记录添加到数据库中?

到目前为止我的(破碎)解决方案:在模型中使用带有回调的EventBus,after_save它会通知更改并要求控制器监听这些消息:

require 'reloader/sse'
class SseController < ApplicationController
  include ActionController::Live

  def index
    response.headers['Content-Type'] = 'text/event-stream'
    sse = Reloader::SSE.new(response.stream)
    EventBus.subscribe(:added) do |payload|
      sse.write({ /* payload */ })
    end
  rescue IOError
  ensure
    sse.close
  end
end
Run Code Online (Sandbox Code Playgroud)

我认为我的请求在收到事件之前就结束了,这意味着它永远不会在de subscribe块中结束.这是正确的方法,如果是这样,我错过了什么?

event-bus server-sent-events ruby-on-rails-4

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

使用具有has_many关系的复选框

我有一些行发票.一行只能属于一张发票.这就是我的架构的样子:

create_table "invoices" do |t|
end

create_table "lines" do |t|
  t.integer  "invoice_id"
end
Run Code Online (Sandbox Code Playgroud)

我的模特:

class Invoice < ActiveRecord::Base
  has_many :lines
end

class Line < ActiveRecord::Base
  belongs_to :invoice
end
Run Code Online (Sandbox Code Playgroud)

现在,在创建(或编辑)发票时,我想显示一个包含所有可能行的列表(数据库中已经存在的行),并且每行都有一个复选框,用于将其与发票链接.

我看了一下HABTM问题,但我认为这不是我需要的,问题并不复杂.我认为问题是我想在发票时更新Unit#invoice_id.我可以使用嵌套表单执行此操作,还是需要在此处使用before_save回调?

谢谢!

checkbox activerecord ruby-on-rails

4
推荐指数
2
解决办法
4886
查看次数

删除了骨干视图DOM元素

我一直在阅读Backbone.js僵尸(或内存泄漏)问题.基本上,当您不再需要它以确保所有事件都被删除时,您必须解除绑定并从DOM中删除该元素.

现在,我有一个带有几个容器的单页应用程序:

<div id="page1"></div>
<div id="page2"></div>
Run Code Online (Sandbox Code Playgroud)

并将我的underscore.js模板添加到这些占位符.我每页有一个模型,如:

HomeView = Backbone.View.extend({
  el: '#page1'
)}
Run Code Online (Sandbox Code Playgroud)

现在,当我点击该页面上的一个元素时,我导航到另一个Backbone.js视图:

clicked: function(ev){
  $(this.el).remove(); // <-- this is the problem
  $(this.el).unbind();
  App.navigate('page/2', true);
}
Run Code Online (Sandbox Code Playgroud)

这工作正常,但...我page1从DOM中删除了元素,所以当我使用后退按钮转到上一页时,我的元素消失了,没有任何内容可以附加HTML.

我可能不明白如何将Backbone.js视图与DOM链接...我应该保持元素存在内存泄漏的风险吗?

谢谢!

javascript dom rendering backbone.js

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

在Ruby中为每个x字符添加一个字符

我想在Ruby on Rails字符串(类似于<wbr>HTML)中打破一个长篇大论.

有可能告诉Ruby xy每个z字符的字符串中添加字符吗?

ruby regex string character

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

在Backbone中使用覆盖的getter渲染视图

我正在构建一个小的Backbone.js应用程序并在其中一个模型中添加了一些自定义getter(名称getter返回一个连接的名字和姓氏):

PersonModel = Backbone.Model.extend({
  get: function (attr) {
    if (typeof this[attr] == 'function') {
      return this[attr]();
    }
    return Backbone.Model.prototype.get.call(this, attr);
  },

  name: function() {
    return firstName + " " + lastName;
  }
})
Run Code Online (Sandbox Code Playgroud)

我现在可以使用它person.get("name")来检索名称,很好.但是,当我调用toJSON模型时,这些值不包括在内(我认为这是有意义的).问题是我用它来渲染我的观点:

this.template({people: this.collection.toJSON()});
Run Code Online (Sandbox Code Playgroud)

在Backbone.js中执行此操作的最佳方法是什么?使用覆盖的getter手动创建JSON?

谢谢!

getter templates json render backbone.js

0
推荐指数
1
解决办法
901
查看次数

RubyMotion中的对象初始化

我是RubyMotion的新手,并试图了解对象初始化的工作原理.假设一个带有一个类和一个实例方法的简单类:

class Something
  def self.getSomething
    BubbleWrap::HTTP.post("http://example.com") do |response|
      p response
    end
  end

  def getSomething
    BubbleWrap::HTTP.post("http://example.com") do |response|
      p response
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

现在,为什么以下工作:

Something.getSomething
Run Code Online (Sandbox Code Playgroud)

并且下一个片段不是,有时候(运行此片段和运行时在10次中崩溃了8次).

something = Something.new
something.getSomething
Run Code Online (Sandbox Code Playgroud)

我做错了.任何正确方向的指针?

constructor initialization rubymotion

0
推荐指数
1
解决办法
528
查看次数