Class: Croesus::Validator::SimpleValidator

Inherits:
Base show all
Defined in:
lib/croesus/validators/simple_validator.rb

Overview

Author: Stefano Harding <[email protected]>

Copyright © 2014 Stefano Harding

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Instance Attribute Summary collapse

Attributes inherited from Base

#name

Instance Method Summary collapse

Methods inherited from Base

#presence_error_message, #should_validate?

Constructor Details

#initialize(name, lambda) ⇒ SimpleValidator

Returns a new instance of SimpleValidator.



23
24
25
26
27
28
29
30
31
32
33
# File 'lib/croesus/validators/simple_validator.rb', line 23

def initialize(name, lambda)
  # lambda must accept one argument (the value)
  if lambda.arity != 1
    raise ValidationError.new(
      "Lambda should take only one argument; passed #{lambda.arity}"
    )
  end

  super(name)
  self.lambda = lambda
end

Instance Attribute Details

#lambdaObject

Returns the value of attribute lambda.



21
22
23
# File 'lib/croesus/validators/simple_validator.rb', line 21

def lambda
  @lambda
end

Instance Method Details

#validate(key, value, validations, errors) ⇒ Object



35
36
37
38
39
# File 'lib/croesus/validators/simple_validator.rb', line 35

def validate(key, value, validations, errors)
  unless lambda.call(value)
    errors[key] = presence_error_message
  end
end