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



92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/acts_as_serializable.rb', line 92

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



80
81
82
# File 'lib/acts_as_serializable.rb', line 80

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

#to_json(options = {}) ⇒ Object



84
85
86
# File 'lib/acts_as_serializable.rb', line 84

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

#to_xml(options = {}) ⇒ Object



88
89
90
# File 'lib/acts_as_serializable.rb', line 88

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