magoosh/motion_record

View on GitHub
lib/motion_record/serialization/boolean_serializer.rb

Summary

Maintainability
A
25 mins
Test Coverage
module MotionRecord
  module Serialization
    class BooleanSerializer < BaseSerializer

      def serialize(value)
        if @column.type == :integer
          value ? 1 : 0
        else
          raise "Can't serialize #{value.inspect} to #{@column.type.inspect}"
        end
      end

      def deserialize(value)
        if @column.type == :integer
          if value == 0 || value.nil?
            false
          else
            true
          end
        else
          raise "Can't deserialize #{value.inspect} from #{@column.type.inspect}"
        end
      end
    end
  end
end