class Peeky::Renderer::ClassInterfaceRender

Render: Class Interface

Example output: class SampleClassClassInterfaceRender

attr_accessor :a

attr_reader :b

attr_writer :c

def alpha_sort1;                                                                end
def alpha_sort2;                                                                end
def d;                                                                          end
def e(aaa);                                                                     end
def f(aaa, bbb = nil);                                                          end
def g(aaa, bbb = nil, ccc = nil);                                               end
def h(*aaa);                                                                    end
def i(aaa, bbb, *ccc);                                                          end
def j(**aaa);                                                                   end
def k(aaa, *bbb, **ccc);                                                        end
def l(aaa, *bbb, **ccc, &ddd);                                                  end
def m(aaa:);                                                                    end
def n(aaa:, bbb: nil);                                                          end
def p?;                                                                         end
def q!;                                                                         end
def z(aaa, bbb = nil, *ccc, ddd:, eee: nil, **fff, &ggg);                       end

end

Attributes

class_info[R]

ClassInfo with information about the class instance to be rendered.

Public Class Methods

new(class_info) click to toggle source
# File lib/peeky/renderer/class_interface_render.rb, line 36
def initialize(class_info)
  @class_info = class_info
end

Public Instance Methods

render() click to toggle source

Render the class interface

# File lib/peeky/renderer/class_interface_render.rb, line 41
def render
  @indent = ''
  output = []
  output.push render_start
  @indent = '  '
  output += render_accessors
  output += render_readers
  output += render_writers
  output += render_methods
  output.pop if output.last == ''

  @indent = ''
  output.push render_end

  output.join("\n")
end

Private Instance Methods

render_accessors() click to toggle source
# File lib/peeky/renderer/class_interface_render.rb, line 64
def render_accessors
  result = @class_info.accessors.map { |attr| "#{@indent}attr_accessor :#{attr.name}" }
  result.push '' unless result.length.zero?
  result
end
render_end() click to toggle source
# File lib/peeky/renderer/class_interface_render.rb, line 91
def render_end
  "#{@indent}end"
end
render_methods() click to toggle source
# File lib/peeky/renderer/class_interface_render.rb, line 82
def render_methods
  result = @class_info.methods.map do |method_signature|
    render_signature = Peeky::Renderer::MethodSignatureRender.new(method_signature)
    "#{@indent}#{render_signature.render}"
  end
  result.push '' unless result.length.zero?
  result
end
render_readers() click to toggle source
# File lib/peeky/renderer/class_interface_render.rb, line 70
def render_readers
  result = @class_info.readers.map { |attr| "#{@indent}attr_reader :#{attr.name}" }
  result.push '' unless result.length.zero?
  result
end
render_start() click to toggle source
# File lib/peeky/renderer/class_interface_render.rb, line 60
def render_start
  "#{@indent}class #{@class_info.class_name}"
end
render_writers() click to toggle source
# File lib/peeky/renderer/class_interface_render.rb, line 76
def render_writers
  result = @class_info.writers.map { |attr| "#{@indent}attr_writer :#{attr.name}" }
  result.push '' unless result.length.zero?
  result
end