Tag: ruby

如何绘制git repo的代码历史行?

基本上我想在每次提交之后获取版本库中的代码行数。 我发现的唯一(真正蹩脚的)方法是使用git filter-branch运行wc -l * ,并在每次提交时运行git reset –hard ,然后运行wc -l 为了更清楚一点,当工具运行时,它会输出第一个提交的代码行,然后输出第二个代码行,依此类推。 这是我想要的工具输出(作为例子): me@something:~/$ gitsloc –branch master 10 48 153 450 1734 1542 我已经玩弄了ruby的'git'库,但是最近我发现在diff上使用.lines()方法,看起来应该给出添加的行(但不会:当你删除时它会返回0线例如) require 'rubygems' require 'git' total = 0 g = Git.open(working_dir = '/Users/dbr/Desktop/code_projects/tvdb_api') last = nil g.log.each do |cur| diff = g.diff(last, cur) total = total + diff.lines puts total last = cur […]

gem更新后:testing失败,“资产没有被宣布在生产中预编译”

由于我更新了几个gem,所有的testing失败,错误: ActionView :: Template :: Error:资产没有被声明为在生产中预编译。 将Rails.application.config.assets.precompile += %w( favicons/manifest.json.erb )到config/initializers/assets.rb并重新启动服务器 app / views / layouts / _faviconsheader.html.erb:14:in _app_views_layouts__faviconsheader_html_erb__1320 app / views / layouts / application.html.erb:21:in _app_views_layouts_application_html_erb__4340 该错误似乎是指包含以下行的部分_faviconsheader.html.erb : <%= content_tag :link, nil, rel: :manifest, href: image_path("favicons/manifest.json.erb") %> 这个部分被加载到application.html.erb : <%= render partial: 'layouts/faviconsheader' %> 。 任何想法是什么导致这个错误,该怎么办? 在gem更新之前所有的testing都通过了。 我使用Rails 4.2.5。 其中一个更新的gem是sprockets (更新的链轮到版本3.5.2)。 我读了一些关于链接4有问题的github ,但是我没有使用第四版。 PS即使我将Rails.application.config.assets.precompile […]

在单个节点上使用XPath将返回所有节点中的元素

我正在parsing一个如下所示的XML文档: <MyBook> <title>Favorite Poems</title> <issn>123-456</issn> <pages>45</pages> </MyBook> <MyBook> <title>Chocolate Desserts</title> <issn>654-098</issn> <pages>100</pages> </MyBook> <MyBook> <title>Jabberwocky</title> <issn>454-545</issn> <pages>19</pages> </MyBook> 我使用xpath来取出MyBook节点,像这样遍历它们: xmldoc.xpath("//MyBook").each do |node| mytitle=node.xpath("//title").text puts mytitle end 输出如下所示: Favorite PoemsChocolateDessertsJabberwocky Favorite PoemsChocolateDessertsJabberwocky Favorite PoemsChocolateDessertsJabberwocky 就好像这个节点真的是整个xmldoc一样。 但是,如果我打印出迭代器中的节点,每次都是我所期望的,只是一个MyBook节点。 我需要能够从每个节点中连续地取出子节点​​,而不是从整个文档中的所有相同types的子节点。 我究竟做错了什么?

Ruby:console.log?

我最近把一个JavaScript程序的每一行都放在了console.log语句中,发现现在它更容易理解。 有没有办法做到这一点与服务器端代码,特别是Ruby? 我认为没有办法在萤火虫中读取它,但它会在irb中显示吗? 我将在Ruby代码中放置什么console.log等价语句?

在Ruby中产生一个后台进程

我正在为一个学校项目编写一个ruby引导脚本,这个引导过程的一部分是启动几个后台进程(这些进程被写入并且正常工作)。 我想要做的事情是: `/path/to/daemon1 &` `/path/to/daemon2 &` `/path/to/daemon3 &` 但是,在第一次调用daemon1时会阻塞。 我已经看到一个Process.spawn方法的引用,但是这似乎是一个1.9+的function,而我仅限于Ruby 1.8。 我也试图从不同的线程执行这些守护进程,但我希望我的引导脚本能够退出。 那么如何启动这些后台进程,以便我的启动脚本不会阻塞并退出(但是仍然有在后台运行的守护进程)呢?

Ruby中的抽象方法

我如何强制一个子类在Ruby中实现一个方法。 Ruby中似乎没有抽象关键字,这是我在Java中采用的方法。 还有另外一种类似Ruby的方法来强制抽象吗?

不区分大小写的数组#包括?

我想知道什么是最好的方式来使String.include? 方法忽略大小写。 目前我正在做以下。 有什么build议么? 谢谢! a = "abcDE" b = "CD" result = a.downcase.include? b.downcase 编辑:如何Array.include? 。 数组的所有元素都是string。

在Ruby中计算中位数

如何计算使用Ruby的数字数组的中位数? 我是一个初学者,在我学习的过程中,我试图坚持已经教过的东西。 因此,我发现的其他问题超出了我的范围。 这是我的笔记和我的尝试: 按升序对数组进行sorting。 弄清楚它是奇数还是长度。 如果奇数,则将sorting后的数组长度+1分成两半。 这是中位数的指数。 返回这个值。 如果偶数,则findsorting数组的中间两个数字,并将它们分成1/2。 返回这个值。 find中间两个数字: 将sorting后的数组长度减半。 这是指数点。 第一个中间数字。 将sorting后的数组长度+ 2分成两半。 这是指数点。 第二个中间数字。 取这两个中间数的平均值。 def median(array) ascend = array.sort if ascend % 2 != 0 (ascend.length + 1) / 2.0 else ((ascend.length/2.0) + ((ascend.length + 2)/2.0) / 2.0) end end

Ruby:初始化()vs类体?

在Ruby中,将代码放入initialize()方法而不是直接放在类体中有什么区别? 在调用MyClass.new时,两者似乎都被执行。 显然, initialize()可以接受参数,但这是唯一的区别吗? class MyClass puts 'Hello' def initialize(params) puts 'World' end end

如何在Ruby中取消定义类?

在Ruby中定义一个方法非常简单,我可以使用undef METHOD_NAME 。 有什么类似的课程? 我在MRI 1.9.2 。 我必须取消定义ActiveRecord模型,运行两行代码,并将模型恢复到原始forms。 问题是,我有一个模型Contact ,我正在使用一个公司的API,碰巧他们有一些叫做Contact类,改变我的模型名称将是很多工作对我来说。 在这种情况下我能做些什么?