class WsdlMapper::DomGeneration::DefaultEnumGenerator
Public Class Methods
new(generator, base: '::String', values_const_name: 'Values')
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_enum_generator.rb, line 9 def initialize(generator, base: '::String', values_const_name: 'Values') @generator = generator @context = generator.context @base = base @values_const_name = values_const_name end
Public Instance Methods
generate(ttg, result)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_enum_generator.rb, line 16 def generate(ttg, result) modules = get_module_names ttg.name values_to_generate = get_values_to_generate(ttg) type_file_for ttg.name, result do |f| f.in_modules modules do in_class f, ttg do generate_constant_assignments f, values_to_generate generate_values_array f, values_to_generate end end end self end
Protected Instance Methods
generate_constant_assignments(f, values_to_generate)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_enum_generator.rb, line 36 def generate_constant_assignments(f, values_to_generate) values_to_generate.each do |vtg| f.statement value_constant_assignment vtg end f.after_constants end
generate_values_array(f, values_to_generate)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_enum_generator.rb, line 32 def generate_values_array(f, values_to_generate) f.literal_array @values_const_name, values_to_generate.map { |vtg| vtg.name.constant_name } end
get_values_to_generate(ttg)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_enum_generator.rb, line 43 def get_values_to_generate(ttg) ttg.type.enumeration_values.uniq(&:value).map do |ev| name = @generator.namer.get_enumeration_value_name ttg.type, ev TypeToGenerate.new ev, name end end
in_class(f, ttg, &block)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_enum_generator.rb, line 50 def in_class(f, ttg, &block) f.in_sub_class ttg.name.class_name, @base, &block end
value_constant_assignment(vtg)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_enum_generator.rb, line 54 def value_constant_assignment(vtg) "#{vtg.name.constant_name} = new(#{vtg.type.value.inspect}).freeze" end