Module: Serializable::InstanceMethods

Defined in:
lib/acts_as_serializable.rb

Overview

This module contains instance methods

Instance Method Summary collapse

Instance Method Details

#serialize(builder, options = {}) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# File 'lib/acts_as_serializable.rb', line 106

def serialize(builder, options = {})
  if version_number = options[:version]
    if version = self.class.serialization_versions.find_version(Version.new(version_number))
      return self.send("serialize_to_version_#{version.to_s_underscored}", builder, options)
    else
      raise "Version #{version_number} given but no serialization method found"
    end
  else
    if version = self.class.default_serialization_version
      return self.send("serialize_to_version_#{version.to_s_underscored}", builder, options)
    else
      raise "No serialization method found"
    end
  end
end

#to_hash(options = {}) ⇒ Object



94
95
96
# File 'lib/acts_as_serializable.rb', line 94

def to_hash(options = {})
  serialize(Builder::Hash.new, options)
end

#to_json(options = {}) ⇒ Object



98
99
100
# File 'lib/acts_as_serializable.rb', line 98

def to_json(options = {})
  serialize(Builder::Json.new, options)
end

#to_xml(options = {}) ⇒ Object



102
103
104
# File 'lib/acts_as_serializable.rb', line 102

def to_xml(options = {})
  serialize(Builder::XmlMarkup.new, options)
end