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(:format)
end

def pattern(wrapper_options = nil)

def pattern(wrapper_options = nil)
  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) && (with = pattern_validator.options[:with])
    evaluate_format_validator_option(with).source
  end
end