Sha256: 3e42dd570d2ce3cd5914e6ed78fba55e4c8c2e73e1c297008856d71f56290374

Contents?: true

Size: 1.34 KB

Versions: 5

Compression:

Stored size: 1.34 KB

Contents

# frozen_string_literal: true

module Jimmy
  class Schema
    # Set the maximum length for a string value.
    # @param [Numeric] length The maximum length for a string value.
    # @return [self] self, for chaining
    def max_length(length)
      valid_for 'string'
      assert_numeric length, minimum: 0
      set maxLength: length
    end

    # Set the minimum length for a string value.
    # @param [Numeric] length The minimum length for a string value.
    # @return [self] self, for chaining
    def min_length(length)
      valid_for 'string'
      assert_numeric length, minimum: 0
      set minLength: length
    end

    # Set the minimum and maximum length for a string value, using a range.
    # @param [Range, Integer] range The minimum and maximum length for a string
    #   value. If an integer is given, it is taken to be both.
    # @return [self] self, for chaining
    def length(range)
      range = range..range if range.is_a?(Integer)
      assert_range range
      min_length range.min
      max_length range.max unless range.end.nil?
      self
    end

    # Set the format for a string value.
    # @param [String] format_name The named format for a string value.
    # @return [self] self, for chaining
    def format(format_name)
      valid_for 'string'
      assert_string format_name
      set format: format_name
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
jimmy-2.1.0 lib/jimmy/schema/string.rb
jimmy-2.0.3 lib/jimmy/schema/string.rb
jimmy-2.0.2 lib/jimmy/schema/string.rb
jimmy-2.0.1 lib/jimmy/schema/string.rb
jimmy-2.0.0 lib/jimmy/schema/string.rb