Class: Rubydex::Signature
- Inherits:
-
Object
- Object
- Rubydex::Signature
- Defined in:
- lib/rubydex/signature.rb,
ext/rubydex/signature.c
Defined Under Namespace
Classes: BlockParameter, ForwardParameter, KeywordParameter, OptionalKeywordParameter, OptionalPositionalParameter, Parameter, PositionalParameter, PostParameter, RestKeywordParameter, RestPositionalParameter
Instance Attribute Summary collapse
-
#parameters ⇒ Object
readonly
: Array.
Instance Method Summary collapse
-
#block_parameter ⇒ Object
: () -> BlockParameter?.
- #deconstruct ⇒ Object
-
#deconstruct_keys(keys) ⇒ Object
: (Array?) -> Hash[Symbol, untyped].
-
#forward_parameter ⇒ Object
: () -> ForwardParameter?.
-
#initialize(parameters) ⇒ Signature
constructor
: (Array) -> void.
-
#keyword_parameters ⇒ Object
: () -> Array.
-
#optional_keyword_parameters ⇒ Object
: () -> Array.
-
#optional_positional_parameters ⇒ Object
: () -> Array.
-
#positional_parameters ⇒ Object
: () -> Array.
-
#post_parameters ⇒ Object
: () -> Array.
-
#rest_keyword_parameter ⇒ Object
: () -> RestKeywordParameter?.
-
#rest_positional_parameter ⇒ Object
: () -> RestPositionalParameter?.
Constructor Details
Instance Attribute Details
#parameters ⇒ Object (readonly)
: Array
30 31 32 |
# File 'lib/rubydex/signature.rb', line 30 def parameters @parameters end |
Instance Method Details
#block_parameter ⇒ Object
: () -> BlockParameter?
128 |
# File 'lib/rubydex/signature.rb', line 128 def block_parameter = deconstruct[8] |
#deconstruct ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/rubydex/signature.rb', line 38 def deconstruct positionals = [] #: Array[PositionalParameter] optional_positionals = [] #: Array[OptionalPositionalParameter] rest_positional = nil #: RestPositionalParameter? posts = [] #: Array[PostParameter] keywords = [] #: Array[KeywordParameter] optional_keywords = [] #: Array[OptionalKeywordParameter] rest_keyword = nil #: RestKeywordParameter? forward = nil #: ForwardParameter? block = nil #: BlockParameter? parameters.each do |param| case param when PositionalParameter then positionals << param when OptionalPositionalParameter then optional_positionals << param when RestPositionalParameter then rest_positional = param when PostParameter then posts << param when KeywordParameter then keywords << param when OptionalKeywordParameter then optional_keywords << param when RestKeywordParameter then rest_keyword = param when ForwardParameter then forward = param when BlockParameter then block = param end end [positionals, optional_positionals, rest_positional, posts, keywords, optional_keywords, rest_keyword, forward, block] end |
#deconstruct_keys(keys) ⇒ Object
: (Array?) -> Hash[Symbol, untyped]
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/rubydex/signature.rb', line 80 def deconstruct_keys(keys) keys = DECONSTRUCT_KEYS if keys.nil? positionals, optional_positionals, rest_positional, posts, keywords, optional_keywords, rest_keyword, forward, block = deconstruct result = {} #: Hash[Symbol, untyped] keys.each do |key| case key when :positional_parameters then result[key] = positionals when :optional_positional_parameters then result[key] = optional_positionals when :rest_positional_parameter then result[key] = rest_positional when :post_parameters then result[key] = posts when :keyword_parameters then result[key] = keywords when :optional_keyword_parameters then result[key] = optional_keywords when :rest_keyword_parameter then result[key] = rest_keyword when :forward_parameter then result[key] = forward when :block_parameter then result[key] = block end end result end |
#forward_parameter ⇒ Object
: () -> ForwardParameter?
125 |
# File 'lib/rubydex/signature.rb', line 125 def forward_parameter = deconstruct[7] |
#keyword_parameters ⇒ Object
: () -> Array
116 |
# File 'lib/rubydex/signature.rb', line 116 def keyword_parameters = deconstruct[4] |
#optional_keyword_parameters ⇒ Object
: () -> Array
119 |
# File 'lib/rubydex/signature.rb', line 119 def optional_keyword_parameters = deconstruct[5] |
#optional_positional_parameters ⇒ Object
: () -> Array
107 |
# File 'lib/rubydex/signature.rb', line 107 def optional_positional_parameters = deconstruct[1] |
#positional_parameters ⇒ Object
: () -> Array
104 |
# File 'lib/rubydex/signature.rb', line 104 def positional_parameters = deconstruct[0] |
#post_parameters ⇒ Object
: () -> Array
113 |
# File 'lib/rubydex/signature.rb', line 113 def post_parameters = deconstruct[3] |
#rest_keyword_parameter ⇒ Object
: () -> RestKeywordParameter?
122 |
# File 'lib/rubydex/signature.rb', line 122 def rest_keyword_parameter = deconstruct[6] |
#rest_positional_parameter ⇒ Object
: () -> RestPositionalParameter?
110 |
# File 'lib/rubydex/signature.rb', line 110 def rest_positional_parameter = deconstruct[2] |