Class: Xommelier::Xml::Element::Structure::Element

Inherits:
Property
  • Object
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

Constructor Details

This class inherits a constructor from Xommelier::Xml::Element::Structure::Property

Instance Method Details

#element_nameObject



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

#fixedObject



80
81
82
# File 'lib/xommelier/xml/element/structure/property.rb', line 80

def fixed
  options[:fixed]
end

#fixed?Boolean

Returns:



84
85
86
# File 'lib/xommelier/xml/element/structure/property.rb', line 84

def fixed?
  options.key?(:fixed)
end

#multiple?Boolean

Returns:



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_typeObject



64
65
66
# File 'lib/xommelier/xml/element/structure/property.rb', line 64

def node_type
  :element
end

#numbers_equal?Boolean

Returns:



105
106
107
# File 'lib/xommelier/xml/element/structure/property.rb', line 105

def numbers_equal?
  plural == name
end

#overridden_xmlnsObject



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

#pluralObject



97
98
99
# File 'lib/xommelier/xml/element/structure/property.rb', line 97

def plural
  @plural ||= name.to_s.pluralize.to_sym
end

#plural_writerObject



101
102
103
# File 'lib/xommelier/xml/element/structure/property.rb', line 101

def plural_writer
  @plural_writer ||= "#{plural}="
end

#required?Boolean

Returns:



88
89
90
# File 'lib/xommelier/xml/element/structure/property.rb', line 88

def required?
  options[:count] == :one || options[:count] == :many
end

#serializable_element_nameObject



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