小编Mik*_*use的帖子

如何将ruby gem添加到"require"的include路径中

我正在创造我期望的红宝石宝石.任何人都有一个很好的链接指向将简单的库或插件转换为gem的教程?另外,特别是,Ruby使用什么来允许需要查找宝石?它似乎不仅仅是将文件放在gem路径中(或者我的配置搞砸了?).

谢谢

ruby rubygems

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

为什么Ruby开发人员似乎不使用UML?

我总是听说过在Java项目中使用UML但从未在Ruby项目中使用过.这只是一种文化差异,还是在Ruby开发中对建模的需求较少,因为它是更"敏捷"文化的一部分?

ruby uml ruby-on-rails

12
推荐指数
4
解决办法
2626
查看次数

观看上传文件夹的最佳做法?

好吧,我的手上有一个有趣的问题.这里有一些背景知识:

我正在编写一个媒体库服务实现,它将为前端Flash播放器提供URL.客户希望能够通过将带有一些元数据的文件上传到FTP文件夹来将内容推送到服务中 - 我可以控制元数据模式.观看此文件夹的服务将获取任何新文件,将其复制到"内容"文件夹中,然后将元数据和URL推送到内容服务中的内容并进入数据库.

完成内容服务不是问题.观看FTP文件夹是.

我当前的实现使用FileSystemWatcher对象和xml文件的过滤器.

每个内容项可能有多个文件,例如高,中,低质量的视频.

我计划通过流程或工具强制执行内容被组织到自己的文件夹中只是为了简洁,但这不是一个真正的问题.

xml文件看起来有点像这样:

<media>
  <meta type="video">
    <name>The Name Displayed</name>
    <heading>The title of the video</heading>
    <description>
        A lengthy description about the video..
    </description>
    <length>00:00:19</length>
</meta>
<files>
    <video file="somevideo.flv" quality="low"/>
    <video file="somevideo.flv" quality="medium"/>
    <video file="somevideo.flv" quality="high"/>
</files>
 </media>
Run Code Online (Sandbox Code Playgroud)

因此,当创建新文件时,会触发FileSystemWatcher.Created事件.我有一个单独的线程运行来处理与主服务进程共享队列的内容(不要担心它使用生产者消费者模式,详见此处:http://msdn.microsoft.com/en-us/ library/yy12yx1f.aspx).

这一切都很好,但现在我遇到边缘情况左右中心!

我已经考虑到视频上传需要更长的时间,因此处理器会尝试获取独占锁定,如果失败,它会将项目移动到队列的后面并移动到下一个项目.

  • 如果服务崩溃或那里已有文件会发生什么?所以我写了一个排队现有文件的方法.
  • 如果文件在排队现有文件时上传了怎么办?希望它会处理这个?我应该定期重新扫描目录,看看我是否遗漏了什么?

任何人都可以为这种情况推荐最佳做法吗?filesystemwatcher是个好主意还是服务只是定期扫描文件夹?

编辑:只是为了让您了解规模.我们总共谈论了1000件商品中的10件.可能上传大块.

c# multithreading

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

Rails控制台:多次运行Ruby文件

Rails提供了一个非常有用的控制台('script/console').

我写了一个ruby文件并在控制台中运行它require foo.rb.

它第一次工作正常,但第二个和下一个require foo.rb不运行我的脚本(require不重新加载它).

你有什么提示/技巧吗?

ruby console command-line ruby-on-rails

10
推荐指数
2
解决办法
9058
查看次数

删除Ruby数组中相邻的相同元素?

Ruby 1.8.6

我有一个包含数值的数组.我想减少它,使得相同值的序列减少到该值的单个实例.

所以我想要

a = [1, 1, 1, 2, 2, 3, 3, 3, 3, 2, 2, 2, 3, 3, 3]
Run Code Online (Sandbox Code Playgroud)

减少到

[1, 2, 3, 2, 3]
Run Code Online (Sandbox Code Playgroud)

如您所见,Array#uniq在这种情况下不起作用.

我有以下,有效:

(a.size - 1).downto(1) { |i| a[i] = nil if a[i - 1] == a[i] }
Run Code Online (Sandbox Code Playgroud)

任何人都可以想出一些不那么难看的东西吗?

ruby arrays

10
推荐指数
2
解决办法
2743
查看次数

Oracle中的索引是聚簇还是非聚簇?

如何确定Oracle索引是群集还是非群集?

我弄完了

select FIELD from TABLE where rownum <100
Run Code Online (Sandbox Code Playgroud)

在哪里FIELD构建索引的字段.我已经订购了元组,但结果是错误的,因为索引是非聚集的.

oracle indexing

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

你用什么正则表达式?

我听说过正则表达式,只看过一些用例,所以我不想经常使用它们.在过去,我做了几件事,花了我几个小时的时间.后来我跟别人说话,他们说"这里是用正则表达式做的."

那么你使用正则表达式的东西是什么?如果我得到更多的例子,那么也许我可以开始知道何时寻找并使用它们.

regex language-agnostic

9
推荐指数
3
解决办法
3665
查看次数

是否可以让数据库事务跨越多个请求?

我有一个跨越多个页面的表单.现在设置它的方式并不理想,因为它在提交时会保存(到数据库)每个页面.因此,如果用户未在所有页面上填写表单,则会在数据库中保存不完整的用户注册.

如果用户没有完全填写表单,我想"回滚"保存.

那么有没有办法设置一个事务,当用户填写第一个表单时开始,当用户在最后一页完成时结束?

ruby transactions ruby-on-rails

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

你更喜欢在Ruby中定义类方法吗?

John Nunemaker最近在博客中介绍了在Ruby中定义类方法各种方法,给出了以下三种选择:

# Way 1
class Foo
  def self.bar
    puts 'class method'
  end
end

# Way 2
class Foo
  class << self
    def bar
      puts 'class method'
    end
  end
end

# Way 3
class Foo; end
def Foo.bar
  puts 'class method'
end
Run Code Online (Sandbox Code Playgroud)
  • 你最喜欢的方法是什么?
  • 你喜欢上面以外的东西吗?
  • 如果您使用多种方式,在什么情况下使用它们?

ruby

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

Ruby mp3 Id3解析

目前我正在从事音乐项目,处理用户mp3上传.问题是我找不到一个能正常运行所有文件的id3库.我试过id3-rubyMp3Infolibs,但没有一个给我一致的正确结果.例如,最常见的问题:

  • 错误的流参数(比特率和采样率,有时持续时间)
  • 不支持扩展标签

我决定添加一个表单,用户可以在其中提供艺术家和标题等可选信息; 这有点帮助,但没有完全解决问题.

什么是最有用和最强大的红宝石ID3库?

ruby mp3 id3

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