Sha256: ae5474cb89fc1730d89e9b04edff16bef2f79e6f23d976e7c92c7ac9fd2f675c
Contents?: true
Size: 1.98 KB
Versions: 7
Compression:
Stored size: 1.98 KB
Contents
# frozen_string_literal: true module Reek module AST module SexpExtensions # Base module for utility methods for argument nodes. module ArgNodeBase def name children.first end def marked_unused? plain_name.start_with?('_') end def plain_name name.to_s end def block? false end def optional_argument? false end def anonymous_splat? false end def components [self] end end # Utility methods for :arg nodes. module ArgNode include ArgNodeBase end # Utility methods for :kwarg nodes. module KwargNode include ArgNodeBase end # Utility methods for :optarg nodes. module OptargNode include ArgNodeBase def optional_argument? true end end # Utility methods for :kwoptarg nodes. module KwoptargNode include ArgNodeBase def optional_argument? true end end # Utility methods for :blockarg nodes. module BlockargNode include ArgNodeBase def block? true end end # Utility methods for :restarg nodes. module RestargNode include ArgNodeBase def anonymous_splat? !name end end # Utility methods for :kwrestarg nodes. module KwrestargNode include ArgNodeBase def anonymous_splat? !name end end # Utility methods for :shadowarg nodes. module ShadowargNode include ArgNodeBase end # Utility methods for :forward_args nodes. # rubocop:disable Naming/ClassAndModuleCamelCase module Forward_ArgsNode include ArgNodeBase def anonymous_splat? true end end # rubocop:enable Naming/ClassAndModuleCamelCase end end end
Version data entries
7 entries across 7 versions & 1 rubygems