Module: Sequel::Plugins::XmlSerializer::ClassMethods
- Defined in:
- lib/sequel/plugins/xml_serializer.rb
Constant Summary
- CAMELIZE =
Proc that camelizes the input string, used for the :camelize option
proc{|s| s.camelize}
- DASHERIZE =
Proc that dasherizes the input string, used for the :dasherize option
proc{|s| s.dasherize}
- IDENTITY =
Proc that returns the input string as is, used if no :name_proc, :dasherize, or :camelize option is used.
proc{|s| s}
- UNDERSCORE =
Proc that underscores the input string, used for the :underscore option
proc{|s| s.underscore}
Instance Method Summary (collapse)
-
- (Object) array_from_xml(xml, opts = {})
Return an array of instances of this class based on the provided XML.
-
- (Object) from_xml(xml, opts = {})
Return an instance of this class based on the provided XML.
-
- (Object) from_xml_node(parent, opts = {})
Return an instance of this class based on the given XML node, which should be Nokogiri::XML::Node instance.
-
- (Object) to_xml(opts = {})
Call the dataset to_xml method.
-
- (Object) xml_builder(opts = {})
Return an appropriate Nokogiri::XML::Builder instance used to create the XML.
-
- (Object) xml_deserialize_name_proc(opts = {})
Return a proc (or any other object that responds to []), used for formatting XML tag names when serializing to XML.
-
- (Object) xml_serialize_name_proc(opts = {})
Return a proc (or any other object that responds to []), used for formatting XML tag names when serializing to XML.
Instance Method Details
- (Object) array_from_xml(xml, opts = {})
Return an array of instances of this class based on the provided XML.
106 107 108 |
# File 'lib/sequel/plugins/xml_serializer.rb', line 106 def array_from_xml(xml, opts={}) Nokogiri::XML(xml).children.first.children.reject{|c| c.is_a?(Nokogiri::XML::Text)}.map{|c| from_xml_node(c, opts)} end |
- (Object) from_xml(xml, opts = {})
Return an instance of this class based on the provided XML.
112 113 114 |
# File 'lib/sequel/plugins/xml_serializer.rb', line 112 def from_xml(xml, opts={}) from_xml_node(Nokogiri::XML(xml).children.first, opts) end |
- (Object) from_xml_node(parent, opts = {})
Return an instance of this class based on the given XML node, which should be Nokogiri::XML::Node instance. This should probably not be used directly by user code.
119 120 121 |
# File 'lib/sequel/plugins/xml_serializer.rb', line 119 def from_xml_node(parent, opts={}) new.from_xml_node(parent, opts) end |
- (Object) to_xml(opts = {})
Call the dataset to_xml method.
124 125 126 |
# File 'lib/sequel/plugins/xml_serializer.rb', line 124 def to_xml(opts={}) dataset.to_xml(opts) end |
- (Object) xml_builder(opts = {})
Return an appropriate Nokogiri::XML::Builder instance used to create the XML. This should probably not be used directly by user code.
131 132 133 134 135 136 137 138 139 140 141 142 143 |
# File 'lib/sequel/plugins/xml_serializer.rb', line 131 def xml_builder(opts={}) if opts[:builder] opts[:builder] else builder_opts = if opts[:builder_opts] opts[:builder_opts] else {} end builder_opts[:encoding] = opts[:encoding] if opts.has_key?(:encoding) Nokogiri::XML::Builder.new(builder_opts) end end |
- (Object) xml_deserialize_name_proc(opts = {})
Return a proc (or any other object that responds to []), used for formatting XML tag names when serializing to XML. This should probably not be used directly by user code.
148 149 150 151 152 153 154 155 156 |
# File 'lib/sequel/plugins/xml_serializer.rb', line 148 def xml_deserialize_name_proc(opts={}) if opts[:name_proc] opts[:name_proc] elsif opts[:underscore] UNDERSCORE else IDENTITY end end |
- (Object) xml_serialize_name_proc(opts = {})
Return a proc (or any other object that responds to []), used for formatting XML tag names when serializing to XML. This should probably not be used directly by user code.
161 162 163 164 165 166 167 168 169 170 171 172 |
# File 'lib/sequel/plugins/xml_serializer.rb', line 161 def xml_serialize_name_proc(opts={}) pr = if opts[:name_proc] opts[:name_proc] elsif opts[:dasherize] DASHERIZE elsif opts[:camelize] CAMELIZE else IDENTITY end proc{|s| "#{pr[s]}_"} end |