小编Pet*_*ter的帖子

针对ruby 1.9的Vim语法高亮显示

Ruby 1.9有一些新的语法元素,例如{key: value}hash文字语法.有没有人书面或看到更新的syntax/ruby.vim高亮显示的文件,将突出key:就像它突出:key{:key => value}

ruby vim vim-syntax-highlighting

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

有没有更好的,pythonic方式来做到这一点?

这是我的第一个python程序 -

要求:在每行中读取由{adId UserId}组成的文件.对于每个ad​​Id,打印唯一userIds的数量.

这是我的代码,从阅读python文档放在一起.你能不能给我反馈一下如何以更多的python-ish方式写这个?

代码:

import csv

adDict = {}
reader = csv.reader(open("some.csv"), delimiter=' ')
for row in reader:
    adId = row[0]
    userId = row[1]
    if ( adId in adDict ):
        adDict[adId].add(userId)
    else:
        adDict[adId] = set(userId)

for key, value in adDict.items():
    print (key, ',' , len(value))
Run Code Online (Sandbox Code Playgroud)

谢谢.

python dictionary set

10
推荐指数
3
解决办法
643
查看次数

Shell:在第一个空白行之前获取所有行的简单方法

在遇到第一个空行之前,输出文件行的最佳shell命令是什么?例如:

output these
lines

but do not output anything after the above blank line
(or the blank line itself)
Run Code Online (Sandbox Code Playgroud)

AWK?别的什么?

shell awk

9
推荐指数
4
解决办法
9440
查看次数

在vim缩写中使用反斜杠

我希望能够编写\bit并将其扩展到vim中的某些内容.但是,如何在缩写的左侧编码反斜杠?

我尝试了所有这些:

:iab \bit replacement_text
:iab <Bslash>bit replacement_text
:iab <bs>bit replacement_text
Run Code Online (Sandbox Code Playgroud)

但得到E474: Invalid argument了所有这些.

map_backslash求助主题建议<Bslash>,但这似乎并没有工作.

vim

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

ruby中的线程安全外部进程,以及检查exitstatus

我想在Ruby中运行一个线程安全的脚本来调用外部程序,然后检查该外部程序的退出状态.最好的方法是什么?到目前为止,我一直在检查$?,但我认为我正在与该计划的其他部分达成竞争条件.

这是一些示例代码:

Thread.new do
  `external_program`
  if $?.exitstatus == 0
    # it worked.
  else
    # it didn't work.
  end
end
Run Code Online (Sandbox Code Playgroud)

理想情况下,我会做类似的事情

Process.new(`external_program`).exitstatus
Run Code Online (Sandbox Code Playgroud)

所以它与这个过程exitstatus密不可分,而不是最后一个完成的过程.有没有办法做到这一点?

ruby thread-safety

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

Rails部分具有单表继承

我想在rails中使用partials以及单表继承.我目前有这个工作:

render partial: @vehicle

# which renders the relevant view, depending on object type, eg:
#   views/trucks/_truck.haml
#   views/car/_car.haml
Run Code Online (Sandbox Code Playgroud)

我想保留这些默认视图,并为每个对象创建一个额外的紧凑视图,也许就像这样

# example code only, I want to write something like:
render partial: 'compact', locals: {vehicle: @vehicle}

# and then have this render (for example) with
#   views/trucks/_compact.haml
#   views/car/_compact.haml
Run Code Online (Sandbox Code Playgroud)

我可以愉快地重命名或更改文件名或位置,但支持两种视图(紧凑和默认)的最简单方法是什么?

稍后会有更多的类,所以寻找非常干净,优雅的代码.

(ruby 1.9.2上的rails 3.0.5+)

ruby-on-rails

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

RegEx表示字符串不包含两个不同的字符串

好吧,那些知道正则表达的大师!

如何使用reg ex搜索字符串以确保它不包含两个不同的字符串.

示例:假设我想确保"FileNTile"不包含文件或平铺

谢谢

cnorr

regex

7
推荐指数
2
解决办法
4488
查看次数

HAML表达式附近的符号

在HAML中,我经常想在标签之后立即使用带标点符号的标签.例如,我可能想要以粗体显示但有一个结束括号.格式如下所示:(带粗体文本的示例句子.)

请注意,"粗体文本"以粗体显示,但句号和右括号"."'不是.

明显的HAML是这样的:

(Example sentence with
%span.important bold text
\.)
Run Code Online (Sandbox Code Playgroud)

但这会在"粗体文本"和"."之间产生额外的空间.这是一种做法:

(Example sentence with
%span.important bold text
%span>\.)
Run Code Online (Sandbox Code Playgroud)

在一个跨度中包含'.)' >的地方使空间消失.但是,这需要不必要的跨度.

有没有办法获得所需的输出,没有额外的跨度?

haml

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

Rails范围与布尔值

当你在带有活动记录的Rails中使用布尔值时,你问(比方说)visible?,它会检查列是否true存在.如果是falsenil,visible?将返回false.

你如何确定一个布尔值来询问该?方法是否会返回false?我有这个:

scope :visible, where(hide: [nil, false])
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更清洁的方式.有没有办法写这个范围而不明确说两者nilfalse?如果我们相反,我们可以写

scope :invisible, where(hide: true)
Run Code Online (Sandbox Code Playgroud)

这似乎更清洁.可见范围的最佳代码是什么?

ruby-on-rails rails-activerecord

7
推荐指数
2
解决办法
9693
查看次数

在activerecord关系上定义方法

我想在activerecord关系上定义一个自定义方法,例如:

Transaction.all.summed_values
Run Code Online (Sandbox Code Playgroud)

一个简单的例子是summed_values应该sum(:value)在哪里评估关系.

我应该在哪里定义方法summed_values?看起来应该是ActiveRecord::Relation.如果应该直接在那里,我应该把它放在哪个文件中?

另外,如果这个新方法只对Transactions 有意义,有没有办法告诉rails只为ActiveRecord::Relations组成的Transactions 定义这个方法?

ruby-on-rails

6
推荐指数
2
解决办法
6275
查看次数