class Peeky::Renderer::ClassDebugRender
Class Debug Render
Attributes
class_info[R]
Public Class Methods
new(class_info)
click to toggle source
# File lib/peeky/renderer/class_debug_render.rb, line 9 def initialize(class_info) @key_width = 30 @class_info = class_info end
Public Instance Methods
render()
click to toggle source
Render the class interface rubocop:disable Metrics/AbcSize
# File lib/peeky/renderer/class_debug_render.rb, line 16 def render output = [] output.push class_details attributes = render_accessors + render_readers + render_writers if attributes.length.positive? output.push("-- Attributes #{'-' * 86}") output.push(*attributes) output.push('') end methods = render_methods if methods.length.positive? output.push("-- Public Methods #{'-' * 82}") output.push(*methods) output.push('') end output.pop if output.last == '' output.join("\n") end
Private Instance Methods
class_details()
click to toggle source
# File lib/peeky/renderer/class_debug_render.rb, line 51 def class_details [ '-' * 100, kv('class name', @class_info.class_name), kv('module name', @class_info.module_name), kv('class full name', @class_info.class_full_name), '' ] end
kv(key, value)
click to toggle source
# File lib/peeky/renderer/class_debug_render.rb, line 47 def kv(key, value) "#{key.to_s.ljust(@key_width)}: #{value}" end
lj(value, size = 24)
click to toggle source
rubocop:enable Metrics/AbcSize
# File lib/peeky/renderer/class_debug_render.rb, line 43 def lj(value, size = 24) value.to_s.ljust(size) end
render_accessors()
click to toggle source
# File lib/peeky/renderer/class_debug_render.rb, line 61 def render_accessors @class_info.accessors.map { |attr| kv('attr_accessor', attr.name) } end
render_methods()
click to toggle source
# File lib/peeky/renderer/class_debug_render.rb, line 73 def render_methods @class_info.methods.flat_map do |method| [ "#{method.name}::", *render_paramaters(method.parameters), '' ] end end
render_paramaters(parameters)
click to toggle source
# File lib/peeky/renderer/class_debug_render.rb, line 83 def render_paramaters(parameters) result = [ "#{lj('name')} #{lj('param format')} #{lj('type')} #{lj('default')}", '-' * 100 ] result + parameters.map do |param| "#{lj(param.name)} #{lj(param.signature_format)} #{lj(param.type)} #{lj(param.default_value)}" end end
render_readers()
click to toggle source
# File lib/peeky/renderer/class_debug_render.rb, line 65 def render_readers @class_info.readers.map { |attr| kv('attr_reader', attr.name) } end
render_writers()
click to toggle source
# File lib/peeky/renderer/class_debug_render.rb, line 69 def render_writers @class_info.writers.map { |attr| kv('attr_writer', attr.name) } end