egn 1.0.0 → 1.1.0
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 +7 -0
- data/README.md +12 -9
- data/Rakefile +17 -0
- data/lib/egn/egn.rb +4 -0
- data/lib/egn/version.rb +1 -1
- data/spec/egn/egn_spec.rb +22 -2
- metadata +18 -34
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 8b592e6bdef03c4501e6ded89bcb6a5189c74653
|
4
|
+
data.tar.gz: be42449680d204b7498944fb1a4ce5c67a3e8375
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: de32cb6efa8e5636232a318277ea58d00d1042bfe8da6ff818974f2799b4b5af1aebef926b29d65bd64e80baf2e66e01095c1c76fadfa1897b7a23ae623c701b
|
7
|
+
data.tar.gz: 633fdd168f71d7619ce2d17122c1172f051d72e6e82e38119b538cd43c11ce45f91464facf256b5d2560a63e0681465175dadd83aa516821b4541b6ee7b4fd67
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
[](https://codeclimate.com/github/gmitrev/egn)
|
4
4
|
# Egn
|
5
5
|
|
6
|
-
EGN(ЕГН) is the national identification number of Bulgarian citizens. This gem
|
6
|
+
EGN(ЕГН) is the national identification number of Bulgarian citizens. This gem
|
7
7
|
provides ways to generate, validate and parse any given valid number for
|
8
8
|
information.
|
9
9
|
|
@@ -28,35 +28,38 @@ Or install it yourself as:
|
|
28
28
|
# Quickly generate a random number
|
29
29
|
Egn.generate
|
30
30
|
# => "6101047500"
|
31
|
-
|
31
|
+
|
32
32
|
# Validate a given number
|
33
33
|
Egn.validate("6101047500")
|
34
34
|
# => true
|
35
|
-
|
35
|
+
|
36
36
|
# Create an new EGN object with a random number
|
37
37
|
egn = Egn::Egn.new
|
38
38
|
# => 9212094524
|
39
39
|
|
40
40
|
# OR generate EGN for a specific date
|
41
|
-
egn = Egn::Egn.new({year: 1945, month: 5, day: 8})
|
41
|
+
egn = Egn::Egn.new({year: 1945, month: 5, day: 8})
|
42
42
|
# => 4505085346
|
43
|
-
|
43
|
+
|
44
44
|
# OR parse an existing one
|
45
45
|
egn = Egn.parse("6101047500")
|
46
46
|
# => 6101047500
|
47
|
-
|
47
|
+
|
48
48
|
egn.birth_date
|
49
49
|
# => #<Date: 1961-01-04 ((2437304j,0s,0n),+0s,2299161j)>
|
50
|
-
|
50
|
+
|
51
51
|
egn.year
|
52
52
|
# => 1961
|
53
|
-
|
54
|
-
egn.month
|
53
|
+
|
54
|
+
egn.month
|
55
55
|
# => 1
|
56
56
|
|
57
57
|
egn.day
|
58
58
|
# => 10
|
59
59
|
|
60
|
+
egn.sex
|
61
|
+
# => :male
|
62
|
+
|
60
63
|
egn.valid?
|
61
64
|
# => true
|
62
65
|
|
data/Rakefile
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
require "bundler/gem_tasks"
|
2
2
|
|
3
|
+
require 'rake'
|
4
|
+
|
3
5
|
require 'coveralls/rake/task'
|
4
6
|
Coveralls::RakeTask.new
|
5
7
|
task :test_with_coveralls => [:spec, :features, 'coveralls:push']
|
8
|
+
|
9
|
+
require 'rspec/core'
|
10
|
+
require 'rspec/core/rake_task'
|
11
|
+
|
12
|
+
RSpec::Core::RakeTask.new(:spec) { |spec| spec.pattern = FileList['spec/**/*_spec.rb'] }
|
13
|
+
|
14
|
+
task default: :spec
|
15
|
+
|
16
|
+
task :console do
|
17
|
+
require 'irb'
|
18
|
+
require 'irb/completion'
|
19
|
+
require 'egn' # You know what to do.
|
20
|
+
ARGV.clear
|
21
|
+
IRB.start
|
22
|
+
end
|
data/lib/egn/egn.rb
CHANGED
data/lib/egn/version.rb
CHANGED
data/spec/egn/egn_spec.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require 'spec_helper'
|
1
|
+
require 'spec_helper'
|
2
2
|
|
3
3
|
describe "Egn" do
|
4
4
|
|
@@ -32,7 +32,7 @@ describe "Egn" do
|
|
32
32
|
|
33
33
|
it "returns a new Egn object if the provided EGN is valid" do
|
34
34
|
egn = Egn::Egn.new('6101047500')
|
35
|
-
|
35
|
+
|
36
36
|
expect(egn).to be_valid
|
37
37
|
end
|
38
38
|
|
@@ -81,5 +81,25 @@ describe "Egn" do
|
|
81
81
|
|
82
82
|
describe 'parsing'
|
83
83
|
|
84
|
+
describe 'sex' do
|
85
|
+
|
86
|
+
# Female
|
87
|
+
%w(4702054631 5202079211 8012304154 9506062719 9308110830).each do |female_egn|
|
88
|
+
it "works for female with egn #{female_egn}" do
|
89
|
+
egn = Egn::Egn.new(female_egn)
|
90
|
+
expect(egn.sex).to eq :female
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
# Male
|
95
|
+
%w(0612318303 4310093863 4903195863 6109226225 9805316300).each do |male_egn|
|
96
|
+
it "works for male with egn #{male_egn}" do
|
97
|
+
egn = Egn::Egn.new(male_egn)
|
98
|
+
expect(egn.sex).to eq :male
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
end
|
103
|
+
|
84
104
|
end
|
85
105
|
|
metadata
CHANGED
@@ -1,78 +1,69 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: egn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- gmitrev
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2014-
|
11
|
+
date: 2014-10-28 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: bundler
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '1.3'
|
22
20
|
type: :development
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- - ~>
|
24
|
+
- - "~>"
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '1.3'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: rake
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - ">="
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :development
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - ">="
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
46
41
|
- !ruby/object:Gem::Dependency
|
47
42
|
name: rspec
|
48
43
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
44
|
requirements:
|
51
|
-
- - ~>
|
45
|
+
- - "~>"
|
52
46
|
- !ruby/object:Gem::Version
|
53
47
|
version: '2.6'
|
54
48
|
type: :development
|
55
49
|
prerelease: false
|
56
50
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
51
|
requirements:
|
59
|
-
- - ~>
|
52
|
+
- - "~>"
|
60
53
|
- !ruby/object:Gem::Version
|
61
54
|
version: '2.6'
|
62
55
|
- !ruby/object:Gem::Dependency
|
63
56
|
name: coveralls
|
64
57
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
58
|
requirements:
|
67
|
-
- -
|
59
|
+
- - ">="
|
68
60
|
- !ruby/object:Gem::Version
|
69
61
|
version: '0'
|
70
62
|
type: :development
|
71
63
|
prerelease: false
|
72
64
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
65
|
requirements:
|
75
|
-
- -
|
66
|
+
- - ">="
|
76
67
|
- !ruby/object:Gem::Version
|
77
68
|
version: '0'
|
78
69
|
description: Generator, validator and info parser for EGN numbers
|
@@ -82,9 +73,9 @@ executables: []
|
|
82
73
|
extensions: []
|
83
74
|
extra_rdoc_files: []
|
84
75
|
files:
|
85
|
-
- .gitignore
|
86
|
-
- .rspec
|
87
|
-
- .travis.yml
|
76
|
+
- ".gitignore"
|
77
|
+
- ".rspec"
|
78
|
+
- ".travis.yml"
|
88
79
|
- Gemfile
|
89
80
|
- LICENSE
|
90
81
|
- README.md
|
@@ -105,33 +96,26 @@ files:
|
|
105
96
|
homepage: https://github.com/gmitrev/egn
|
106
97
|
licenses:
|
107
98
|
- MIT
|
99
|
+
metadata: {}
|
108
100
|
post_install_message:
|
109
101
|
rdoc_options: []
|
110
102
|
require_paths:
|
111
103
|
- lib
|
112
104
|
required_ruby_version: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
105
|
requirements:
|
115
|
-
- -
|
106
|
+
- - ">="
|
116
107
|
- !ruby/object:Gem::Version
|
117
108
|
version: '0'
|
118
|
-
segments:
|
119
|
-
- 0
|
120
|
-
hash: 3961938268472800387
|
121
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
122
|
-
none: false
|
123
110
|
requirements:
|
124
|
-
- -
|
111
|
+
- - ">="
|
125
112
|
- !ruby/object:Gem::Version
|
126
113
|
version: '0'
|
127
|
-
segments:
|
128
|
-
- 0
|
129
|
-
hash: 3961938268472800387
|
130
114
|
requirements: []
|
131
115
|
rubyforge_project:
|
132
|
-
rubygems_version:
|
116
|
+
rubygems_version: 2.2.2
|
133
117
|
signing_key:
|
134
|
-
specification_version:
|
118
|
+
specification_version: 4
|
135
119
|
summary: An easy way to generate and validate EGN numbers and parse them for useful
|
136
120
|
information
|
137
121
|
test_files:
|