Another approach to the conditional requirement, the following script does not give an error in the JSON parser, because it is called require1.rb, in scripts that do not have a name, like require1.rb for script2.rb, the stone is not required
require 'json' if "require1.rb, script2.rb"[File.basename(__FILE__)]
p File.basename(__FILE__)
text = '[{ "name" : "car", "status": "good"}, { "name" : "bus", "status": "bad"},{ "name" : "taxi", "status": "soso"},
{"noname":"", "status" : "worse"}
]'
data = JSON.parse(text)
p data.collect { |item| item['name'] }
EDIT: here is the version using the array
["require1.rb","script1.rb"].find{|script|require 'json' if script===File.basename(__FILE__)}
peter source
share