28

いくつかの単純なプロパティをファイルに保存し、Rubyからそれらにアクセスする必要があります。

私はJavaでそのようなものの標準である.propertiesファイル形式(java.util.Propertiesクラスを使用)が絶対に大好きです...それはシンプルで使いやすく、読みやすいです。

それで、多くの労力をかけずにそのようなファイルからいくつかのキーと値のペアをロードできるRubyクラスはどこかにありますか?

XMLを使いたくないので、REXMLを提案しないでください(私の目的は「山かっこ税」を保証するものではありません)。

私は自分のソリューションをローリングすることを検討しました...おそらく5〜10行のコードトップになりますが、それでも既存のライブラリを使用したいと思います(本質的にファイルから構築されたハッシュである場合)... 1行に下げてください。


更新:これは実際にはレールではなくストレートのRubyアプリですが、YAMLはうまく機能すると思います(私の心の奥底にありましたが、忘れていました...見たことはありますが、まだ使用していません)、みんなに感謝します!!

4

6 に答える 6

26

これはRailsアプリケーション用ですか、それともRubyアプリケーション用ですか?

実際にはどちらでも、プロパティをyamlファイルに貼り付けてからそれを貼り付けることができる場合がありますYAML::Load(File.open("file"))


マイクストーンからのメモ:実際には次のことを行う方が良いでしょう:

File.open("file") { |yf| YAML::load(yf) }

また

YAML.load_file("file")

rubyのドキュメントが示唆しているように、そうでない場合、ファイルはガベージコレクションまで閉じられませんが、それでも良い提案です:-)

于 2008-09-19T00:44:43.617 に答える
10

もう 1 つのオプションは、単純に別の Ruby ファイルを構成ファイルとして使用することです。

例、「options」というファイルを作成します

{
    :blah   => 'blee',
    :foo    => 'bar',
    :items  => ['item1', 'item2'],
    :stuff  => true
}

次に、Ruby コードで次のようにします。

ops = eval(File.open('options') {|f| f.read })
puts ops[:foo]
于 2008-09-19T04:46:51.803 に答える
6

YAML は、上記のように完全に実行します。たとえば、Ruby スクリプトの 1 つに、次のような YAML ファイルがあります。

migration:
  customer: Example Customer
  test:     false
sources:
- name:     Use the Source
  engine:   Foo
- name:     Sourcey
  engine:   Bar

次に、Ruby 内で次のように使用します。

config = YAML.load_file(File.join(File.dirname(__FILE__), ARGV[0]))
puts config['migration']['customer']

config['sources'].each do |source|
  puts source['name']
end
于 2008-09-19T02:40:50.623 に答える
5

inifile - http://rubydoc.info/gems/inifile/2.0.2/framesは、基本的な .properties ファイルと [SECTIONS] を含む .ini ファイルをサポートします。

[SECTION]
key=value

YAML は、データが複雑な構造を持っている場合に適していますが、スペース、タブ、行末などで扱いにくい場合があります。ファイルがプログラマーによって維持されていない場合、問題が発生する可能性があります。対照的.propertiesに、.iniファイルはより寛容であり、YAML を介して利用できる深い構造が必要ない場合に適している可能性があります。

于 2013-03-25T03:41:15.890 に答える
3

Devender Gollapally は、まさにそれを行うクラスを作成しました。

...ただし、YAML ファイルを使用することをお勧めします。

于 2008-09-19T00:53:56.573 に答える
2

構成ファイルの.propertiesスタイルの代わりに、YAMLの使用を検討することもできます。YAMLはRubyonRailsでデータベース構成に使用され、他の言語(Python、Java、Perlなど)で人気が高まっています。

Ruby YAMLモジュールの概要は次のとおりです:http ://www.ruby-doc.org/core/classes/YAML.html

そして、YAMLのホームページはここにあります:http://yaml.org

于 2008-09-19T00:49:35.417 に答える