Module: Rails::Angulate::Mappers

Defined in:
lib/rails/angulate/mappers.rb,
lib/rails/angulate/mappers/base_mapper.rb,
lib/rails/angulate/mappers/validator_mapper.rb,
lib/rails/angulate/mappers/format_validator_mapper.rb,
lib/rails/angulate/mappers/length_validator_mapper.rb,
lib/rails/angulate/mappers/numericality_validator_mapper.rb

Defined Under Namespace

Classes: BaseMapper, FormatValidatorMapper, LengthValidatorMapper, NumericalityValidatorMapper, ValidatorMapper

Constant Summary collapse

@@lock =
Mutex.new
@@mappers =
{}

Class Method Summary collapse

Class Method Details

.create_validator_mapper_for(model, attribute_name, validator) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/rails/angulate/mappers.rb', line 20

def self.create_validator_mapper_for(model, attribute_name,  validator)
  @@lock.synchronize do
    if klass = @@mappers[validator.kind]
      klass.new(model, attribute_name, validator)
    else
      # General purpose mapper
      ValidatorMapper.new(model, attribute_name, validator)
    end
  end
end

.register_mapper(constant, kind = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
# File 'lib/rails/angulate/mappers.rb', line 9

def self.register_mapper(constant, kind = nil)
  @@lock.synchronize do
    if kind.nil?
      kind = constant.name.split('::').last
        .sub('ValidatorMapper', '').underscore
    end

    @@mappers[kind.to_sym] = constant unless kind.blank?
  end
end