egn 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
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
  [![Code Climate](https://codeclimate.com/github/gmitrev/egn.png)](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
@@ -43,6 +43,10 @@ module Egn
43
43
  @birth_date.year
44
44
  end
45
45
 
46
+ def sex
47
+ number[8,1].to_i.even? ? :male : :female
48
+ end
49
+
46
50
  def to_s
47
51
  @number
48
52
  end
data/lib/egn/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Egn
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
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.0.0
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-04-06 00:00:00.000000000 Z
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: 1.8.23
116
+ rubygems_version: 2.2.2
133
117
  signing_key:
134
- specification_version: 3
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: