activepesel 0.1.1 → 0.2.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.
Files changed (74) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -18
  3. data/.rspec +1 -0
  4. data/.rubocop.yml +176 -0
  5. data/CHANGELOG.md +7 -0
  6. data/Gemfile +8 -2
  7. data/MIT-LICENSE +1 -1
  8. data/README.md +30 -18
  9. data/Rakefile +1 -38
  10. data/activepesel.gemspec +15 -15
  11. data/lib/active_model/validations/pesel_validator.rb +5 -3
  12. data/lib/activepesel/personal_data.rb +23 -18
  13. data/lib/activepesel/pesel.rb +22 -19
  14. data/lib/activepesel/pesel_attr.rb +5 -8
  15. data/lib/activepesel/pesel_generator.rb +47 -28
  16. data/lib/activepesel/version.rb +3 -1
  17. data/lib/activepesel.rb +8 -1
  18. data/media/id.jpg +0 -0
  19. data/spec/activepesel/pesel_attr_spec.rb +28 -0
  20. data/spec/activepesel/pesel_generator_spec.rb +70 -0
  21. data/spec/activepesel/pesel_spec.rb +98 -0
  22. data/spec/spec_helper.rb +23 -0
  23. metadata +27 -135
  24. data/.rvmrc +0 -1
  25. data/Gemfile.lock +0 -94
  26. data/lib/tasks/activepesel_tasks.rake +0 -4
  27. data/test/activepesel_test.rb +0 -7
  28. data/test/dummy/README.rdoc +0 -261
  29. data/test/dummy/Rakefile +0 -7
  30. data/test/dummy/app/assets/javascripts/application.js +0 -13
  31. data/test/dummy/app/assets/stylesheets/application.css +0 -13
  32. data/test/dummy/app/controllers/application_controller.rb +0 -3
  33. data/test/dummy/app/helpers/application_helper.rb +0 -2
  34. data/test/dummy/app/mailers/.gitkeep +0 -0
  35. data/test/dummy/app/models/#user.rb# +0 -9
  36. data/test/dummy/app/models/.gitkeep +0 -0
  37. data/test/dummy/app/models/user.rb +0 -9
  38. data/test/dummy/app/views/layouts/application.html.erb +0 -14
  39. data/test/dummy/config/application.rb +0 -65
  40. data/test/dummy/config/boot.rb +0 -10
  41. data/test/dummy/config/database.yml +0 -25
  42. data/test/dummy/config/environment.rb +0 -5
  43. data/test/dummy/config/environments/development.rb +0 -37
  44. data/test/dummy/config/environments/production.rb +0 -67
  45. data/test/dummy/config/environments/test.rb +0 -37
  46. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  47. data/test/dummy/config/initializers/inflections.rb +0 -15
  48. data/test/dummy/config/initializers/mime_types.rb +0 -5
  49. data/test/dummy/config/initializers/secret_token.rb +0 -7
  50. data/test/dummy/config/initializers/session_store.rb +0 -8
  51. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  52. data/test/dummy/config/locales/en.yml +0 -5
  53. data/test/dummy/config/routes.rb +0 -58
  54. data/test/dummy/config.ru +0 -4
  55. data/test/dummy/db/development.sqlite3 +0 -0
  56. data/test/dummy/db/migrate/20121114223156_create_users.rb +0 -10
  57. data/test/dummy/db/schema.rb +0 -23
  58. data/test/dummy/db/test.sqlite3 +0 -0
  59. data/test/dummy/lib/assets/.gitkeep +0 -0
  60. data/test/dummy/log/.gitkeep +0 -0
  61. data/test/dummy/log/development.log +0 -96
  62. data/test/dummy/log/test.log +0 -12541
  63. data/test/dummy/public/404.html +0 -26
  64. data/test/dummy/public/422.html +0 -26
  65. data/test/dummy/public/500.html +0 -25
  66. data/test/dummy/public/favicon.ico +0 -0
  67. data/test/dummy/script/rails +0 -6
  68. data/test/dummy/test/fixtures/users.yml +0 -37
  69. data/test/dummy/test/unit/user_test.rb +0 -7
  70. data/test/pesel_attr_test.rb +0 -62
  71. data/test/pesel_generator_test.rb +0 -46
  72. data/test/pesel_test.rb +0 -66
  73. data/test/pesel_validator_test.rb +0 -29
  74. data/test/test_helper.rb +0 -15
@@ -1,26 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>The page you were looking for doesn't exist (404)</title>
5
- <style type="text/css">
6
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
- div.dialog {
8
- width: 25em;
9
- padding: 0 4em;
10
- margin: 4em auto 0 auto;
11
- border: 1px solid #ccc;
12
- border-right-color: #999;
13
- border-bottom-color: #999;
14
- }
15
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <!-- This file lives in public/404.html -->
21
- <div class="dialog">
22
- <h1>The page you were looking for doesn't exist.</h1>
23
- <p>You may have mistyped the address or the page may have moved.</p>
24
- </div>
25
- </body>
26
- </html>
@@ -1,26 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>The change you wanted was rejected (422)</title>
5
- <style type="text/css">
6
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
- div.dialog {
8
- width: 25em;
9
- padding: 0 4em;
10
- margin: 4em auto 0 auto;
11
- border: 1px solid #ccc;
12
- border-right-color: #999;
13
- border-bottom-color: #999;
14
- }
15
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <!-- This file lives in public/422.html -->
21
- <div class="dialog">
22
- <h1>The change you wanted was rejected.</h1>
23
- <p>Maybe you tried to change something you didn't have access to.</p>
24
- </div>
25
- </body>
26
- </html>
@@ -1,25 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>We're sorry, but something went wrong (500)</title>
5
- <style type="text/css">
6
- body { background-color: #fff; color: #666; text-align: center; font-family: arial, sans-serif; }
7
- div.dialog {
8
- width: 25em;
9
- padding: 0 4em;
10
- margin: 4em auto 0 auto;
11
- border: 1px solid #ccc;
12
- border-right-color: #999;
13
- border-bottom-color: #999;
14
- }
15
- h1 { font-size: 100%; color: #f00; line-height: 1.5em; }
16
- </style>
17
- </head>
18
-
19
- <body>
20
- <!-- This file lives in public/500.html -->
21
- <div class="dialog">
22
- <h1>We're sorry, but something went wrong.</h1>
23
- </div>
24
- </body>
25
- </html>
File without changes
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
-
4
- APP_PATH = File.expand_path('../../config/application', __FILE__)
5
- require File.expand_path('../../config/boot', __FILE__)
6
- require 'rails/commands'
@@ -1,37 +0,0 @@
1
- # Read about fixtures at http://api.rubyonrails.org/classes/ActiveRecord/Fixtures.html
2
-
3
- valid:
4
- mums_pesel: "84051902641"
5
- dads_pesel: "82060202039"
6
-
7
- invalid:
8
- mums_pesel: "yupikayay"
9
- dads_pesel: "foobarfoo"
10
-
11
- invalid_numbers:
12
- mums_pesel: "12345678901"
13
- dads_pesel: "01234567890"
14
-
15
- blank:
16
- mums_pesel: ""
17
- dads_pesel:
18
-
19
- 18xx:
20
- mums_pesel: "01852014407"
21
- dads_pesel: "01852092911"
22
-
23
- 19xx:
24
- mums_pesel: "84051902641"
25
- dads_pesel: "82060202039"
26
-
27
- 20xx:
28
- mums_pesel: "10240428209"
29
- dads_pesel: "10240474019"
30
-
31
- 21xx:
32
- mums_pesel: "34433088405"
33
- dads_pesel: "34433013812"
34
-
35
- 22xx:
36
- mums_pesel: "22682152604"
37
- dads_pesel: "22682168115"
@@ -1,7 +0,0 @@
1
- require 'test_helper'
2
-
3
- class UserTest < ActiveSupport::TestCase
4
- # test "the truth" do
5
- # assert true
6
- # end
7
- end
@@ -1,62 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PeselAttrTest < ActiveSupport::TestCase
4
-
5
- fixtures :users
6
-
7
- test "User object should respond to pesel_personal_data and return a PersonalData object" do
8
- assert_kind_of Activepesel::PersonalData, users(:valid).mums_pesel_personal_data
9
- end
10
-
11
- test "Invalid pesel should get nil date_of_birth and sex=9 (ISO/IEC 5218)" do
12
- assert_equal nil, users("invalid").dads_pesel_personal_data.date_of_birth
13
- assert_equal nil, users("invalid").mums_pesel_personal_data.date_of_birth
14
- assert_equal 9, users("invalid").dads_pesel_personal_data.sex
15
- assert_equal 9, users("invalid").mums_pesel_personal_data.sex
16
- assert_equal nil, users("invalid_numbers").dads_pesel_personal_data.date_of_birth
17
- assert_equal nil, users("invalid_numbers").mums_pesel_personal_data.date_of_birth
18
- assert_equal 9, users("invalid_numbers").dads_pesel_personal_data.sex
19
- assert_equal 9, users("invalid_numbers").mums_pesel_personal_data.sex
20
- end
21
-
22
- test "Should get proper personal data for 18XX" do
23
- assert_equal Date.new(1801, 5, 20), users("18xx").dads_pesel_personal_data.date_of_birth
24
- assert_equal 1, users("18xx").dads_pesel_personal_data.sex
25
- assert_equal Date.new(1801, 5, 20), users("18xx").mums_pesel_personal_data.date_of_birth
26
- assert_equal 2, users("18xx").mums_pesel_personal_data.sex
27
- end
28
-
29
- test "Should get proper personal data for 19XX" do
30
- assert_equal Date.new(1982, 6, 2), users("19xx").dads_pesel_personal_data.date_of_birth
31
- assert_equal 1, users("19xx").dads_pesel_personal_data.sex
32
- assert_equal Date.new(1984, 5, 19), users("19xx").mums_pesel_personal_data.date_of_birth
33
- assert_equal 2, users("19xx").mums_pesel_personal_data.sex
34
- end
35
-
36
- test "Should get proper personal data for 20XX" do
37
- assert_equal Date.new(2010, 4, 4), users("20xx").dads_pesel_personal_data.date_of_birth
38
- assert_equal 1, users("20xx").dads_pesel_personal_data.sex
39
- assert_equal Date.new(2010, 4, 4), users("20xx").mums_pesel_personal_data.date_of_birth
40
- assert_equal 2, users("20xx").mums_pesel_personal_data.sex
41
- end
42
-
43
- test "Should get proper personal data for 21XX" do
44
- assert_equal Date.new(2134, 3, 30), users("21xx").dads_pesel_personal_data.date_of_birth
45
- assert_equal 1, users("21xx").dads_pesel_personal_data.sex
46
- assert_equal Date.new(2134, 3, 30), users("21xx").mums_pesel_personal_data.date_of_birth
47
- assert_equal 2, users("21xx").mums_pesel_personal_data.sex
48
- end
49
-
50
- test "Should get proper personal data for 22XX" do
51
- assert_equal Date.new(2222, 8, 21), users("22xx").dads_pesel_personal_data.date_of_birth
52
- assert_equal 1, users("22xx").dads_pesel_personal_data.sex
53
- assert_equal Date.new(2222, 8, 21), users("22xx").mums_pesel_personal_data.date_of_birth
54
- assert_equal 2, users("22xx").mums_pesel_personal_data.sex
55
- end
56
-
57
- test "Personal data should be nil for nil Pesel attributes" do
58
- user = User.create(:mums_pesel => nil)
59
- assert_equal nil, user.mums_pesel_personal_data
60
- end
61
-
62
- end
@@ -1,46 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PeselGeneratorTest < ActiveSupport::TestCase
4
-
5
- test "PeselGenerator.generate with wrong args should raise a ArgumentError" do
6
- assert_raise ArgumentError, "Bad argument! You can pass :all or :one" do
7
- Activepesel::PeselGenerator.generate :foo, :sex =>1, :date_of_birth => Date.new(1982,6,2)
8
- end
9
- end
10
-
11
- test "PeselGenerator.generate with wrong date should raise a ArgumentError" do
12
- assert_raise ArgumentError, "Date of birth can only be from range: (1800-01-01..2299-12-31)" do
13
- Activepesel::PeselGenerator.generate :foo, :sex =>333, :date_of_birth => Date.new(1982,6,2)
14
- end
15
- end
16
-
17
- test "PeselGenerator.generate with wrong sex should raise a ArgumentError" do
18
- assert_raise ArgumentError, "Sex can only be set to 1 - males and 2 - females" do
19
- Activepesel::PeselGenerator.generate :foo, :sex =>333, :date_of_birth => Date.new(1982,6,2)
20
- end
21
- end
22
-
23
- test "PeselGenerator should generate valid pesel for 18XX's" do
24
- assert_equal true, Activepesel::PeselGenerator.generate(:one, :sex =>1, :date_of_birth => Date.new(1807,2,15)).valid?
25
- end
26
-
27
- test "PeselGenerator should generate valid pesel for 19XX's" do
28
- assert_equal true, Activepesel::PeselGenerator.generate(:one, :sex =>1, :date_of_birth => Date.new(1907,2,15)).valid?
29
- end
30
-
31
- test "PeselGenerator should generate valid pesel for 20XX's" do
32
- assert_equal true, Activepesel::PeselGenerator.generate(:one, :sex =>1, :date_of_birth => Date.new(2007,2,15)).valid?
33
- end
34
-
35
- test "PeselGenerator should generate valid pesel for 21XX's" do
36
- assert_equal true, Activepesel::PeselGenerator.generate(:one, :sex =>1, :date_of_birth => Date.new(2107,2,15)).valid?
37
- end
38
-
39
- test "PeselGenerator should generate valid pesel for 22XX's" do
40
- assert_equal true, Activepesel::PeselGenerator.generate(:one, :sex =>1, :date_of_birth => Date.new(2207,2,15)).valid?
41
- end
42
-
43
-
44
-
45
-
46
- end
data/test/pesel_test.rb DELETED
@@ -1,66 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PeselTest < ActiveSupport::TestCase
4
-
5
- test "valid? should return false for invalid pesel" do
6
- assert_equal false, Activepesel::Pesel.new("12345678901").valid?
7
- end
8
-
9
- test "valid? should return true for valid pesel" do
10
- assert_equal true, Activepesel::Pesel.new("82060202039").valid?
11
- end
12
-
13
- test "valid? should return false for a tricky one" do
14
- assert_equal false, Activepesel::Pesel.new("82c60202039").valid?
15
- end
16
-
17
- test "Personal data should give 1982.06.02 as date of birth and 1 as sex (male)" do
18
- assert_equal Date.new(1982,6,2), Activepesel::Pesel.new("82060202039").personal_data.date_of_birth
19
- assert_equal 1, Activepesel::Pesel.new("82060202039").personal_data.sex
20
- assert_equal 2, Activepesel::Pesel.new("84051902641").personal_data.sex
21
- end
22
-
23
- test "Delegation of personal_data attributes" do
24
- assert_equal Date.new(1982,6,2), Activepesel::Pesel.new("82060202039").date_of_birth
25
- assert_equal 1, Activepesel::Pesel.new("82060202039").sex
26
- end
27
-
28
- test "Personal data should give NIL as date of birth and 9 (ISO/IEC 5218) as sex (unknown) for a invalid pesel" do
29
- assert_equal nil, Activepesel::Pesel.new("123123").personal_data.date_of_birth
30
- assert_equal 9, Activepesel::Pesel.new("123123").personal_data.sex
31
- end
32
-
33
- test "Pesel.generate :all should return 5000 valid male pesel numbers" do
34
- pesels = Activepesel::Pesel.generate(:all, :sex => 1, :date_of_birth => Date.new(1982,6,2))
35
- assert_equal 5000, pesels.size
36
- assert_equal true, !pesels.map(&:valid?).include?(false)
37
- assert_equal nil, pesels.map(&:sex).detect{|t| t!=1}
38
- assert_equal nil, pesels.map(&:date_of_birth).detect{|t| t!=Date.new(1982,6,2)}
39
- end
40
-
41
- test "Pesel.generate :all should return 5000 valid female pesel numbers" do
42
- pesels = Activepesel::Pesel.generate(:all, :sex => 2, :date_of_birth => Date.new(1982,6,2))
43
- assert_equal 5000, pesels.size
44
- assert_equal true, !pesels.map(&:valid?).include?(false)
45
- assert_equal nil, pesels.map(&:sex).detect{|t| t!=2}
46
- assert_equal nil, pesels.map(&:date_of_birth).detect{|t| t!=Date.new(1982,6,2)}
47
- end
48
-
49
- test "Pesel.generate :one should return one male randomly picked from the pesel pool pesel number" do
50
- pesel = Activepesel::Pesel.generate(:one, :sex => 1, :date_of_birth => Date.new(1982,6,2))
51
- assert_equal true, pesel.valid?
52
- assert_equal 1, pesel.sex
53
- assert_equal Date.new(1982,6,2), pesel.date_of_birth
54
- end
55
-
56
- test "Pesel.generate :one should return one female randomly picked from the pesel pool pesel number" do
57
- pesel = Activepesel::Pesel.generate(:one, :sex => 2, :date_of_birth => Date.new(1982,6,2))
58
- assert_equal true, pesel.valid?
59
- assert_equal 2, pesel.sex
60
- assert_equal Date.new(1982,6,2), pesel.date_of_birth
61
- end
62
-
63
-
64
-
65
-
66
- end
@@ -1,29 +0,0 @@
1
- require 'test_helper'
2
- class PeselValidatorTest < ActiveSupport::TestCase
3
-
4
- fixtures :users
5
-
6
- test "Record should be invalid" do
7
- assert_equal false, users('invalid').valid?
8
- assert_equal false, users('invalid_numbers').valid?
9
- end
10
-
11
- test "Record should have an error_message" do
12
- user = users('invalid')
13
- user.valid?
14
- assert_equal ["is invalid"], user.errors[:dads_pesel]
15
- end
16
-
17
- test "Record should be valid" do
18
- assert_equal true, users('18xx').valid?
19
- assert_equal true, users('19xx').valid?
20
- assert_equal true, users('20xx').valid?
21
- assert_equal true, users('21xx').valid?
22
- assert_equal true, users('22xx').valid?
23
- end
24
-
25
- test "Record with blank pesel should be valid" do
26
- assert_equal true, users('blank').valid?
27
- end
28
-
29
- end
data/test/test_helper.rb DELETED
@@ -1,15 +0,0 @@
1
- # Configure Rails Environment
2
- ENV["RAILS_ENV"] = "test"
3
-
4
- require File.expand_path("../dummy/config/environment.rb", __FILE__)
5
- require "rails/test_help"
6
-
7
- Rails.backtrace_cleaner.remove_silencers!
8
-
9
- # Load support files
10
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
11
-
12
- # Load fixtures from the engine
13
- if ActiveSupport::TestCase.method_defined?(:fixture_path=)
14
- ActiveSupport::TestCase.fixture_path = File.expand_path("../dummy/test/fixtures", __FILE__)
15
- end