Class: Ebay::Schema::RubyClassGenerator
Constant Summary
collapse
- BuiltInTypes =
['string', 'anyURI', 'int', 'float', 'long', 'dateTime', 'boolean', 'token', 'decimal', 'duration', 'double']
Constants included
from Inflections
Inflections::DOWNCASE_TOKENS, Inflections::NAME_MAPPINGS, Inflections::UPCASE_TOKENS
Instance Attribute Summary collapse
Instance Method Summary
collapse
#downcase_first_character, #ebay_camelize, #ebay_underscore, #underscore, #upcase_first_character
Constructor Details
#initialize(type, simple_types, complex_types, xml) ⇒ RubyClassGenerator
Returns a new instance of RubyClassGenerator.
10
11
12
13
14
15
16
17
18
19
20
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 10
def initialize(type, simple_types, complex_types, xml)
@xml = xml
@indent = 2
@type = type
@simple_types, @complex_types = simple_types, complex_types
@ignored_classes = []
find_base
end
|
Instance Attribute Details
#documentation ⇒ Object
Returns the value of attribute documentation.
8
9
10
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 8
def documentation
@documentation
end
|
#ignored_classes ⇒ Object
Returns the value of attribute ignored_classes.
8
9
10
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 8
def ignored_classes
@ignored_classes
end
|
Instance Method Details
#abstract? ⇒ Boolean
87
88
89
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 87
def abstract?
abstract_request? || abstract_response?
end
|
#abstract_request? ⇒ Boolean
91
92
93
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 91
def abstract_request?
name == 'AbstractRequest'
end
|
#abstract_response? ⇒ Boolean
95
96
97
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 95
def abstract_response?
name == 'AbstractResponse'
end
|
#base_class ⇒ Object
75
76
77
78
79
80
81
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 75
def base_class
if abstract_request? || abstract_response?
'Base'
else
trim_type(@base.name.name) unless @base.nil?
end
end
|
#complex? ⇒ Boolean
30
31
32
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 30
def complex?
@type.is_a?(WSDL::XMLSchema::ComplexType)
end
|
#derived_request? ⇒ Boolean
117
118
119
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 117
def derived_request?
base_class == 'AbstractRequest'
end
|
#derived_response? ⇒ Boolean
121
122
123
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 121
def derived_response?
base_class == 'AbstractResponse'
end
|
#generate_class ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 38
def generate_class
template = simple? ? 'value' : 'base'
base = ClassTemplate.new(template).load
customization = ClassTemplate.new(ebay_underscore(name))
customization.load if customization.exists?
if request? || response?
class_name = ebay_camelize(name).gsub(/(Request|Response)$/, '')
else
class_name = ebay_camelize(name)
end
element_name = ebay_camelize(name)
class_def = ClassDefinition.new(class_name, element_name, module_name, base_class)
nodes = generate_nodes
class_def.nodes.concat nodes
class_def.customization = customization.render(class_def) if customization.exists?
base.render(class_def)
end
|
#module_name ⇒ Object
99
100
101
102
103
104
105
106
107
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 99
def module_name
if request?
'Requests'
elsif response?
'Responses'
else
'Types'
end
end
|
#name ⇒ Object
71
72
73
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 71
def name
@name ||= trim_type(@type.name.name)
end
|
#request? ⇒ Boolean
109
110
111
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 109
def request?
abstract_request? || derived_request?
end
|
#response? ⇒ Boolean
113
114
115
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 113
def response?
abstract_response? || derived_response?
end
|
#simple? ⇒ Boolean
26
27
28
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 26
def simple?
@type.is_a?(WSDL::XMLSchema::SimpleType)
end
|
#simple_content? ⇒ Boolean
22
23
24
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 22
def simple_content?
@type.simplecontent
end
|
#to_s ⇒ Object
34
35
36
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 34
def to_s
@class_def ||= generate_class
end
|
#type? ⇒ Boolean
83
84
85
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 83
def type?
!(derived_request? || derived_response?)
end
|
#xml_type ⇒ Object
67
68
69
|
# File 'lib/ebay/schema/mapper/ruby_class_generator.rb', line 67
def xml_type
@type.name.name
end
|