Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我应该把非Ruby文件放在哪里?_Ruby_Rubygems_Gem_Directory Structure_Upstart - Fatal编程技术网

我应该把非Ruby文件放在哪里?

我应该把非Ruby文件放在哪里?,ruby,rubygems,gem,directory-structure,upstart,Ruby,Rubygems,Gem,Directory Structure,Upstart,我想在我的Ruby gem中放一个Upstart配置文件。这是我目前的最佳猜测 Gem::Specification.new do |s| # ... s.files = %w( lib/rt_watchdog.rb lib/upstart/rt_watchdog.conf bin/rt_watchdog ) end 一般来说,配置文件和其他类型的脚本在gem中放在哪里 Update:我将示例中的路径从Upstart/rt_watchdog.conf更改

我想在我的Ruby gem中放一个Upstart配置文件。这是我目前的最佳猜测

Gem::Specification.new do |s|

  # ...

  s.files = %w(
    lib/rt_watchdog.rb
    lib/upstart/rt_watchdog.conf
    bin/rt_watchdog
  )
end
一般来说,配置文件和其他类型的脚本在gem中放在哪里


Update:我将示例中的路径从
Upstart/rt_watchdog.conf
更改为
lib/Upstart/rt_watchdog.conf
,因为我现在决定使用它,但是我还是感觉不太好。

Rails在应用程序的根目录中使用了一个配置目录,Rails的约定在整个Ruby社区中都得到了很好的体现。

我不知道是否有一个标准的位置来存放upstart文件,但它肯定不在以大写字母开头的目录中!如果你要走这条路,就把它叫做小写的upstart。但更可能的是,只需调用它
config
,或者将它放在
lib
下的相应子目录中。谢谢。那很有帮助。现在我确实使用了
lib/upstart/rt_watchdog.conf
,但我仍然感觉不太好。更重要的是,我找不到一种让gem安装为我部署文件的方法,比如安装后脚本。我的研究表明,安装后脚本不是最好的方法。相反,我想包括一个类似于Passenger Phusion的
Passenger安装nginx模块的bin
mygem\u config
。是的,你最好添加一个可执行文件来安装你的upstart文件,安装gem不应该触碰用户系统上的任何东西(当然除了gem文件夹)。我同意Rails的惯例。非常感谢。你能告诉我如何在配置下组织吗?像
config/upstart
config/cron.daily
?这就是我现在正在做的。