Class: Ebay::Schema::ApiSchemaImporter
- Inherits:
-
Object
- Object
- Ebay::Schema::ApiSchemaImporter
- Includes:
- Inflections, RubyClassGeneratorHelper
- Defined in:
- lib/ebay/schema/mapper/ebay_schema_importer.rb
Constant Summary collapse
- Ignores =
[ 'RecipientRelationCodeType' ]
Constants included from Inflections
Inflections::DOWNCASE_TOKENS, Inflections::NAME_MAPPINGS, Inflections::UPCASE_TOKENS
Instance Attribute Summary collapse
-
#complex_types ⇒ Object
readonly
Returns the value of attribute complex_types.
-
#simple_types ⇒ Object
readonly
Returns the value of attribute simple_types.
Instance Method Summary collapse
- #export_classes(base_dir) ⇒ Object
-
#initialize(schema, data) ⇒ ApiSchemaImporter
constructor
A new instance of ApiSchemaImporter.
- #write_classes ⇒ Object
Methods included from Inflections
#downcase_first_character, #ebay_camelize, #ebay_underscore, #underscore, #upcase_first_character
Constructor Details
#initialize(schema, data) ⇒ ApiSchemaImporter
Returns a new instance of ApiSchemaImporter.
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/ebay/schema/mapper/ebay_schema_importer.rb', line 13 def initialize(schema, data) @xml = XML::Parser.string(data).parse.root @elements = schema.collect_elements @elements.uniq! @attributes = schema.collect_attributes @attributes.uniq! # Only want the simple types that have an enumeration (codes) @simple_types = schema.collect_simpletypes @simple_types.uniq! @code_types = @simple_types.reject{ |e| e.restriction.enumeration.empty? || Ignores.include?(e.name.name) } @complex_types = schema.collect_complextypes @complex_types.uniq! @fault_types = nil if schema.respond_to?(:collect_faulttypes) @fault_types = schema.collect_faulttypes end @unused_files = [] end |
Instance Attribute Details
#complex_types ⇒ Object (readonly)
Returns the value of attribute complex_types.
9 10 11 |
# File 'lib/ebay/schema/mapper/ebay_schema_importer.rb', line 9 def complex_types @complex_types end |
#simple_types ⇒ Object (readonly)
Returns the value of attribute simple_types.
9 10 11 |
# File 'lib/ebay/schema/mapper/ebay_schema_importer.rb', line 9 def simple_types @simple_types end |
Instance Method Details
#export_classes(base_dir) ⇒ Object
36 37 38 39 |
# File 'lib/ebay/schema/mapper/ebay_schema_importer.rb', line 36 def export_classes(base_dir) @base_dir = base_dir write_classes end |
#write_classes ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/ebay/schema/mapper/ebay_schema_importer.rb', line 41 def write_classes complex_classes = @complex_types.collect do |type| puts "Generating class for #{type.name.name}" RubyClassGenerator.new(type, @simple_types, @complex_types, @xml) end simple_classes = @code_types.collect do |type| puts "Generating simple type class for #{type.name.name}" RubyClassGenerator.new(type, @simple_types, @complex_types, @xml) end write_requires_files(complex_classes) write_class_files(complex_classes) write_class_files(simple_classes) write_requires_file('types', simple_classes) remove_unused_files end |