我正在寻找以编程方式将我的GPS日志转换为图像的方法,并希望在Ruby中执行此操作...如果这是可接受的工具.我没有任何GIS背景,但作为程序员,我认为这是一个有趣的问题.
这是我到目前为止所提出的.首先,您需要某种图形库.我去了gnuplot,因为我找到了一个Ruby绑定,但是这些天R似乎很热.我创建了一个小脚本来转换GPX文件并将数据提供给gnuplot,结果如下:alt text http://dl.dropbox.com/u/45672/gpslog.png
这看起来很好,但gnuplot似乎真的是一个创建图形的工具,而不是空间数据.这是做到这一点的方式还是有更好的解决方案?
这是另一个例子,你知道如何构建这样的东西吗?
我正在使用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.
我试图围绕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块中结束.这是正确的方法,如果是这样,我错过了什么?
我有一些行发票.一行只能属于一张发票.这就是我的架构的样子:
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回调?
谢谢!
我一直在阅读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链接...我应该保持元素存在内存泄漏的风险吗?
谢谢!
我想在Ruby on Rails字符串(类似于<wbr>HTML)中打破一个长篇大论.
有可能告诉Ruby x在y每个z字符的字符串中添加字符吗?
我正在构建一个小的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?
谢谢!
我是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)
我做错了.任何正确方向的指针?
ruby ×3
backbone.js ×2
activerecord ×1
attributes ×1
character ×1
checkbox ×1
constructor ×1
dom ×1
event-bus ×1
getter ×1
gps ×1
gpx ×1
javascript ×1
json ×1
plot ×1
regex ×1
render ×1
rendering ×1
rspec ×1
rubymotion ×1
setter ×1
spatial ×1
string ×1
templates ×1