0
私のルビースクリプトを実行中に以下の問題に直面しています。何か案は ?そのようなファイルを読み込むことができません - inifile(LoadError)Ruby
D:\my_ruby>ruby format.rb
C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55:in `require'
: cannot load such file -- inifile (LoadError)
from C:/Ruby24-x64/lib/ruby/2.4.0/rubygems/core_ext/kernel_require.rb:55
:in `require'
from format.rb:2:in `<main>'
Windows 7の64ビット
Rubyのバージョン - ルビー2.4.1p111(2017年3月22日リビジョン58053)のx64-MINGW32]
バンドラーバージョン1.15.1
GEM - v:2.6.11
私はbundle update
を実行しようとしましたが、それでも同じ問題が発生しました。
コード:私はルビー2.0からRubyの2.4にアップグレードするときに、同じ問題が私に起こった
require 'csv'
require 'inifile'
def transform_data(data)
groups = data.delete('groups').map do |k,v|
values = v.split(',').map(&:strip).map do |v|
v.gsub(/[\n\r\0\t]/) do |char|
case char
when "\0" then '\0'
when "\n" then '\n'
when "\r" then '\r'
when "\t" then '\t'
end
end
end
[k, values]
end.to_h
data.flat_map do |endpoint, attrs|
attrs.flat_map do |cluster, access_level|
c = cluster.gsub('@', '')
groups[c].map do |id|
{
cluster: c,
id: id,
case: endpoint,
access_level: access_level
}
end
end
end
end
records = File.read('input.txt').split(/(#.*\n|\*+\n)/).each_slice(4).flat_map do |r|
data = Hash.new { |h,k| h[k] = Hash.new }
IniFile::Parser.new(data, '=', ';#', 'global').parse r[2]
file_name = r[0][/(?<=\/)[^\/]*(?=-values\.txt)/]
transform_data(data).map { |d| { file_name: file_name }.merge(d) }
end
CSV.open('output.csv', 'wb') do |csv|
csv << records.first.keys
records.each do |hash|
csv << hash.values
end
end
ソースコードをご覧になれますか? –
@ Paul Coleman:私の質問にコードを追加しました。ありがとう。 – voltas
どのように 'inifile'をインストールしましたか? – Gerry