内置rake任务工作正常,但我的新自定义任务在Project/lib/tasks/payments.rb中没有加载:
namespace :payments do
desc "Tally payments at the end of the month"
task :compute => :environment do
BillingPeriod.compute_new_period
end
end
$ rake payments:compute
(in /Users/rob/Code/Apps/skyfarm)
rake aborted!
Don't know how to build task 'payments:compute'
Run Code Online (Sandbox Code Playgroud)
如果我加载文件application.rb它工作正常:
require 'lib/tasks/payments.rb'
Run Code Online (Sandbox Code Playgroud)
......但它打破了其他事情:
$ rails s
./lib/tasks/payments.rb:1: undefined method `namespace' for main:Object (NoMethodError)
Run Code Online (Sandbox Code Playgroud) 每当我开发时,终端都会打开一些不同的东西 - 日志尾部,Ruby控制台,某个目录中的普通shell等等.
我如何能:
Fluid用我的所有网络应用程序解决了这个问题,所以现在我想用我的终端来做.
当我们谈论这个主题时,有没有人找到一个可行的解决方案让OS X记住外部显示器上的窗口位置?如果我将其拔下并将其重新插入,我必须将所有内容拖回相同位置(尽管至少Mercury Mover可以使用键盘进行操作.)
我\xe2\x80\x99m 尝试在 JXA 中编写一批 OmniFocus 任务脚本,但遇到了一些严重的速度问题。我不认为这个问题是 OmniFocus 或 JXA 特有的;相反,我认为这是对获取对象如何工作的更普遍的误解 - 我希望它像单个 SQL 查询一样工作,加载内存中的所有对象,但它似乎按需执行每个操作。
\n\n这里\xe2\x80\x99s是一个简单的例子 - 让\xe2\x80\x99s获取所有未完成任务的名称(这些任务存储在后端的SQLite DB中):
\n\nvar tasks = Application('OmniFocus').defaultDocument.flattenedTasks.whose({completed: false})\nvar totalTasks = tasks.length\nfor (var i = 0; i < totalTasks; i++) {\n tasks[i].name()\n}\nRun Code Online (Sandbox Code Playgroud)\n\n[Finished in 46.68s]
实际上获取 900 个任务的列表大约需要 7 秒——已经很慢了——但是循环和读取基本属性又需要 40 秒,大概是因为每个任务都会访问数据库。(此外,它tasks的行为不像数组 - 它似乎在每次访问时都会重新计算。)
有什么方法可以快速做到这一点 - 一次将一批对象及其所有属性读入内存?
\n