2017-07-14 17 views
0

複数のJSONファイルを読み込み、それらをルビファイルにマージしようとしています。ここで私は、現在動作するもののために持っているものです:私は、次のディレクトリ構造を持っている場合複数のJSONファイルを1つのRubyファイルにマージする

require 'json' 
file = File.read(File.dirname(File.expand_path(__FILE__)) + '/../attributes.json') 
default.merge! JSON.parse(file) 

今attributes.jsonがある場合:

attributes.json 
Prod 
    -JSON1.json 
    -JSON2.json 
Test 
    -JSON1.json 
    -JSON2.json 

私はこれらすべてのJSONファイルを読み込ん成し遂げるだろうか1つのルビファイル?私は再帰的ループのいくつかの並べ替えを想定していますが、私はそれを把握することはできません。

+0

いいえ、これはあなたのRubyコードで再帰を必要としません。必要なのは['Dir.glob'](https://ruby-doc.org/core-2.2.0/Dir.html#method-c-glob) –

答えて

0

私は私の答えを理解しました。ここに私がやってしまったものです:

Find.find('/path/to/directory/') do |f| 
    next if File.extname(f) != ".json" 
    file = File.read(f) 
    default.merge! JSON.parse(file) 
end 

私は任意のディレクトリ内のファイルを検索し、それが.json拡張子を持たないファイルIDを渡すなるFindを使用。

+2

です。' Dir.glob( '/ path 'Find.find'の代わりに'/to/directory/*。json ') 'を実行すると、' next'行を取り除くことができます。 – jerhinesmith

関連する問題