小编jro*_*ind的帖子

检索文件中特定行的提交日志?

有没有办法让git为你提交一个提交日志,只提交触及文件中特定的提交?

喜欢git blame,但git blame会向您显示触及特定行的最后提交.

我真的想得到一个类似的日志,而不是文件中任何地方的提交列表,而只是提交到特定行的提交.

git

465
推荐指数
9
解决办法
18万
查看次数

流体或固定网格系统,采用响应式设计,基于Twitter Bootstrap

我对twitter bootstrap网格中的各种选项以及它们如何组合起来感到困惑.

首先,你可以有一个普通的固定container,或者container-fluid.

然后,任何一个都可以包括普通row行或流体行row-fluid.也就是说,你可以拥有一个带有流体排的固定容器,或一个带有固定排的容器流体......

然后,您可以在其中包含"响应式"媒体查询.

我对这些事情如何相互作用感到困惑.但让我们从一个明显的例子开始.

示例页面本身,有一个固定网格流体网格的例子

但是,在我的浏览器中,在该示例页面本身上 - 两个网格的行为相同.也许是因为示例页面使用可选的响应式媒体查询?在两个网格示例中,如果我开始逐渐缩小我的浏览器窗口,则网格元素不会逐渐变窄 - 一旦达到某个(响应性)边界宽度,它们会捕捉到更小的尺寸,并再次在更大的边界宽度处.但是普通的"固定"示例和"流动"示例在这里表现完全相同 - 那么差异究竟是什么呢?

fixed-width fluid-layout responsive-design twitter-bootstrap

397
推荐指数
4
解决办法
17万
查看次数

在Rails生产中,config.assets.compile = true,为什么不呢?

通过安装在默认的Rails应用程序rails new具有config.assets.compile = false生产.

通常的做法是rake assets:precompile在部署应用程序之前运行,以确保编译所有资产管道资产.

那么如果我config.assets.compile = true投入生产会发生什么?

precompile不再需要跑步了.我认为会发生的是第一次请求资产时,它将被编译.这将是第一次出现性能损失(这意味着您通常需要在生产中使用js运行时才能执行此操作).但除了这些缺点之外,在资产被懒散编译之后,我认为对该资产的所有后续访问都不会受到性能影响,应用程序的性能将与初始首次命中的懒惰编译之后的预编译资产完全相同.这是真的?

有什么我想念的吗?没有投入config.assets.compile = true生产的其他原因?如果我在生产中有一个JS运行时,并且愿意为首次访问资产而采取降级性能的权衡,作为不必运行的回报precompile,这是否有意义?

ruby-on-rails production-environment asset-pipeline

176
推荐指数
3
解决办法
6万
查看次数

Rails 3.1插件gem,虚拟测试应用程序,rspec

所以Rails 3.1附带了一个鲜为人知的"rails g plugin new"生成器,它为你提供了一个适合rails gem插件的骨架.[http://guides.rubyonrails.org/plugins.html#or-generate-a-gemified-plugin]

这样做的一个有用的事情是为Test :: Unit的测试设置方便.它为您提供了一个基本的虚拟Rails应用程序,您的测试可以在上下文中运行,以测试仅在Rails应用程序副本中运行的"引擎"行为.(它把它放在./test/dummy中).但是你的测试仍然在my_gem/test中,测试不会存在于虚拟app中.并且my_gem/test/test_helper.rb在那里编写,测试将在虚拟应用程序的上下文中运行,在../dummy/config/environment上启动.

我之所以这样描述是因为我认为很多人都不知道这个新的发电机,它可以很好地设置.

但我的问题是,有没有人想出如何用rspec做这个呢?我曾尝试按照相同的原则DIY为rails specing中的rspec设置这样的东西,但我遇到了各种令人困惑的障碍,我希望也许别人已经弄明白了(或者有兴趣搞定它对我们其他人来说,嘿).

gem rspec ruby-on-rails ruby-on-rails-plugins rspec-rails

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

rails,activerecord,获取当前连接规范

我正在编写代码,将一些数据从一个数据库迁移到另一个数据库,覆盖目标中的一些数据.它使用ActiveRecord,因为它已经与使用AR的Rails应用程序相关联.

由于某些数据将被覆盖,我想提供一个确认提示,告诉用户用于目标数据库连接的实际连接字典/规范.你知道,适配器,主机,用户名,密码,数据库,你在database.yml中列出的东西.

我可以将模型用于我正在编写的内容并要求SomeModel.connection ....但似乎根本没有API来从实时连接对象中获取实际的连接规范.

真?我错过了什么吗?还有其他任何想法,甚至是无证的api?

activerecord ruby-on-rails

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

minitest,test :: unit和rails

我读到某个地方'minitest'是"ruby 1.9.2+的新测试::单位".

但是Ruby 1.9.3似乎包括两个 测试::单位 MINITEST,是真的吗?

在默认轨测试,在列出的Rails测试指南 ....之类的东西ActiveSupport::TestCase,ActionController::TestCase被这些使用Test::UnitMinitest

在rails指南中,它显示了如下定义的测试示例:

test "should show post" do
  get :show, :id => @post.id
  assert_response :success
end
Run Code Online (Sandbox Code Playgroud)

test string与定义类似名称的方法相反,该语法test_something任何一个 Test::Unit或Minitest 的文档中没有提到.来自哪里?Rails是否添加它,或者它实际上是...的一部分......无论是测试lib rails使用的是什么?

PS:请不要告诉我"只使用rspec".我知道rspec.我试图在rails的上下文中探索stdlib替代方案.

ruby ruby-on-rails testunit minitest

28
推荐指数
2
解决办法
5625
查看次数

ruby 1.9,force_encoding,但检查

我有一个我从某种输入中读过的字符串.

据我所知,它是UTF8.好的:

string.force_encoding("utf8")
Run Code Online (Sandbox Code Playgroud)

但是如果这个字符串中包含的字节实际上不是合法的UTF8,我现在想知道并采取行动.

通常,如果遇到这样的字节,force_encoding("utf8")会提高吗?我相信它不会.

如果我正在做#encode,我可以从方便的选项中选择如何处理源编码(或目标编码)中无效的字符.

但是我没有做#encode,我正在做一个#force_encoding.它没有这样的选择.

它会有意义吗?

string.force_encoding("utf8").encode("utf8")
Run Code Online (Sandbox Code Playgroud)

马上得到一个例外?通常 utf8 utf8的编码没有任何意义.但是,如果存在无效字节,这可能是让它立即提升的方法吗?或者使用:replace选项etc来执行与无效字节不同的操作?

但是,不,似乎也无法做到这一点.

谁知道?

1.9.3-p0 :032 > a = "bad: \xc3\x28 okay".force_encoding("utf-8")
=> "bad: \xC3( okay"
1.9.3-p0 :033 > a.valid_encoding?
=> false
Run Code Online (Sandbox Code Playgroud)

好的,但我如何找到并消除那些坏字节?奇怪的是,这不会引起:

1.9.3-p0 :035 > a.encode("utf-8")
 => "bad: \xC3( okay"
Run Code Online (Sandbox Code Playgroud)

如果我转换为不同的编码,它会!

1.9.3-p0 :039 > a.encode("ISO-8859-1")
Encoding::InvalidByteSequenceError: "\xC3" followed by "(" on UTF-8
Run Code Online (Sandbox Code Playgroud)

或者,如果我告诉它,它会用"?"代替它.=>

1.9.3-p0 :040 > a.encode("ISO-8859-1", :invalid => :replace)
=> "bad: ?( okay"
Run Code Online (Sandbox Code Playgroud)

因此,当转换为不同的编码时,ruby有智能知道utf-8中的坏字节,并用其他东西替换em.但我不想转换为不同的编码,我想保留utf8 - 但如果那里有一个无效字节,我可能想要提高,或者我可能想用替换字符替换无效字节.

是不是有办法让红宝石这样做?

更新 …

ruby character-encoding

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

以编程方式确定是否安装了某个gem,然后安装它

这似乎不是一件难事.

我想要一个ruby脚本来确定系统上当前是否安装了某个gem(任何版本和/或某个版本规范)(无论在哪里gem list看),如果没有,请安装它.

是的,我知道在某些情况下,捆绑包很棒.相信我有一个案例,出于奇怪的原因,我不想使用bundler.我真的想以编程方式询问本地gem repo.

一种可编程安装的方法就是gem install确保安全.

但我无法找到一种可靠的方法来以编程方式询问是否安装了特定的gem,而不是shell,而不是rubygem api,而不是任何东西.

我错过了吗?

ruby gem

20
推荐指数
2
解决办法
7787
查看次数

Capistrano,Rails 3.2,标准配方?

我已经开发了一段时间的Rails,但不知何故,直到现在才避免使用capistrano.

试图弄清楚如何开始,我已经对最佳的capistrano配方感到困惑,因为资产管道部署的相当"标准"的rails 3.x.也许是因为环顾谷歌,人们可以从历史的各个部分找到"答案",不同的历史时期将不同的东西纳入上限.

我有一个应用程序,我保留在git,rails 3.2,带有资产管道,只部署到一个有乘客的主机.

想一想,我基本上需要限制:

  • 从git部署?
  • 在git中为部署创建一个标签(和/或使用部署分支?无论什么是最标准的上限,如果有这样的事情)
  • 捆绑安装 - 部署
  • rake db:migrate
  • rake资产:预编译
  • touch tmp/restart.txt

哦,废话,一个可能奇怪的事情:

  • 我想我将在部署服务器上使用系统范围的rbenv安装.不知道那会带来什么.

什么是最标准,最简单,最简单,最易于维护的方法来制作所有这些东西?有什么我想念的吗?如果我指定的某些内容不是标准的,我很乐意使用标准的最佳实践(可能是一两个例外,我真的想为每个部署使用git标记,即使这不是标准的最佳实践,虽然我认为它会是,但是看着文档如何运作却感到困惑)

这里有一个简单的答案吗?

编辑:是的,我看过Cap wiki.可能是因为我很慢,但我在那里找到了没有问题的答案.甚至没有"入门"文件.没有关于默认开箱即用配方实际上做什么的文档.等等

更新:在我搞清楚后,我写了自己的指南.https://gist.github.com/2161449

capistrano ruby-on-rails

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

capistrano,:db角色,它的用途是什么?

据我所知,capistrano :db角色仅用于运行迁移.

(因此,在大多数情况下,它可能实际上不应该是运行数据库的服务器.为什么你会在那里有ruby/rails堆栈(或允许ssh登录)?它只是你想要实际执行rails迁移的服务器).

并且只有标识为db role with的服务器才:primary => true用于运行迁移.

因此,任何其他标识为"db"角色但没有:primary => true......的服务器根本不使用任何内容?那么为什么创建默认的deploy.rb会capify .鼓励你列出它们呢?你甚至会在这里列出什么?

我缺少什么?

capistrano ruby-on-rails

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