Sha256: 59aac4e7b56f09d2b570f32fc963d0c24538bf3b933b29cbd6d8ffbdd863644d

Contents?: true

Size: 617 Bytes

Versions: 3

Compression:

Stored size: 617 Bytes

Contents

require_relative "base"

class StoreSchema::Converter::Integer < StoreSchema::Converter::Base

  # @return [Regexp] the int value format.
  #
  INT_FORMAT = /^\d+$/

  # Converts the {#value} to a database-storable value.
  #
  # @return [String, false] false if {#value} is an invalid date-type.
  #
  def to_db
    case value
    when ::Integer
      value.to_s
    when ::String
      if value.match(INT_FORMAT)
        value
      else
        false
      end
    else
      false
    end
  end

  # Converts the {#value} to a Ruby-type value.
  #
  # @return [Integer]
  #
  def from_db
    value.to_i
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
store_schema-1.1.0 lib/store_schema/converter/integer.rb
store_schema-1.0.1 lib/store_schema/converter/integer.rb
store_schema-1.0.0 lib/store_schema/converter/integer.rb