vladimerb 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/src/pattern.rb CHANGED
@@ -1,20 +1,29 @@
1
1
  require_relative "namespace"
2
2
 
3
3
  class Vladimerb::Pattern
4
- def initialize field_name, regex, options=nil
4
+ def initialize field_name, regex, options = nil
5
5
  @field_name = field_name
6
6
  @regex = regex
7
7
  @custom_message = options[:message] unless options.nil?
8
8
  end
9
9
 
10
10
  def validate record
11
- record.send(@field_name).match(@regex).nil? ?
12
- [error_message] :
13
- []
11
+ check_nil(record.send(@field_name))
14
12
  end
15
13
 
16
14
  private
17
15
 
16
+ # TODO: Not happy with this method name
17
+ def check_nil(value)
18
+ value.nil? ?
19
+ [] : check_match(value)
20
+ end
21
+
22
+ def check_match(value)
23
+ value.match(@regex).nil? ?
24
+ [error_message] : []
25
+ end
26
+
18
27
  def error_message
19
28
  @custom_message.nil? ?
20
29
  @field_name.to_s + " is not formatted correctly." :
data/src/required.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require_relative "namespace"
2
2
 
3
3
  class Vladimerb::Required
4
- def initialize field_name, options=nil
4
+ def initialize field_name, options = nil
5
5
  @field_name = field_name
6
6
  @custom_message = options[:message] unless options.nil?
7
7
  end
data/src/vladimerb.rb CHANGED
@@ -17,8 +17,8 @@ module Vladimerb
17
17
  Chain.new tree, validation }
18
18
  end
19
19
 
20
- def required field_name
21
- Required.new field_name
20
+ def required field_name, options = nil
21
+ Required.new field_name, options
22
22
  end
23
23
 
24
24
  def greater_than field_name, minimum
@@ -29,8 +29,8 @@ module Vladimerb
29
29
  LambdaValidation.new &block
30
30
  end
31
31
 
32
- def pattern field_name, regex
33
- Pattern.new field_name, regex
32
+ def pattern field_name, regex, options = nil
33
+ Pattern.new field_name, regex, options
34
34
  end
35
35
 
36
36
  def predicate field_name, method, msg
data/test/helpers.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require_relative "test_helper.rb"
2
2
 
3
3
  class HelpersTest < Test::Unit::TestCase
4
- include Helpers
4
+ include Vladimerb
5
5
 
6
6
  def test_join_can_compose_multiple_validations
7
7
  assert_errors Candidate.new("Fred", 50),
data/test/pattern.rb CHANGED
@@ -19,5 +19,11 @@ class PatternTest < Test::Unit::TestCase
19
19
  ["Name is insufficiently ill"]
20
20
  end
21
21
 
22
+ def tests_a_value_can_be_blank
23
+ assert_errors Candidate.new(nil, 24),
24
+ pattern(:name, /ill/, message: "Name is insufficiently ill"),
25
+ []
26
+ end
27
+
22
28
  end
23
29
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vladimerb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: