Sha256: 9999f7ddee63789ef1fb7cc12001722c2de23e6c9446dfbff938865de055c05a
Contents?: true
Size: 1.12 KB
Versions: 1
Compression:
Stored size: 1.12 KB
Contents
# encoding: UTF-8 # # Copyright 2011 Brennan Frydl (http://bfrydl.com/) # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. module Settis class ActiveRecordSerializer < Serializer def self.serializes?(type) type.is_a?(Class) and type.ancestors.include?(ActiveRecord::Base) end def serialize(value) case value when Integer then value.to_s when type then value.id.to_s when nil then nil else raise ArgumentError, "Setting value must be an instance of #{type}, an ID number, or nil" end end def deserialize(value) type.find_by_id(value) unless value.nil? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
settis-0.2.0 | lib/settis/serializers/active_record.rb |