class ScaffoldParser::Scaffolders::XSD::Parser::Handlers::SubmodelMethod

Attributes

submodel_class[RW]

Public Class Methods

new(source, submodel_class = nil) click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 12
def initialize(source, submodel_class = nil)
  @source = source
  @submodel_class =
    submodel_class ||
    source.type&.split(':')&.map(&:camelize)&.join('::')
end

Public Instance Methods

all(_) click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 57
def all(_)
  All.new self
end
at() click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 19
def at
  if source.name
    [source.xmlns_prefix, "#{source.name}"].compact.join(':')
  elsif source.ref
    source.ref
  end
end
choice(_) click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 53
def choice(_)
  Choice.new self
end
method_body() click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 27
def method_body
  "submodel_at(#{submodel_class}, '#{at}')"
end
name_with_prefix() click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 31
def name_with_prefix
  [source.xmlns_prefix, "#{method_name}"].compact.join(':')
end
schema(_) click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 61
def schema(_)
  STACK
end
sequence(_) click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 49
def sequence(_)
  Sequence.new self
end
to_at_method() click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 65
def to_at_method
  AtMethod.new(source)
end
to_builder() click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 39
def to_builder
  f = StringIO.new

  f.puts "if data.key? :#{method_name}"
  f.puts "  root << #{submodel_class}.new('#{at}', data[:#{method_name}]).builder"
  f.puts 'end'

  f.string.strip
end
to_h_method() click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/handlers/submodel_method.rb, line 35
def to_h_method
  "hash[:#{method_name}] = #{method_name}.to_h if has? '#{at}'"
end