module SimpleForm::Components::Pattern

def evaluate_format_validator_option(option)

def evaluate_format_validator_option(option)
  if option.respond_to?(:call)
    option.call(object)
  else
    option
  end
end

def find_pattern_validator

def find_pattern_validator
  find_validator(ActiveModel::Validations::FormatValidator)
end

def pattern

def pattern
  input_html_options[:pattern] ||= pattern_source
  nil
end

def pattern_source

def pattern_source
  pattern = options[:pattern]
  if pattern.is_a?(String)
    pattern
  elsif pattern_validator = find_pattern_validator
    evaluate_format_validator_option(pattern_validator.options[:with]).source
  end
end