class ScaffoldParser::Scaffolders::XSD::Parser::Stack
Public Class Methods
new()
click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/stack.rb, line 8 def initialize @stack = [] end
Public Instance Methods
clear()
click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/stack.rb, line 39 def clear @stack.clear end
push(value)
click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/stack.rb, line 12 def push(value) similar_classes = @stack.select { |klass| klass.name.start_with? value.name } if similar_classes.any? same_structure_class = similar_classes.find do |kl| kl.namespace == value.namespace && kl.methods == value.methods && kl.inherit_from == value.inherit_from end if same_structure_class same_structure_class else name_base = value.name while @stack.find { |klass| klass.name == value.name } counter ||= 1 value.name = "#{name_base}#{counter += 1}" end @stack.push value value end else @stack.push value value end end
to_a()
click to toggle source
# File lib/scaffold_parser/scaffolders/xsd/parser/stack.rb, line 43 def to_a @stack end