class Lap::Module
Public Class Methods
new(node, indent_level = 0)
click to toggle source
# File lib/lap/module.rb, line 7 def initialize(node, indent_level = 0) @node = node @indent_level = indent_level @has_contents = !@node.members.empty? end
Public Instance Methods
render()
click to toggle source
# File lib/lap/module.rb, line 13 def render self_indent = " " * (Lap::Config[:indent] * @indent_level) comment = get_comment(@node) "#{comment}#{self_indent}module #{@node.name.name}#{contents}#{self_indent if @has_contents}end\n" end
Private Instance Methods
contents()
click to toggle source
# File lib/lap/module.rb, line 21 def contents @contents ||= begin if @has_contents members = @node.members.map do |member| case member when RBS::AST::Members::MethodDefinition Lap::Method.new(member, @indent_level + 1).render when RBS::AST::Declarations::Class Lap::Class.new(member, @indent_level + 1).render when RBS::AST::Declarations::Module self.class.new(member, @indent_level + 1).render when RBS::AST::Declarations::Constant Lap::Constant.new(member, @indent_level + 1).render when RBS::AST::Declarations::Alias # no-op: not present in ruby else warn "Unsupported member for modules: #{member}" end end "\n#{members.join("\n")}" else "; " end end end