小编zam*_*ezi的帖子

为什么在Rails 3中没有发现我在lib/tasks中的自定义rake任务?

内置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)

rake ruby-on-rails ruby-on-rails-3

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

记住OS X中的终端状态(如壳体的流体......)

每当我开发时,终端都会打开一些不同的东西 - 日志尾部,Ruby控制台,某个目录中的普通shell等等.

我如何能:

  • 一次启动所有这些东西,希望在屏幕上的正确位置?
  • 让它们分明,我可以用Quicksilver/Alt-Tab切换到它们吗?

Fluid用我的所有网络应用程序解决了这个问题,所以现在我想用我的终端来做.


当我们谈论这个主题时,有没有人找到一个可行的解决方案让OS X记住外部显示器上的窗口位置?如果我将其拔下并将其重新插入,我必须将所有内容拖回相同位置(尽管至少Mercury Mover可以使用键盘进行操作.)

macos shell terminal command-line

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

读取大量对象花费的时间太长

我\xe2\x80\x99m 尝试在 JXA 中编写一批 OmniFocus 任务脚本,但遇到了一些严重的速度问题。我不认为这个问题是 OmniFocus 或 JXA 特有的;相反,我认为这是对获取对象如何工作的更普遍的误解 - 我希望它像单个 SQL 查询一样工作,加载内存中的所有对象,但它似乎按需执行每个操作。

\n\n

这里\xe2\x80\x99s是一个简单的例子 - 让\xe2\x80\x99s获取所有未完成任务的名称(这些任务存储在后端的SQLite DB中):

\n\n
var tasks = Application('OmniFocus').defaultDocument.flattenedTasks.whose({completed: false})\nvar totalTasks = tasks.length\nfor (var i = 0; i < totalTasks; i++) {\n    tasks[i].name()\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

[Finished in 46.68s]

\n\n

实际上获取 900 个任务的列表大约需要 7 秒——已经很慢了——但是循环和读取基本属性又需要 40 秒,大概是因为每个任务都会访问数据库。(此外,它tasks的行为不像数组 - 它似乎在每次访问时都会重新计算。)

\n\n

有什么方法可以快速做到这一点 - 一次将一批对象及其所有属性读入内存?

\n

applescript javascript-automation

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