class Tapioca::Commands::Annotations
def merge_files(gem_name, contents)
def merge_files(gem_name, contents) return if contents.empty? rewriter = RBI::Rewriters::Merge.new(keep: RBI::Rewriters::Merge::Keep::NONE) contents.each do |content| rbi = RBI::Parser.parse_string(content) rewriter.merge(rbi) end tree = rewriter.tree return tree.string if tree.conflicts.empty? say_error("\n\n Can't import RBI file for `#{gem_name}` as it contains conflicts:", :yellow) tree.conflicts.each do |conflict| say_error(" #{conflict}", :yellow) end nil rescue RBI::ParseError => e say_error("\n\n Can't import RBI file for `#{gem_name}` as it contains errors:", :yellow) say_error(" Error: #{e.message} (#{e.location})") nil end