valideez 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
data/lib/valideez/base.rb CHANGED
@@ -9,7 +9,8 @@ module Valideez
9
9
  end
10
10
 
11
11
  def valid?
12
- validable.map { |var| send("validate_#{var.to_s}") if respond_to?("validate_#{var.to_s}", true) }.compact!.all?
12
+ p = validable.select{ |var| respond_to?("validate_#{var.to_s}", true) }
13
+ p.take_while { |var| send("validate_#{var.to_s}") }.size == p.size
13
14
  end
14
15
 
15
16
  private
data/lib/valideez/nip.rb CHANGED
@@ -6,11 +6,11 @@ module Valideez
6
6
  super val
7
7
 
8
8
  assign({
9
- :sum_control => true,
10
9
  :format => /\A\d{10}\Z/,
11
10
  :length => 10,
12
11
  :mask => [6, 5, 7, 2, 3, 4, 5, 6, 7],
13
12
  :modulo => 11,
13
+ :sum_control => true,
14
14
  }.merge(options))
15
15
 
16
16
  @arr = []
@@ -0,0 +1,18 @@
1
+ require 'active_model'
2
+
3
+ class NipValidator < ActiveModel::EachValidator
4
+ def validate_each(record, attribute, value)
5
+ @message = options[:message] || "invalid format"
6
+ record.errors[attribute] << @message unless Valideez::Nip.new(value).valid?
7
+ end
8
+ end
9
+
10
+ module ActiveModel
11
+ module Validations
12
+ module HelperMethods
13
+ def validates_nip_of(*attr_names)
14
+ validates_with NipValidator, _merge_attributes(attr_names)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -8,12 +8,12 @@ module Valideez
8
8
  super val
9
9
 
10
10
  assign({
11
- :sum_control => true,
12
- :format => /\A\d{11}\Z/,
13
11
  :length => 11,
12
+ :format => /\A\d{11}\Z/,
14
13
  :mask => [1, 3, 7, 9, 1, 3, 7, 9, 1, 3],
15
14
  :modulo => 10,
16
15
  :age => 0,
16
+ :sum_control => true,
17
17
  }.merge(options))
18
18
 
19
19
  @arr = []
@@ -39,8 +39,8 @@ module Valideez
39
39
  private
40
40
 
41
41
  def checksum
42
- @arr = val.split("").collect(&:to_i)
43
- mask.inject(0) {|sum, w| sum + w * @arr.shift}
42
+ @arr = val.split("").collect(&:to_i)
43
+ mask.inject(0) {|sum, w| sum + w * @arr.shift}
44
44
  end
45
45
 
46
46
  def convert_to_date(sample)
@@ -1,8 +1,9 @@
1
1
  require 'active_model'
2
2
 
3
3
  class PeselValidator < ActiveModel::EachValidator
4
+
4
5
  def validate_each(record, attribute, value)
5
- @message = options[:message] || "invalid format"
6
+ message = options[:message] || "invalid format"
6
7
  record.errors.add(attribute, @message) unless Valideez::Pesel.new(value).valid?
7
8
  end
8
9
  end
@@ -1,3 +1,3 @@
1
1
  module Valideez
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'rspec'
3
+ require 'active_model'
4
+
5
+ class NipBastard
6
+ include ActiveModel::Validations
7
+
8
+ attr_accessor :nip
9
+ validates :nip, :presence => true, :nip => true
10
+ end
11
+
12
+ describe NipValidator do
13
+ before :each do
14
+ @model = NipBastard.new
15
+ end
16
+
17
+ it "should be valid" do
18
+ @model.should_not be_valid
19
+ @model.nip = '786-000-11-84'
20
+ @model.should be_valid
21
+ end
22
+
23
+ it "should be invalid" do
24
+ @model.should_not be_valid
25
+ @model.nip = '786-200-11-84'
26
+ @model.should_not be_valid
27
+ end
28
+ end
@@ -8,7 +8,7 @@ describe Valideez::Pesel do
8
8
  end
9
9
 
10
10
  it "should be invalid" do
11
- %w[59040501580 870132114508].each do |n|
11
+ %w[59040501580 870132114508 AABB].each do |n|
12
12
  Valideez::Pesel.new(n).should_not be_valid
13
13
  end
14
14
  end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+ require 'rspec'
3
+ require 'active_model'
4
+
5
+ class PeselBastard
6
+ include ActiveModel::Validations
7
+
8
+ attr_accessor :pesel
9
+ validates :pesel, :presence => true, :pesel => true
10
+ end
11
+
12
+ describe PeselValidator do
13
+ before :each do
14
+ @model = PeselBastard.new
15
+ end
16
+
17
+ it "should be valid" do
18
+ @model.should_not be_valid
19
+ @model.pesel = '68041979693'
20
+ @model.should be_valid
21
+ end
22
+
23
+ it "should be invalid" do
24
+ @model.should_not be_valid
25
+ @model.pesel = '69041979693'
26
+ @model.should_not be_valid
27
+ end
28
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: valideez
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:
@@ -13,7 +13,7 @@ date: 2011-08-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70327217773920 !ruby/object:Gem::Requirement
16
+ requirement: &70186149953800 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70327217773920
24
+ version_requirements: *70186149953800
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: rake
27
- requirement: &70327217773480 !ruby/object:Gem::Requirement
27
+ requirement: &70186149953360 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70327217773480
35
+ version_requirements: *70186149953360
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: activemodel
38
- requirement: &70327217772940 !ruby/object:Gem::Requirement
38
+ requirement: &70186149952840 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,7 +43,7 @@ dependencies:
43
43
  version: 3.0.0
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70327217772940
46
+ version_requirements: *70186149952840
47
47
  description: Your favourite validations with Ruby
48
48
  email:
49
49
  - oh@zaiste.net
@@ -62,13 +62,16 @@ files:
62
62
  - lib/valideez/bastard.rb
63
63
  - lib/valideez/common.rb
64
64
  - lib/valideez/nip.rb
65
+ - lib/valideez/nip_validator.rb
65
66
  - lib/valideez/pesel.rb
66
67
  - lib/valideez/pesel_validator.rb
67
68
  - lib/valideez/phone.rb
68
69
  - lib/valideez/version.rb
69
70
  - spec/bastard_spec.rb
70
71
  - spec/nip_spec.rb
71
- - spec/polish/pesel_spec.rb
72
+ - spec/nip_validator_spec.rb
73
+ - spec/pesel_spec.rb
74
+ - spec/pesel_validator_spec.rb
72
75
  - spec/spec_helper.rb
73
76
  - valideez.gemspec
74
77
  homepage: http://dev.zaiste.net/gem/valideez
@@ -85,7 +88,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
85
88
  version: '0'
86
89
  segments:
87
90
  - 0
88
- hash: -2149050442087088595
91
+ hash: -1225042820358254434
89
92
  required_rubygems_version: !ruby/object:Gem::Requirement
90
93
  none: false
91
94
  requirements:
@@ -94,7 +97,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
94
97
  version: '0'
95
98
  segments:
96
99
  - 0
97
- hash: -2149050442087088595
100
+ hash: -1225042820358254434
98
101
  requirements: []
99
102
  rubyforge_project: valideez
100
103
  rubygems_version: 1.8.6
@@ -104,5 +107,7 @@ summary: Let's valideez lousy objects once and forever
104
107
  test_files:
105
108
  - spec/bastard_spec.rb
106
109
  - spec/nip_spec.rb
107
- - spec/polish/pesel_spec.rb
110
+ - spec/nip_validator_spec.rb
111
+ - spec/pesel_spec.rb
112
+ - spec/pesel_validator_spec.rb
108
113
  - spec/spec_helper.rb