Sha256: 9b60a921c320b80c79e1d25250343b21898e21292625203a3b5b4bb21bced13e
Contents?: true
Size: 877 Bytes
Versions: 19
Compression:
Stored size: 877 Bytes
Contents
# frozen_string_literal: true module BetterRecord module Gender ENUM = { F: 'F', M: 'M', f: 'F', m: 'M', female: 'F', Female: 'F', male: 'M', Male: 'M', }.freeze module TableDefinition def gender(*args, **opts) args.each do |name| column name, :gender, **opts end end end class Type < ActiveRecord::Type::Value def cast(value) convert_to_gender(value) end def deserialize(value) super(convert_to_gender(value)) end def serialize(value) super(convert_to_gender(value)) end private def convert_to_gender(value) case value.to_s when /^[Mm]/ 'M' when /^[Ff]/ 'F' else nil end end end end end
Version data entries
19 entries across 19 versions & 1 rubygems