Class: Xommelier::Xml::Element::Structure::Element
- Inherits:
-
Property
- Object
- Property
- Xommelier::Xml::Element::Structure::Element
show all
- Defined in:
- lib/xommelier/xml/element/structure/property.rb
Constant Summary
collapse
- DEFAULTS =
{
type: String,
count: :one
}.freeze
Instance Attribute Summary
Attributes inherited from Property
#name, #options
Instance Method Summary
collapse
Methods inherited from Property
#complex_type?, #default, #default?, #initialize, #inspect, #ns, #type, #writer
Instance Method Details
#element_name ⇒ Object
68
69
70
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 68
def element_name
@element_name ||= options.delete(:as) { name }.to_s
end
|
#fixed ⇒ Object
80
81
82
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 80
def fixed
options[:fixed]
end
|
84
85
86
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 84
def fixed?
options.key?(:fixed)
end
|
92
93
94
95
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 92
def multiple?
return overrides[:multiple] if overrides.key?(:multiple)
options[:count] == :many || options[:count] == :any
end
|
#node_type ⇒ Object
64
65
66
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 64
def node_type
:element
end
|
#numbers_equal? ⇒ Boolean
105
106
107
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 105
def numbers_equal?
plural == name
end
|
#overridden_xmlns ⇒ Object
109
110
111
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 109
def overridden_xmlns
overrides[:xmlns]
end
|
#override(overrides) ⇒ Object
113
114
115
116
117
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 113
def override(overrides)
@overrides = overrides
yield
@overrides = {}
end
|
#plural ⇒ Object
97
98
99
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 97
def plural
@plural ||= name.to_s.pluralize.to_sym
end
|
#plural_writer ⇒ Object
101
102
103
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 101
def plural_writer
@plural_writer ||= "#{plural}="
end
|
88
89
90
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 88
def required?
options[:count] == :one || options[:count] == :many
end
|
#serializable_element_name ⇒ Object
72
73
74
75
76
77
78
|
# File 'lib/xommelier/xml/element/structure/property.rb', line 72
def serializable_element_name
@serializable_element_name ||= if %w(class id text).include?(element_name)
element_name + '_'
else
element_name
end
end
|