peeky 0.0.40 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08eb3e66afafe6b6af1896abb030457b6bd417ddaed97311f174b30458805146'
4
- data.tar.gz: 587f9afee745e58ee2783aa80d23c482a096ad8f96b8d50cbe9a1683b5f23188
3
+ metadata.gz: 920d6f10ed0e11acad5844cc60e290ba9e7ee85e27e801cf766e6934e6e3ea06
4
+ data.tar.gz: 4637e61e368dba0a5c4a9c3e8b0e8ff058b11c939ea848040eeff4a71a15e627
5
5
  SHA512:
6
- metadata.gz: 2cf0854c592886fc801068f7bf3bb310bcbb8db1b343be375e1b4ad82ab574fba783697bdce642358747784a247ba4b1ee49885a6737662866568f1e550e71f8
7
- data.tar.gz: 6a77ec688a91339da22a3f7c7c58e2ea7b9f8f7c99ec19e1998673484c4e197a2291d207c34fc42ab64d288055cc3b50e827a32659a39c1ee48aa7b758cb0e9c
6
+ metadata.gz: 56c35b423fb6b786a187548d9b9fe9a1d76f47da18dd6fb53eea1143593cbcfb6ff19de8f2ac5237193b6df7250726ef73d9e3c287655ded452331f99bca05f0
7
+ data.tar.gz: cd58b3be796b1e185a697ac3f6dca2836154750bf856b4455e4dbd6c7224d6b629e3bd3184dd67ebd0195b0293affbb3feadfc62f9032fb07948f0b1bfafa2c0
data/.rubocop.yml CHANGED
@@ -5,7 +5,7 @@ AllCops:
5
5
  NewCops: enable
6
6
  Exclude:
7
7
  - "_/**/*"
8
- - "lib/peeky/example/yard_sample.rb"
8
+ - "spec/sample/**/*"
9
9
 
10
10
  # My Preferences - Start
11
11
  Metrics/ClassLength:
data/README.md CHANGED
@@ -4,6 +4,10 @@
4
4
 
5
5
  When using the source code for this gem, start by running `bin/setup` to install locally or `bundle install`
6
6
 
7
+ ## TODO
8
+
9
+ @klueless-io - look at [show-source](https://stackoverflow.com/questions/13012109/get-class-location-from-class-object)
10
+
7
11
  ## Installation
8
12
 
9
13
  Add this line to your application's Gemfile:
@@ -26,16 +26,20 @@ module Peeky
26
26
  else
27
27
  result.push kv('# of instance methods', '')
28
28
  end
29
- if defined?(@_signatures)
29
+ if defined?(@signatures)
30
30
  result.push kv('# of accessors', accessors.length)
31
31
  result.push kv('# of readers', readers.length)
32
32
  result.push kv('# of writers', writers.length)
33
- result.push kv('# of methods', methods.length)
33
+ result.push kv('# of methods', all_methods.length)
34
+ result.push kv('# of methods - public', public_methods.length)
35
+ result.push kv('# of methods - private', private_methods.length)
34
36
  else
35
37
  result.push kv('# of accessors', '')
36
38
  result.push kv('# of readers', '')
37
39
  result.push kv('# of writers', '')
38
40
  result.push kv('# of methods', '')
41
+ result.push kv('# of methods - public', '')
42
+ result.push kv('# of methods - private', '')
39
43
  end
40
44
  result.join("\n")
41
45
  end
@@ -50,7 +54,7 @@ module Peeky
50
54
  # pre-load this information early.
51
55
  def load
52
56
  ruby_instance_methods
53
- ruby_instance_method_names
57
+ # ruby_instance_method_names
54
58
  signatures
55
59
  end
56
60
 
@@ -61,19 +65,19 @@ module Peeky
61
65
 
62
66
  # Class name
63
67
  def class_name
64
- @_class_name ||= class_full_name.to_s.gsub(/^.*::/, '')
68
+ @class_name ||= class_full_name.to_s.gsub(/^.*::/, '')
65
69
  # instance.class.name.split('::').last
66
70
  end
67
71
 
68
72
  # Module name
69
73
  def module_name
70
- @_module_name ||= class_full_name.to_s.gsub(/(.*)::.*/, '\1')
74
+ @module_name ||= class_full_name.to_s.gsub(/(.*)::.*/, '\1')
71
75
  end
72
76
 
73
77
  # Get a list of :attr_accessor on the class
74
78
  # @return [Array<AttrInfo>] list of AttrInfo where type is :attr_accessor
75
79
  def accessors
76
- @_accessors ||= attribute_infos.select { |attribute_info| attribute_info.type == :attr_accessor }
80
+ @accessors ||= attribute_infos.select { |attribute_info| attribute_info.type == :attr_accessor }
77
81
  end
78
82
 
79
83
  # Get a list of :attr_accessors ordered the way they are in the source code
@@ -86,7 +90,7 @@ module Peeky
86
90
 
87
91
  # Attribute infos
88
92
  def attribute_infos
89
- @_attribute_infos ||= begin
93
+ @attribute_infos ||= begin
90
94
  grouped_method_infos = signatures.select { |signature| signature.readable? || signature.writable? }.group_by(&:clean_name)
91
95
 
92
96
  grouped_method_infos.keys.map { |key| AttrInfo.create(*grouped_method_infos[key]) }
@@ -102,8 +106,20 @@ module Peeky
102
106
 
103
107
  # Get a list methods
104
108
  # @return [Array<MethodInfo>] list of MethodInfo where type is :method
105
- def methods
106
- @_methods ||= signatures.select { |signature| signature.implementation_type == :method }
109
+ def all_methods
110
+ @all_methods ||= signatures.select { |signature| signature.implementation_type == :method }
111
+ end
112
+
113
+ # Get a list of private methods
114
+ # @return [Array<MethodInfo>] list of MethodInfo where type is :method
115
+ def private_methods
116
+ @private_methods ||= signatures.select { |signature| signature.implementation_type == :method && signature.access_control == :private }
117
+ end
118
+
119
+ # Get a list of public methods
120
+ # @return [Array<MethodInfo>] list of MethodInfo where type is :method
121
+ def public_methods
122
+ @public_methods ||= signatures.select { |signature| signature.implementation_type == :method && signature.access_control == :public }
107
123
  end
108
124
 
109
125
  # Get a list methods ordered the way they are in the source code
@@ -111,7 +127,7 @@ module Peeky
111
127
  def methods_source_order
112
128
  # TODO: This feature is required
113
129
  # May be best to have a sort object that can be created for each type of ordering that is needed
114
- methods
130
+ all_methods
115
131
  end
116
132
 
117
133
  # Reader by name
@@ -124,7 +140,7 @@ module Peeky
124
140
  # Get a list of :attr_reader on the class
125
141
  # @return [Array<AttrInfo>] list of AttrInfo where type is :attr_accessor
126
142
  def readers
127
- @_readers ||= attribute_infos.select { |attribute_info| attribute_info.type == :attr_reader }
143
+ @readers ||= attribute_infos.select { |attribute_info| attribute_info.type == :attr_reader }
128
144
  end
129
145
 
130
146
  # Get a list of :attr_reader ordered the way they are in the source code
@@ -138,7 +154,7 @@ module Peeky
138
154
  # Get a list of :attr_writer on the class
139
155
  # @return [Array<AttrInfo>] list of AttrInfo where type is :attr_writer
140
156
  def writers
141
- @_writers ||= attribute_infos.select { |attribute_info| attribute_info.type == :attr_writer }
157
+ @writers ||= attribute_infos.select { |attribute_info| attribute_info.type == :attr_writer }
142
158
  end
143
159
 
144
160
  # Get a list of :attr_writer ordered the way they are in the source code
@@ -161,7 +177,13 @@ module Peeky
161
177
  # such as static, private vs public
162
178
  # deep, deep_to_level, this_instance.
163
179
  def signatures
164
- @_signatures ||= ruby_instance_methods.map { |im| MethodInfo.new(im, @instance) }
180
+ return @signatures if defined? @signatures
181
+
182
+ @signatures = begin
183
+ instance_methods = ruby_instance_methods.map { |im| MethodInfo.new(im, @instance) }
184
+ private_methods = ruby_private_methods.map { |im| MethodInfo.new(im, @instance, access_control: :private) }
185
+ instance_methods + private_methods
186
+ end
165
187
  end
166
188
 
167
189
  # Signatures by clean name
@@ -188,11 +210,21 @@ module Peeky
188
210
  end
189
211
 
190
212
  def ruby_instance_method_names
191
- @_ruby_instance_method_names ||= instance.class.instance_methods(false).sort
213
+ @ruby_instance_method_names ||= instance.class.instance_methods(false).sort
214
+ end
215
+
216
+ def ruby_private_method_names
217
+ @ruby_private_method_names ||= instance.private_methods(false).sort
218
+ end
219
+
220
+ def ruby_private_methods
221
+ @ruby_private_methods ||= ruby_private_method_names.map { |method_name| instance.method(method_name) }
222
+ rescue StandardError => e
223
+ puts e
192
224
  end
193
225
 
194
226
  def ruby_instance_methods
195
- @_ruby_instance_methods ||= ruby_instance_method_names.map { |method_name| instance.method(method_name) }
227
+ @ruby_instance_methods ||= ruby_instance_method_names.map { |method_name| instance.method(method_name) }
196
228
  rescue StandardError => e
197
229
  puts e
198
230
  end
@@ -14,6 +14,8 @@ module Peeky
14
14
  # MethodInfo delegates to the underlying ruby method object
15
15
  attr_reader :focal_method
16
16
 
17
+ attr_reader :access_control
18
+
17
19
  def_delegators :focal_method, :name, :receiver, :arity, :super_method
18
20
 
19
21
  ## Stage 2 is the method likely to be an attribute reader or writer
@@ -23,9 +25,10 @@ module Peeky
23
25
  # method in ruby, was it `def method` or `attr_reader` / `attr_writer`
24
26
  attr_reader :implementation_type
25
27
 
26
- def initialize(method, target_instance)
28
+ def initialize(method, target_instance, access_control: :public)
27
29
  @focal_method = method
28
30
  @target_instance = target_instance
31
+ @access_control = access_control
29
32
  @parameters = ParameterInfo.from_method(method)
30
33
  # stage 1
31
34
  # @implementation_type = :method
@@ -32,7 +32,12 @@ module Peeky
32
32
  cloned = instance.clone
33
33
 
34
34
  cloned.instance_eval(code)
35
- current_value = cloned.send(method_name)
35
+ begin
36
+ current_value = cloned.send(method_name)
37
+ rescue StandardError #=> exception
38
+ current_value = nil
39
+ end
40
+
36
41
  current_value == new_value
37
42
  end
38
43
 
@@ -24,7 +24,7 @@ module Peeky
24
24
  output.push('')
25
25
  end
26
26
 
27
- methods = render_methods
27
+ methods = render_methods(@class_info.public_methods)
28
28
 
29
29
  if methods.length.positive?
30
30
  output.push("-- Public Methods #{'-' * 82}")
@@ -32,6 +32,14 @@ module Peeky
32
32
  output.push('')
33
33
  end
34
34
 
35
+ methods = render_methods(@class_info.private_methods)
36
+
37
+ if methods.length.positive?
38
+ output.push("-- Private Methods #{'-' * 82}")
39
+ output.push(*methods)
40
+ output.push('')
41
+ end
42
+
35
43
  output.pop if output.last == ''
36
44
 
37
45
  output.join("\n")
@@ -70,10 +78,10 @@ module Peeky
70
78
  @class_info.writers.map { |attr| kv('attr_writer', attr.name) }
71
79
  end
72
80
 
73
- def render_methods
74
- @class_info.methods.flat_map do |method|
81
+ def render_methods(method_list)
82
+ method_list.flat_map do |method|
75
83
  [
76
- "#{method.name}::",
84
+ "[ #{method.name} ]",
77
85
  *render_paramaters(method.parameters),
78
86
  ''
79
87
  ]
@@ -38,15 +38,20 @@ module Peeky
38
38
  end
39
39
 
40
40
  # Render the class interface
41
+ # rubocop:disable Metrics/AbcSize
41
42
  def render
42
43
  @indent = ''
43
- output = []
44
+ output = []
44
45
  output.push render_start
45
46
  @indent = ' '
46
47
  output += render_accessors
47
48
  output += render_readers
48
49
  output += render_writers
49
- output += render_methods
50
+ output += render_methods(@class_info.public_methods)
51
+ unless @class_info.private_methods.length.zero?
52
+ output += ["#{@indent}private", '']
53
+ output += render_methods(@class_info.private_methods)
54
+ end
50
55
  output.pop if output.last == ''
51
56
 
52
57
  @indent = ''
@@ -54,6 +59,7 @@ module Peeky
54
59
 
55
60
  output.join("\n")
56
61
  end
62
+ # rubocop:enable Metrics/AbcSize
57
63
 
58
64
  private
59
65
 
@@ -79,8 +85,8 @@ module Peeky
79
85
  result
80
86
  end
81
87
 
82
- def render_methods
83
- result = @class_info.methods.map do |method_signature|
88
+ def render_methods(method_list)
89
+ result = method_list.map do |method_signature|
84
90
  render_signature = Peeky::Renderer::MethodSignatureRender.new(method_signature)
85
91
  "#{@indent}#{render_signature.render}"
86
92
  end
@@ -88,51 +88,61 @@ module Peeky
88
88
  result
89
89
  end
90
90
 
91
- # rubocop:disable Metrics/AbcSize, Metrics/BlockLength, Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity, Metrics/MethodLength
91
+ # rubocop:disable Metics/AbcSize
92
92
  def render_methods
93
93
  result = []
94
- class_info.methods.map.with_index do |method_signature, index|
95
- result.push '' if index.positive?
96
- result.push "#{@indent}# #{method_signature.name.to_s.humanize}"
97
-
98
- method_signature.parameters.each_with_index do |parameter, param_index|
99
- result.push "#{@indent}#" if param_index.zero?
100
-
101
- case parameter.type
102
- when :splat
103
- result.push "#{@indent}# @param #{parameter.name} [Array<#{default_splat_param_type}>] *#{parameter.name} - list of #{parameter.name.to_s.humanize.downcase}"
104
- when :double_splat
105
- result.push "#{@indent}# @param #{parameter.name} [<key: value>...] **#{parameter.name} - list of key/values"
106
- when :block
107
- result.push "#{@indent}# @param #{parameter.name} [Block] &#{parameter.name}"
108
- when :key_required
109
- result.push "#{@indent}# @param #{parameter.name} [#{default_param_type}] #{parameter.name}: <value for #{parameter.name.to_s.humanize.downcase}> (required)"
110
- when :key_optional
111
- result.push "#{@indent}# @param #{parameter.name} [#{parameter.default_value_type}] #{parameter.name}: is optional, defaults to #{parameter.wrap_default_value('nil')}"
112
- when :param_required
113
- result.push "#{@indent}# @param #{parameter.name} [#{default_param_type}] #{parameter.name.to_s.humanize.downcase} (required)"
114
- when :param_optional
115
- result.push "#{@indent}# @param #{parameter.name} [#{parameter.default_value_type}] #{parameter.name} is optional, defaults to #{parameter.wrap_default_value('nil')}"
116
- # result.push "#{@indent}# @param #{parameter.name} [#{default_param_type}] #{parameter.name.to_s.humanize.downcase} (optional)"
117
- else
118
- result.push "#{@indent}# @param #{parameter.name} [#{default_param_type}] #{parameter.name.to_s.humanize.downcase}"
119
- end
120
- end
121
-
122
- if method_signature.name.to_s.end_with?('?')
123
- result.push ''
124
- result.push "#{@indent}# @return [Boolean] true when #{method_signature.name.to_s.humanize.downcase}"
125
- end
126
-
127
- render_signature = Peeky::Renderer::MethodSignatureRender.new(method_signature)
128
- render_signature.indent = @indent
129
- render_signature.style = :default
130
- result.push render_signature.render
94
+ class_info.public_methods.map.with_index do |method_signature, index|
95
+ render_method(result, method_signature, index)
96
+ end
97
+ class_info.private_methods.map.with_index do |method_signature, index|
98
+ result.push "\n#{indent}private\n" if index.zero?
99
+ render_method(result, method_signature, index)
131
100
  end
132
101
  result.push '' unless result.length.zero?
133
102
  result
134
103
  end
135
- # rubocop:enable Metrics/AbcSize, Metrics/BlockLength, Metrics/PerceivedComplexity, Metrics/CyclomaticComplexity, Metrics/MethodLength
104
+ # rubocop:enable Metics/AbcSize
105
+
106
+ # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
107
+ def render_method(result, method_signature, index)
108
+ result.push '' if index.positive?
109
+ result.push "#{@indent}# #{method_signature.name.to_s.humanize}"
110
+
111
+ method_signature.parameters.each_with_index do |parameter, param_index|
112
+ result.push "#{@indent}#" if param_index.zero?
113
+
114
+ case parameter.type
115
+ when :splat
116
+ result.push "#{@indent}# @param #{parameter.name} [Array<#{default_splat_param_type}>] *#{parameter.name} - list of #{parameter.name.to_s.humanize.downcase}"
117
+ when :double_splat
118
+ result.push "#{@indent}# @param #{parameter.name} [<key: value>...] **#{parameter.name} - list of key/values"
119
+ when :block
120
+ result.push "#{@indent}# @param #{parameter.name} [Block] &#{parameter.name}"
121
+ when :key_required
122
+ result.push "#{@indent}# @param #{parameter.name} [#{default_param_type}] #{parameter.name}: <value for #{parameter.name.to_s.humanize.downcase}> (required)"
123
+ when :key_optional
124
+ result.push "#{@indent}# @param #{parameter.name} [#{parameter.default_value_type}] #{parameter.name}: is optional, defaults to #{parameter.wrap_default_value('nil')}"
125
+ when :param_required
126
+ result.push "#{@indent}# @param #{parameter.name} [#{default_param_type}] #{parameter.name.to_s.humanize.downcase} (required)"
127
+ when :param_optional
128
+ result.push "#{@indent}# @param #{parameter.name} [#{parameter.default_value_type}] #{parameter.name} is optional, defaults to #{parameter.wrap_default_value('nil')}"
129
+ # result.push "#{@indent}# @param #{parameter.name} [#{default_param_type}] #{parameter.name.to_s.humanize.downcase} (optional)"
130
+ else
131
+ result.push "#{@indent}# @param #{parameter.name} [#{default_param_type}] #{parameter.name.to_s.humanize.downcase}"
132
+ end
133
+ end
134
+
135
+ if method_signature.name.to_s.end_with?('?')
136
+ result.push ''
137
+ result.push "#{@indent}# @return [Boolean] true when #{method_signature.name.to_s.humanize.downcase}"
138
+ end
139
+
140
+ render_signature = Peeky::Renderer::MethodSignatureRender.new(method_signature)
141
+ render_signature.indent = @indent
142
+ render_signature.style = :default
143
+ result.push render_signature.render
144
+ end
145
+ # rubocop:enable Metrics/AbcSize, Metrics/CyclomaticComplexity, Metrics/MethodLength
136
146
 
137
147
  def render_end
138
148
  "#{@indent}end"
data/lib/peeky/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Peeky
4
- VERSION = '0.0.40'
4
+ VERSION = '0.0.42'
5
5
  end
data/lib/peeky.rb CHANGED
@@ -24,4 +24,9 @@ module Peeky
24
24
  # Your code goes here...
25
25
  end
26
26
 
27
- puts "Peeky::Version: #{Peeky::VERSION}" if ENV['KLUE_DEBUG']&.to_s&.downcase == 'true'
27
+ if ENV['KLUE_DEBUG']&.to_s&.downcase == 'true'
28
+ namespace = 'Peeky::Version'
29
+ file_path = $LOADED_FEATURES.find { |f| f.include?('peeky/version') }
30
+ version = Peeky::VERSION.ljust(9)
31
+ puts "#{namespace.ljust(35)} : #{version.ljust(9)} : #{file_path}"
32
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peeky
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.40
4
+ version: 0.0.42
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Cruwys
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-04-01 00:00:00.000000000 Z
11
+ date: 2021-10-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -59,7 +59,6 @@ files:
59
59
  - lib/peeky/api.rb
60
60
  - lib/peeky/attr_info.rb
61
61
  - lib/peeky/class_info.rb
62
- - lib/peeky/example/yard_sample.rb
63
62
  - lib/peeky/method_info.rb
64
63
  - lib/peeky/parameter_info.rb
65
64
  - lib/peeky/predicates/attr_reader_predicate.rb
@@ -1,146 +0,0 @@
1
- module Peeky
2
- module Example
3
- # Yard sample
4
- class YardSample
5
- # A read write1
6
- attr_accessor :a_read_write1
7
-
8
- # A read write2
9
- attr_accessor :a_read_write2
10
-
11
- # A read write3
12
- attr_accessor :a_read_write3
13
-
14
- # B reader1
15
- attr_reader :b_reader1
16
-
17
- # B reader2
18
- attr_reader :b_reader2
19
-
20
- # E looks like an attr reader
21
- attr_reader :e_looks_like_an_attr_reader
22
-
23
- # C writer1
24
- attr_writer :c_writer1
25
-
26
- # C writer2
27
- attr_writer :c_writer2
28
-
29
- # Alpha sort1
30
- def alpha_sort1
31
- end
32
-
33
- # Alpha sort2
34
- def alpha_sort2
35
- end
36
-
37
- # D do something method
38
- def d_do_something_method
39
- end
40
-
41
- # E method with required param
42
- #
43
- # @param first_name [String] first name (required)
44
- def e_method_with_required_param(first_name)
45
- end
46
-
47
- # F method with required param and optional param
48
- #
49
- # @param first_name [String] first name (required)
50
- # @param last_name [String] last_name is optional, defaults to ''
51
- def f_method_with_required_param_and_optional_param(first_name, last_name = '')
52
- end
53
-
54
- # G method with required param and two optional params
55
- #
56
- # @param first_name [String] first name (required)
57
- # @param last_name [String] last_name is optional, defaults to ''
58
- # @param age [Integer] age is optional, defaults to 21
59
- def g_method_with_required_param_and_two_optional_params(first_name, last_name = '', age = 21)
60
- end
61
-
62
- # H list of optional parameters
63
- #
64
- # @param command_args [Array<Object>] *command_args - list of command args
65
- def h_list_of_optional_parameters(*command_args)
66
- end
67
-
68
- # I method with two required params and list of optional params
69
- #
70
- # @param first_name [String] first name (required)
71
- # @param last_name [String] last name (required)
72
- # @param alias_names [Array<Object>] *alias_names - list of alias names
73
- def i_method_with_two_required_params_and_list_of_optional_params(first_name, last_name, *alias_names)
74
- end
75
-
76
- # J method with list of named arguments
77
- #
78
- # @param options [<key: value>...] **options - list of key/values
79
- def j_method_with_list_of_named_arguments(**options)
80
- end
81
-
82
- # Jin
83
- #
84
- # @param aaa [String] aaa (required)
85
- def jin(aaa)
86
- end
87
-
88
- # K method with block
89
- #
90
- # @param code_block [Block] &code_block
91
- def k_method_with_block(&code_block)
92
- end
93
-
94
- # L method with key value param required
95
- #
96
- # @param name [String] name: <value for name> (required)
97
- def l_method_with_key_value_param_required(name:)
98
- end
99
-
100
- # N method with key value param required and optional key value
101
- #
102
- # @param last_name [String] last_name: <value for last name> (required)
103
- # @param salutation [String] salutation: is optional, defaults to 'Mr'
104
- def n_method_with_key_value_param_required_and_optional_key_value(last_name:, salutation: 'Mr')
105
- end
106
-
107
- # P available?
108
-
109
- # @return [Boolean] true when p available?
110
- def p_available?
111
- end
112
-
113
- # Q danger will robinson!
114
- def q_danger_will_robinson!
115
- end
116
-
117
- # Z complex
118
- #
119
- # @param aaa [String] aaa (required)
120
- # @param bbb [Integer] bbb is optional, defaults to 1
121
- # @param ccc [Array<Object>] *ccc - list of ccc
122
- # @param ddd [String] ddd: <value for ddd> (required)
123
- # @param eee [Integer] eee: is optional, defaults to 1
124
- # @param fff [<key: value>...] **fff - list of key/values
125
- # @param ggg [Block] &ggg
126
- def z_complex(aaa, bbb = 1, *ccc, ddd:, eee: 1, **fff, &ggg)
127
- end
128
-
129
- # Z optional styles
130
- #
131
- # @param aaa [String] aaa (required)
132
- # @param bbb [Integer] bbb is optional, defaults to 123
133
- # @param ccc [String] ccc is optional, defaults to 'abc'
134
- # @param ddd [TrueClass] ddd is optional, defaults to true
135
- # @param eee [FalseClass] eee is optional, defaults to false
136
- # @param fff [Object] fff is optional, defaults to nil
137
- # @param ggg [Integer] ggg: is optional, defaults to 123
138
- # @param hhh [String] hhh: is optional, defaults to 'xyz'
139
- # @param iii [TrueClass] iii: is optional, defaults to true
140
- # @param jjj [FalseClass] jjj: is optional, defaults to false
141
- # @param kkk [Object] kkk: is optional, defaults to nil
142
- def z_optional_styles(aaa, bbb = 123, ccc = 'abc', ddd = true, eee = false, fff = nil, ggg: 123, hhh: 'xyz', iii: true, jjj: false, kkk: )
143
- end
144
- end
145
- end
146
- end