Sha256: 29afe7359020ab33b99d8c0ce41b08c02400a4624ea5e7ba7f1634293435140a

Contents?: true

Size: 942 Bytes

Versions: 32

Compression:

Stored size: 942 Bytes

Contents

# frozen_string_literal: true

module BetterRecord
  module Gender
    ENUM = {
      f: 'F',
      F: 'F',
      female: 'F',
      Female: 'F',
      m: 'M',
      M: 'M',
      male: 'M',
      Male: 'M',
      u: 'U',
      U: 'U',
      unknown: 'U',
      Unknown: 'F'
    }.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 /[Ff]/
            'F'
          when /[Mm]/
            'M'
          else
            'U'
          end
        end
    end
  end
end

Version data entries

32 entries across 32 versions & 1 rubygems

Version Path
better_record-0.20.2 lib/better_record/gender.rb
better_record-0.19.10 lib/better_record/gender.rb
better_record-0.19.9 lib/better_record/gender.rb
better_record-0.19.8 lib/better_record/gender.rb
better_record-0.19.7 lib/better_record/gender.rb
better_record-0.19.6 lib/better_record/gender.rb
better_record-0.19.4 lib/better_record/gender.rb
better_record-0.19.2 lib/better_record/gender.rb
better_record-0.19.1 lib/better_record/gender.rb
better_record-0.19.0 lib/better_record/gender.rb
better_record-0.18.3 lib/better_record/gender.rb
better_record-0.18.2 lib/better_record/gender.rb
better_record-0.18.1 lib/better_record/gender.rb
better_record-0.18.0 lib/better_record/gender.rb
better_record-0.17.9 lib/better_record/gender.rb
better_record-0.17.8 lib/better_record/gender.rb
better_record-0.17.4 lib/better_record/gender.rb
better_record-0.17.3 lib/better_record/gender.rb
better_record-0.17.1 lib/better_record/gender.rb
better_record-0.17.0 lib/better_record/gender.rb