number_plate_validator 0.1.0 → 0.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 19cf4a2dd5029cca0769ee29eba95e3acdcc5e89
4
- data.tar.gz: 0dd9d1a8a4b9849f13817bcad7a9415e7e5d1171
3
+ metadata.gz: 28c143b186ad31f5a75070038a748bb12c031fea
4
+ data.tar.gz: 3684c2428985b85bcaf6f91d798218063cac689f
5
5
  SHA512:
6
- metadata.gz: 3545dc415bd951167c621e6988d83f912e55d737f69a8a8bdd6761428745b809546502cd8cb181e62fc46643c91ec6f9120f6919218d6c015c85bebbc7dc5db9
7
- data.tar.gz: 43c00a06fb4663b4c717bb5253e89764f941632cd975ba4f8c84a95d06fb0a9680dbe7984194d8a34c9814a5d3fc91383b6c07286b6a5fd1acf2ad7cf1c515a7
6
+ metadata.gz: 52dcfe935f18eee48c9e190664c8391a9cfce94de70ce024ac20f954f105107e9b147c413897cf7090f3234dd0f1b70dbb66b84241c541a3ad367f94ac090849
7
+ data.tar.gz: 0dd935f2db1e1b59d7c7cfa05b7869cc710c4810bde5cb4470652925253ff26163c430eb2da9c7e97c3c609fc6b373e68285f71cd88546ca8ce53c146eeca225
data/README.md CHANGED
@@ -19,17 +19,34 @@ Or install it yourself as:
19
19
  $ gem install number_plate_validator
20
20
 
21
21
  ## Usage
22
+ Use standard country code to spcify the country.
22
23
 
23
- Initialize validator:
24
- validator = NumberPlateValidator.validator("SG")
24
+ ```
25
+ ##Initialize validator:
26
+ validator = NumberPlateValidator.validator("SG")
25
27
 
26
- Check if it is valid:
27
- validator.is_valid?("EJ81D")
28
- ## true
28
+ ##Check if it is valid:
29
+ validator.is_valid?("EJ81D")
30
+ #=> true
29
31
 
30
- validator.is_valid?("EJ81E")
31
- ## false
32
+ validator.is_valid?("EJ81E")
33
+ #=> false
34
+ ```
35
+
36
+ ## ActiveModel
37
+
38
+ A `NumberPlateValidator` is provided with this gem to be used with ActiveModel. You can specify the attribute with the country information with either a symbol or a Proc.
32
39
 
40
+ ```
41
+ class Vehicle < ActiveRecord::Base
42
+ validates :plate_number, number_plate: { country: "SG" } ##country is fixed to "SG"
43
+
44
+ ##or use either of the following to get the country from the attribute country_code
45
+ ##validates :plate_number, number_plate: { country: :country_code }
46
+ ##validates :plate_number, number_plate: { country Proc.new { |obj| obj.country_code } }
47
+ end
48
+
49
+ ```
33
50
  ## Development
34
51
 
35
52
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
@@ -0,0 +1,20 @@
1
+ module ActiveModel
2
+ module Validations
3
+ class NumberPlateValidator < ActiveModel::EachValidator
4
+ def validate_each(record, attribute, value)
5
+ country = case(options[:country])
6
+ when Proc
7
+ options[:country].call(record)
8
+ when Symbol
9
+ record.send(options[:country])
10
+ else
11
+ options[:country]
12
+ end
13
+
14
+ val = ::NumberPlateValidator.validator(country)
15
+
16
+ record.errors.add attribute, (options[:message] || "is not a valid number plate") unless val.is_valid?(value)
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
1
  module NumberPlateValidator
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
@@ -1,8 +1,10 @@
1
1
  require "number_plate_validator/version"
2
2
  require "active_support/inflector"
3
+ require "active_model"
3
4
  require "active_support/core_ext/string"
4
5
  require "number_plate_validator/validator"
5
6
  require "number_plate_validator/sg_validator"
7
+ require "number_plate_validator/active_model"
6
8
 
7
9
  module NumberPlateValidator
8
10
 
@@ -10,7 +10,7 @@ Gem::Specification.new do |spec|
10
10
  spec.email = ["zorro.ej@gmail.com"]
11
11
 
12
12
  spec.summary = %q{This gem validates vehicle number/license plates. }
13
- spec.description = %q{This gem allows you to validate a license plate number from a chosen country/region.}
13
+ spec.description = %q{This gem allows you to validate a license plate number from a chosen country/region. It also provides a validator for ActiveModel. It currently only supports Singapore.}
14
14
  spec.homepage = "https://github.com/ej2015/number_plate_validator.git"
15
15
  spec.license = "MIT"
16
16
 
@@ -21,8 +21,10 @@ Gem::Specification.new do |spec|
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
22
  spec.require_paths = ["lib"]
23
23
 
24
- spec.add_dependency "activesupport", "~>5.2"
24
+ spec.add_dependency "activesupport", "~>4.2"
25
+ spec.add_dependency "activemodel", "~>4.2"
25
26
  spec.add_development_dependency "bundler", "~> 1.13"
26
27
  spec.add_development_dependency "rake", "~> 10.0"
27
28
  spec.add_development_dependency "rspec", "~> 3.7"
29
+ spec.add_development_dependency "pry", "~>0.11"
28
30
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: number_plate_validator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Edgar
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-15 00:00:00.000000000 Z
11
+ date: 2018-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,14 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '4.2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '5.2'
26
+ version: '4.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: activemodel
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '4.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '4.2'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -66,8 +80,23 @@ dependencies:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
82
  version: '3.7'
83
+ - !ruby/object:Gem::Dependency
84
+ name: pry
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.11'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.11'
69
97
  description: This gem allows you to validate a license plate number from a chosen
70
- country/region.
98
+ country/region. It also provides a validator for ActiveModel. It currently only
99
+ supports Singapore.
71
100
  email:
72
101
  - zorro.ej@gmail.com
73
102
  executables: []
@@ -84,6 +113,7 @@ files:
84
113
  - bin/console
85
114
  - bin/setup
86
115
  - lib/number_plate_validator.rb
116
+ - lib/number_plate_validator/active_model.rb
87
117
  - lib/number_plate_validator/sg_validator.rb
88
118
  - lib/number_plate_validator/validator.rb
89
119
  - lib/number_plate_validator/version.rb