2014-12-29 30 views
0

我必须在Ruby中创建一个REST客户端。Ruby Gem:将配置文件安装到用户主目录

客户端必须可以从命令行运行,就像二进制文件一样,它也必须是ruby脚本中的“required”,并提供不同的功能。

我的gemspec正是它应该做的。

但我不知道如何在用户主文件夹中安装配置文件(YAML)? 配置文件应该位于用户目录中,以便为用户提供方便的访问。

  • 这甚至有可能吗?
  • 如果有配置文件并创建它,我应该检查第一次运行吗?
  • 我可以在安装宝石时执行自己的安装程序吗?

我在Python中做了完全相同的事情,它工作正常,所以Ruby客户端应该表现得相似。

+1

安装到首次运行的主目录。这是做到这一点的方法。 – Casper

+0

但配置参数未知。用户必须根据需要修改配置。 - >它会变得很脏 – Alu

+1

如何在第一次运行时询问用户相关的配置问题?我想你也可以在安装过程中使用RubyGems'extconf.rb'机制进行全局配置,这种机制通常是为构建平台二进制文件而保留的。 – Casper

回答

0

对于这样的决定,我写了宝石persey。如果你看看使用这颗宝石的description,你可以看到它提供了你所期望的:

# Rails.root are not initialized here 
app_path = File.expand_path('../../', __FILE__) 

# ... 

# config with secret keys 
# you don't want store this config in repository and copy to secret folder on host machine 
my_secret_key_config = '/home/user/secret/keys.yml' 

# ... 

# Persey.init ENV["environment"] do # set current environment 
Persey.init Rails.env do # set current environment 

    source :yaml, my_secret_key_config, :secret # no comments. It's secret! 

    env :production do 
    # ... 
    end 

    env :development, :parent => :production do 
    # ... 
    end 
end