module ActiveRecord
  module OracleEnhanced
    module Type
      class Boolean < ActiveModel::Type::Boolean # :nodoc:
        # Add 'N' as FALSE_VALUES
        FALSE_VALUES = [false, 0, '0', 'f', 'F', 'false', 'FALSE', 'off', 'OFF', 'n', 'N'].to_set

        private

        def cast_value(value)
          # Not calling super to use its own `FALSE_VALUES`
          if value == ''
            nil
          else
            !FALSE_VALUES.include?(value)
          end
        end

      end
    end
  end
end

module ActiveRecord
  module OracleEnhanced
    module Type
      class Boolean < ActiveModel::Type::Boolean # :nodoc:

        private

        def cast_value(value)
          # Kind of adding 'n' and 'N' to  `FALSE_VALUES`
          if ['n', 'N'].include?(value)
            false
          else
            super
          end
        end

      end
    end
  end
end

Refactor Boolean type by removing duplicate code
Refactor Boolean type by removing duplicate code

Oracle enhanced adapter also needs to handle 'n' and 'N' as `FALSE`.
