From 41150862840af1ceb61eace883117ae72ead5941 Mon Sep 17 00:00:00 2001 From: Markus Reiter Date: Sat, 21 Nov 2020 13:29:44 +0100 Subject: [PATCH] Add Sorbet plugin for `delegate`. --- Library/Homebrew/sorbet/plugins/delegate.rb | 21 +++++++++++++++++++++ Library/Homebrew/sorbet/triggers.yml | 1 + 2 files changed, 22 insertions(+) create mode 100644 Library/Homebrew/sorbet/plugins/delegate.rb diff --git a/Library/Homebrew/sorbet/plugins/delegate.rb b/Library/Homebrew/sorbet/plugins/delegate.rb new file mode 100644 index 0000000000..2f308cc45d --- /dev/null +++ b/Library/Homebrew/sorbet/plugins/delegate.rb @@ -0,0 +1,21 @@ +# typed: strict +# frozen_string_literal: true + +source = ARGV[5] + +methods = if (single = source[/delegate\s+([^:]+):\s+/, 1]) + [single] +else + multiple = source[/delegate\s+\[(.*?)\]\s+=>\s+/m, 1] + non_comments = multiple.gsub(/\#.*$/, "") + non_comments.scan(/:([^:,\s]+)/).flatten +end + +methods.each do |method| + puts <<~RUBY + # typed: strict + + sig {params(arg0: T.untyped).returns(T.untyped)} + def #{method}(*arg0); end + RUBY +end diff --git a/Library/Homebrew/sorbet/triggers.yml b/Library/Homebrew/sorbet/triggers.yml index 48a007d979..115f740ea8 100644 --- a/Library/Homebrew/sorbet/triggers.yml +++ b/Library/Homebrew/sorbet/triggers.yml @@ -4,3 +4,4 @@ ruby_extra_args: triggers: using: sorbet/plugins/unpack_strategy_magic.rb attr_predicate: sorbet/plugins/attr_predicate.rb + delegate: sorbet/plugins/delegate.rb