class WsdlMapper::Generation::DefaultFormatter

Default implementation for the ruby formatter interface. This class should be considered as a reference for custom implementations. All public methods are mandatory.

Public Class Methods

new(io) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 6
def initialize(io)
  @io = io
  @i = 0
end

Public Instance Methods

after_constants()
Alias for: blank_line
after_requires()
Alias for: blank_line
assignment(var_name, value) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 190
def assignment(var_name, value)
  statement "#{var_name} = #{value}"
end
assignments(*assigns) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 194
def assignments(*assigns)
  assigns.each do |(var_name, value)|
    assignment var_name, value
  end
  blank_line
end
attr_accessors(*attrs) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 93
def attr_accessors(*attrs)
  return if attrs.empty?

  attrs = attrs.map { |a| ":#{a}" }
  attrs.each do |attr|
    statement "attr_accessor #{attr}"
  end
  blank_line
end
attr_readers(*attrs) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 30
def attr_readers(*attrs)
  return if attrs.empty?

  attrs = attrs.map { |a| ":#{a}" }
  attrs.each do |attr|
    statement "attr_reader #{attr}"
  end
  blank_line
end
begin_class(name) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 124
def begin_class(name)
  statement "class #{name}"
  inc_indent
end
begin_def(name, *args) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 146
def begin_def(name, *args)
  blank_line
  statement method_definition(name, args)
  inc_indent
end
begin_module(name) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 103
def begin_module(name)
  statement "module #{name}"
  inc_indent
end
begin_modules(names) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 108
def begin_modules(names)
  names.each do |name|
    begin_module name
  end
end
begin_sub_class(name, super_name) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 129
def begin_sub_class(name, super_name)
  statement "class #{name} < #{super_name}"
  inc_indent
end
blank_comment() click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 24
def blank_comment
  statement '#'
  @blank_line = true
  self
end
blank_line() click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 17
def blank_line
  # Prevent double blank lines
  append "\n" unless @blank_line
  @blank_line = true
  self
end
Also aliased as: after_requires, after_constants
block(statement, block_args) { || ... } click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 64
def block(statement, block_args)
  indent
  buf = statement.dup
  buf << ' do'
  args = block_args.join ', '
  buf << " |#{args}|" if block_args.any?
  @io << buf
  next_statement
  inc_indent
  yield
  self.end
end
block_assignment(var_name, statement, block_args, &block) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 77
def block_assignment(var_name, statement, block_args, &block)
  block "#{var_name} = #{statement}", block_args, &block
end
call(name, *args) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 56
def call(name, *args)
  if args.empty?
    statement name
  else
    statement "#{name}(#{args * ', '})"
  end
end
end() click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 201
def end
  dec_indent
  if @blank_line
    @io.seek -1, IO::SEEK_CUR
  end
  statement 'end'
end
end_modules(names) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 114
def end_modules(names)
  names.each { self.end }
end
in_class(name) { || ... } click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 134
def in_class(name)
  begin_class name
  yield
  self.end
end
in_def(name, *args) { || ... } click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 152
def in_def(name, *args)
  begin_def name, *args
  yield
  self.end
end
in_modules(names) { || ... } click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 118
def in_modules(names)
  begin_modules names
  yield
  end_modules names
end
in_sub_class(name, super_name) { || ... } click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 140
def in_sub_class(name, super_name)
  begin_sub_class name, super_name
  yield
  self.end
end
literal_array(name, values) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 158
def literal_array(name, values)
  if values.empty?
    statement "#{name} = []"
    return
  end

  statement "#{name} = ["
  inc_indent
  values[0..-2].each do |value|
    statement "#{value},"
  end
  statement values.last
  dec_indent
  statement ']'
end
literal_hash(name, key_values) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 174
def literal_hash(name, key_values)
  if key_values.empty?
    statement "#{name} = {}"
    return
  end

  statement "#{name} = {"
  inc_indent
  key_values[0..-2].each do |value|
    statement "#{value},"
  end
  statement key_values.last
  dec_indent
  statement '}'
end
next_statement() click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 11
def next_statement
  append "\n"
  @blank_line = false
  self
end
require(path) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 81
def require(path)
  statement "require #{path.inspect}"
end
requires(*paths) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 85
def requires(*paths)
  return unless paths.any?
  paths.each do |path|
    require path
  end
  after_requires
end
statement(statement) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 43
def statement(statement)
  indent
  @io << statement
  next_statement
end
statements(*statements) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 49
def statements(*statements)
  statements.each do |s|
    statement s
  end
  blank_line
end

Private Instance Methods

append(str) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 216
def append(str)
  @io << str
  self
end
dec_indent(n = 1) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 231
def dec_indent(n = 1)
  @i -= n
  self
end
inc_indent(n = 1) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 226
def inc_indent(n = 1)
  @i += n
  self
end
indent() click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 221
def indent
  @io << '  ' * @i
  self
end
method_definition(name, args) click to toggle source
# File lib/wsdl_mapper/generation/default_formatter.rb, line 210
def method_definition(name, args)
  s = "def #{name}"
  s << "(#{args * ', '})" unless args.empty?
  s
end