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

Version Path
better_record-0.13.1 lib/better_record/gender.rb
better_record-0.13.0 lib/better_record/gender.rb
better_record-0.12.5 lib/better_record/gender.rb
better_record-0.12.4 lib/better_record/gender.rb
better_record-0.12.3 lib/better_record/gender.rb
better_record-0.12.2 lib/better_record/gender.rb
better_record-0.12.1 lib/better_record/gender.rb
better_record-0.11.5 lib/better_record/gender.rb
better_record-0.11.4 lib/better_record/gender.rb
better_record-0.10.10 lib/better_record/gender.rb
better_record-0.10.9 lib/better_record/gender.rb
better_record-0.10.8 lib/better_record/gender.rb
better_record-0.10.7 lib/better_record/gender.rb
better_record-0.10.6 lib/better_record/gender.rb
better_record-0.10.5 lib/better_record/gender.rb
better_record-0.10.4 lib/better_record/gender.rb
better_record-0.10.3 lib/better_record/gender.rb
better_record-0.10.2 lib/better_record/gender.rb
better_record-0.10.1 lib/better_record/gender.rb