class WsdlMapper::DomGeneration::DefaultClassGenerator
Public Instance Methods
generate(ttg, result)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_class_generator.rb, line 7 def generate(ttg, result) modules = get_module_names ttg.name type_file_for ttg.name, result do |f| write_requires f, get_requires(ttg.type, result.schema) f.in_modules modules do in_class f, ttg do generate_content_attribute f, ttg if ttg.type.simple_content? generate_property_attributes f, ttg.type.each_property generate_attribute_attributes f, ttg.type.each_attribute generate_ctr f, ttg, result end end end self end
Protected Instance Methods
generate_attribute_attributes(f, attributes)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_class_generator.rb, line 30 def generate_attribute_attributes(f, attributes) return unless attributes.any? attribute_names = attributes.map { |a| @generator.namer.get_attribute_name a } f.attr_accessors(*attribute_names.map(&:attr_name)) end
generate_content_attribute(f, ttg)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_class_generator.rb, line 25 def generate_content_attribute(f, ttg) name = @generator.namer.get_content_name(ttg.type) f.attr_accessors name.attr_name end
generate_ctr(f, ttg, result)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_class_generator.rb, line 45 def generate_ctr(f, ttg, result) if ttg.type.simple_content? @generator.ctr_generator.generate_simple ttg, f, result else @generator.ctr_generator.generate ttg, f, result end end
generate_property_attributes(f, properties)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_class_generator.rb, line 37 def generate_property_attributes(f, properties) return unless properties.any? property_names = properties.map { |p| @generator.namer.get_property_name p } # TODO: readonly? f.attr_accessors(*property_names.map(&:attr_name)) end
get_base_name(type)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_class_generator.rb, line 71 def get_base_name(type) type.base && !type.simple_content? && @generator.get_ruby_type_name(type.base) end
get_requires(type, schema)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_class_generator.rb, line 53 def get_requires(type, schema) requires = [] add_base_require requires, type, schema type.each_property do |prop| add_prop_require requires, prop, schema end # TODO: collect requires from ctr generator? requires.uniq end
in_class(f, ttg, &block)
click to toggle source
# File lib/wsdl_mapper/dom_generation/default_class_generator.rb, line 63 def in_class(f, ttg, &block) if (base_name = get_base_name(ttg.type)) f.in_sub_class ttg.name.class_name, base_name, &block else f.in_class ttg.name.class_name, &block end end