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 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: