Sha256: 9d0f3ebca071eb5117957c7b0663e35cb5ac61c55f44ace14f13363c3490cd9f

Contents?: true

Size: 678 Bytes

Versions: 2

Compression:

Stored size: 678 Bytes

Contents

require 'active_model/validations/format'
require 'schematic/generator/restrictions/base'

module Schematic
  module Generator
    module Restrictions
      class Pattern < Base
        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
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
schematic-0.7.1 lib/schematic/generator/restrictions/pattern.rb
schematic-0.7.0 lib/schematic/generator/restrictions/pattern.rb