我正在创造我期望的红宝石宝石.任何人都有一个很好的链接指向将简单的库或插件转换为gem的教程?另外,特别是,Ruby使用什么来允许需要查找宝石?它似乎不仅仅是将文件放在gem路径中(或者我的配置搞砸了?).
谢谢
我总是听说过在Java项目中使用UML但从未在Ruby项目中使用过.这只是一种文化差异,还是在Ruby开发中对建模的需求较少,因为它是更"敏捷"文化的一部分?
好吧,我的手上有一个有趣的问题.这里有一些背景知识:
我正在编写一个媒体库服务实现,它将为前端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件.可能上传大块.
Rails提供了一个非常有用的控制台('script/console').
我写了一个ruby文件并在控制台中运行它require foo.rb.
它第一次工作正常,但第二个和下一个require foo.rb不运行我的脚本(require不重新加载它).
你有什么提示/技巧吗?
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)
任何人都可以想出一些不那么难看的东西吗?
如何确定Oracle索引是群集还是非群集?
我弄完了
select FIELD from TABLE where rownum <100
Run Code Online (Sandbox Code Playgroud)
在哪里FIELD构建索引的字段.我已经订购了元组,但结果是错误的,因为索引是非聚集的.
我听说过正则表达式,只看过一些用例,所以我不想经常使用它们.在过去,我做了几件事,花了我几个小时的时间.后来我跟别人说话,他们说"这里是用正则表达式做的."
那么你使用正则表达式的东西是什么?如果我得到更多的例子,那么也许我可以开始知道何时寻找并使用它们.
我有一个跨越多个页面的表单.现在设置它的方式并不理想,因为它在提交时会保存(到数据库)每个页面.因此,如果用户未在所有页面上填写表单,则会在数据库中保存不完整的用户注册.
如果用户没有完全填写表单,我想"回滚"保存.
那么有没有办法设置一个事务,当用户填写第一个表单时开始,当用户在最后一页完成时结束?
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)
目前我正在从事音乐项目,处理用户mp3上传.问题是我找不到一个能正常运行所有文件的id3库.我试过id3-ruby和Mp3Infolibs,但没有一个给我一致的正确结果.例如,最常见的问题:
我决定添加一个表单,用户可以在其中提供艺术家和标题等可选信息; 这有点帮助,但没有完全解决问题.
什么是最有用和最强大的红宝石ID3库?