Class: Schematic::Generator::Restrictions::Pattern

Inherits:
Base show all
Defined in:
lib/schematic/generator/restrictions/pattern.rb

Instance Attribute Summary

Attributes inherited from ColumnValidator

#column, #klass

Instance Method Summary collapse

Methods inherited from Base

inherited

Methods inherited from ColumnValidator

#for_validator, #initialize, #validators_for_column

Constructor Details

This class inherits a constructor from Schematic::Generator::ColumnValidator

Instance Method Details

#generate(builder) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/schematic/generator/restrictions/pattern.rb', line 5

def generate(builder)
  for_validator ActiveModel::Validations::FormatValidator do |validator|
    if pattern = validator.options[:with]
      value = pattern.source
      value.gsub!(/^(?:\^|\\A|\\a)?/, '')
      value.gsub!(/(?:\$|\\Z|\\z)?$/, '')
      value.gsub!(/\\\$/, '$')
      value.gsub!(/\(\?:/, '(')
      builder.xs(:pattern, "value" => value)
    end
  end
end