Sha256: f4d01e7a0f33fc45d655d50209c4d6abaee83f9ddc6a872e3576482ae2c32eb1

Contents?: true

Size: 733 Bytes

Versions: 1

Compression:

Stored size: 733 Bytes

Contents

class Typero::StringType < Typero::Type
  def set
    @value = @value.to_s unless @value.is_a?(String)
    @value = @value.downcase if @opts[:downcase]
  end

  def validate
    raise TypeError, error_for(:min_length_error) % [@opts[:min], @value.length] if @opts[:min] && @value.length < @opts[:min]
    raise TypeError, error_for(:max_length_error) % [@opts[:max], @value.length] if @opts[:max] && @value.length > @opts[:max]
  end

  # ready for localization

  def min_length_error
    'min lenght is %s, you have %s'
  end

  def max_length_error
    'max lenght is %s, you have %s'
  end

  def db_field
    opts = {}
    opts[:limit] = @opts[:max] || 255
    opts[:null]  = false if @opts[:req]
    [:string, opts]
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
typero-0.5.2 ./lib/typero/type/string.rb