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



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

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

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



124
125
126
# File 'lib/acts_as_serializable.rb', line 124

def serialize_for(builder, options = {})
  self.send(builder.serialization_method!, options)
end

#to_hash(options = {}) ⇒ Object



96
97
98
# File 'lib/acts_as_serializable.rb', line 96

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

#to_json(options = {}) ⇒ Object



100
101
102
# File 'lib/acts_as_serializable.rb', line 100

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

#to_xml(options = {}) ⇒ Object



104
105
106
# File 'lib/acts_as_serializable.rb', line 104

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