Module: Minds::Validators

Defined in:
lib/minds/validators.rb

Class Method Summary collapse

Class Method Details

.validate_datasource_name!(name) ⇒ Boolean

Note:

Datasource name rules:

  • Must start with a letter

  • Can contain only letters, numbers, or underscores

  • Maximum length of 62 characters

  • Cannot contain spaces

Validates a datasource name according to naming rules

Examples:

Valid datasource names

validate_datasource_name!("my_database") # => true

Invalid datasource names

validate_datasource_name!("123_db") # raises DatasourceNameInvalid
validate_datasource_name!("my database") # raises DatasourceNameInvalid
validate_datasource_name!("very_very_long_database_name_over_62_characters_not_allowed") # raises DatasourceNameInvalid

Parameters:

  • name (String)

    The datasource name to validate

Returns:

  • (Boolean)

    Returns true if valid

Raises:

[View source]

50
51
52
53
54
# File 'lib/minds/validators.rb', line 50

def validate_datasource_name!(name)
  unless name.match?(/\A[a-zA-Z][a-zA-Z0-9_]{0,61}\z/)
    raise DatasourceNameInvalid, "Datasource name '#{name}' is invalid. It must start with a letter, contain only letters, numbers, or underscores, and be 62 characters or less."
  end
end

.validate_mind_name!(name) ⇒ Boolean

Note:

Mind name rules:

  • Must start with a letter

  • Can contain only letters, numbers, or underscores

  • Maximum length of 32 characters

  • Cannot contain spaces

Validates a mind name according to naming rules

Examples:

Valid mind names

validate_mind_name!("my_mind_1") # => true

Invalid mind names

validate_mind_name!("123_mind") # raises MindNameInvalid
validate_mind_name!("my mind") # raises MindNameInvalid
validate_mind_name!("very_very_long_mind_name_over_32_chars") # raises MindNameInvalid

Parameters:

  • name (String)

    The mind name to validate

Returns:

  • (Boolean)

    Returns true if valid

Raises:

[View source]

25
26
27
28
29
# File 'lib/minds/validators.rb', line 25

def validate_mind_name!(name)
  unless name.match?(/\A[a-zA-Z][a-zA-Z0-9_]{0,31}\z/)
    raise MindNameInvalid, "Mind name '#{name}' is invalid. It must start with a letter, contain only letters, numbers, or underscores, and be 32 characters or less."
  end
end