activepesel 0.0.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.
Files changed (63) hide show
  1. data/.gitignore +21 -0
  2. data/.rvmrc +1 -0
  3. data/Gemfile +4 -0
  4. data/Gemfile.lock +94 -0
  5. data/MIT-LICENSE +20 -0
  6. data/README.md +59 -0
  7. data/Rakefile +38 -0
  8. data/activepesel.gemspec +23 -0
  9. data/lib/active_model/validations/pesel_validator.rb +11 -0
  10. data/lib/activepesel/personal_data.rb +64 -0
  11. data/lib/activepesel/pesel.rb +31 -0
  12. data/lib/activepesel/pesel_attr.rb +20 -0
  13. data/lib/activepesel/version.rb +3 -0
  14. data/lib/activepesel.rb +7 -0
  15. data/lib/tasks/activepesel_tasks.rake +4 -0
  16. data/test/activepesel_test.rb +7 -0
  17. data/test/dummy/README.rdoc +261 -0
  18. data/test/dummy/Rakefile +7 -0
  19. data/test/dummy/app/assets/javascripts/application.js +13 -0
  20. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  21. data/test/dummy/app/controllers/application_controller.rb +3 -0
  22. data/test/dummy/app/helpers/application_helper.rb +2 -0
  23. data/test/dummy/app/mailers/.gitkeep +0 -0
  24. data/test/dummy/app/models/#user.rb# +9 -0
  25. data/test/dummy/app/models/.gitkeep +0 -0
  26. data/test/dummy/app/models/user.rb +9 -0
  27. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  28. data/test/dummy/config/application.rb +65 -0
  29. data/test/dummy/config/boot.rb +10 -0
  30. data/test/dummy/config/database.yml +25 -0
  31. data/test/dummy/config/environment.rb +5 -0
  32. data/test/dummy/config/environments/development.rb +37 -0
  33. data/test/dummy/config/environments/production.rb +67 -0
  34. data/test/dummy/config/environments/test.rb +37 -0
  35. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  36. data/test/dummy/config/initializers/inflections.rb +15 -0
  37. data/test/dummy/config/initializers/mime_types.rb +5 -0
  38. data/test/dummy/config/initializers/secret_token.rb +7 -0
  39. data/test/dummy/config/initializers/session_store.rb +8 -0
  40. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  41. data/test/dummy/config/locales/en.yml +5 -0
  42. data/test/dummy/config/routes.rb +58 -0
  43. data/test/dummy/config.ru +4 -0
  44. data/test/dummy/db/development.sqlite3 +0 -0
  45. data/test/dummy/db/migrate/20121114223156_create_users.rb +10 -0
  46. data/test/dummy/db/schema.rb +23 -0
  47. data/test/dummy/db/test.sqlite3 +0 -0
  48. data/test/dummy/lib/assets/.gitkeep +0 -0
  49. data/test/dummy/log/.gitkeep +0 -0
  50. data/test/dummy/log/development.log +33 -0
  51. data/test/dummy/log/test.log +4221 -0
  52. data/test/dummy/public/404.html +26 -0
  53. data/test/dummy/public/422.html +26 -0
  54. data/test/dummy/public/500.html +25 -0
  55. data/test/dummy/public/favicon.ico +0 -0
  56. data/test/dummy/script/rails +6 -0
  57. data/test/dummy/test/fixtures/users.yml +37 -0
  58. data/test/dummy/test/unit/user_test.rb +7 -0
  59. data/test/pesel_attr_test.rb +57 -0
  60. data/test/pesel_test.rb +28 -0
  61. data/test/pesel_validator_test.rb +29 -0
  62. data/test/test_helper.rb +15 -0
  63. metadata +184 -0
@@ -0,0 +1,26 @@
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>
@@ -0,0 +1,26 @@
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>
@@ -0,0 +1,25 @@
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
@@ -0,0 +1,6 @@
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'
@@ -0,0 +1,37 @@
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"
@@ -0,0 +1,7 @@
1
+ require 'test_helper'
2
+
3
+ class UserTest < ActiveSupport::TestCase
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
@@ -0,0 +1,57 @@
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
+ end
@@ -0,0 +1,28 @@
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").get_personal_data.date_of_birth
19
+ assert_equal 1, Activepesel::Pesel.new("82060202039").get_personal_data.sex
20
+ end
21
+
22
+ test "Personal data should give NIL as date of birth and 9 (ISO/IEC 5218) as sex (unknown) for a invalid pesel" do
23
+ assert_equal nil, Activepesel::Pesel.new("123123").get_personal_data.date_of_birth
24
+ assert_equal 9, Activepesel::Pesel.new("123123").get_personal_data.sex
25
+ end
26
+
27
+
28
+ end
@@ -0,0 +1,29 @@
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
@@ -0,0 +1,15 @@
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
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: activepesel
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - voytee
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-11-15 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rails
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 3.2.9
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 3.2.9
30
+ - !ruby/object:Gem::Dependency
31
+ name: sqlite3
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: A simple, ORM agnostic, Ruby 1.9 compatible PESEL (polish personal id
47
+ number) validator and personal data extractor for Rails 3, based on ActiveModel.
48
+ email:
49
+ - wpasternak@gmail.com
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - .rvmrc
56
+ - Gemfile
57
+ - Gemfile.lock
58
+ - MIT-LICENSE
59
+ - README.md
60
+ - Rakefile
61
+ - activepesel.gemspec
62
+ - lib/active_model/validations/pesel_validator.rb
63
+ - lib/activepesel.rb
64
+ - lib/activepesel/personal_data.rb
65
+ - lib/activepesel/pesel.rb
66
+ - lib/activepesel/pesel_attr.rb
67
+ - lib/activepesel/version.rb
68
+ - lib/tasks/activepesel_tasks.rake
69
+ - test/activepesel_test.rb
70
+ - test/dummy/README.rdoc
71
+ - test/dummy/Rakefile
72
+ - test/dummy/app/assets/javascripts/application.js
73
+ - test/dummy/app/assets/stylesheets/application.css
74
+ - test/dummy/app/controllers/application_controller.rb
75
+ - test/dummy/app/helpers/application_helper.rb
76
+ - test/dummy/app/mailers/.gitkeep
77
+ - test/dummy/app/models/.gitkeep
78
+ - test/dummy/app/models/user.rb
79
+ - test/dummy/app/views/layouts/application.html.erb
80
+ - test/dummy/config.ru
81
+ - test/dummy/config/application.rb
82
+ - test/dummy/config/boot.rb
83
+ - test/dummy/config/database.yml
84
+ - test/dummy/config/environment.rb
85
+ - test/dummy/config/environments/development.rb
86
+ - test/dummy/config/environments/production.rb
87
+ - test/dummy/config/environments/test.rb
88
+ - test/dummy/config/initializers/backtrace_silencers.rb
89
+ - test/dummy/config/initializers/inflections.rb
90
+ - test/dummy/config/initializers/mime_types.rb
91
+ - test/dummy/config/initializers/secret_token.rb
92
+ - test/dummy/config/initializers/session_store.rb
93
+ - test/dummy/config/initializers/wrap_parameters.rb
94
+ - test/dummy/config/locales/en.yml
95
+ - test/dummy/config/routes.rb
96
+ - test/dummy/db/migrate/20121114223156_create_users.rb
97
+ - test/dummy/db/schema.rb
98
+ - test/dummy/lib/assets/.gitkeep
99
+ - test/dummy/log/.gitkeep
100
+ - test/dummy/public/404.html
101
+ - test/dummy/public/422.html
102
+ - test/dummy/public/500.html
103
+ - test/dummy/public/favicon.ico
104
+ - test/dummy/script/rails
105
+ - test/dummy/test/fixtures/users.yml
106
+ - test/dummy/test/unit/user_test.rb
107
+ - test/pesel_attr_test.rb
108
+ - test/pesel_test.rb
109
+ - test/pesel_validator_test.rb
110
+ - test/test_helper.rb
111
+ - test/dummy/app/models/#user.rb#
112
+ - test/dummy/db/development.sqlite3
113
+ - test/dummy/db/test.sqlite3
114
+ - test/dummy/log/development.log
115
+ - test/dummy/log/test.log
116
+ homepage: http://github.com/voytee/activepesel
117
+ licenses: []
118
+ post_install_message:
119
+ rdoc_options: []
120
+ require_paths:
121
+ - lib
122
+ required_ruby_version: !ruby/object:Gem::Requirement
123
+ none: false
124
+ requirements:
125
+ - - ! '>='
126
+ - !ruby/object:Gem::Version
127
+ version: '0'
128
+ required_rubygems_version: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 1.8.24
137
+ signing_key:
138
+ specification_version: 3
139
+ summary: A simple, ORM agnostic, Ruby 1.9 compatible PESEL validator and personal
140
+ data extractor for Rails 3, based on ActiveModel.
141
+ test_files:
142
+ - test/activepesel_test.rb
143
+ - test/dummy/app/assets/javascripts/application.js
144
+ - test/dummy/app/assets/stylesheets/application.css
145
+ - test/dummy/app/controllers/application_controller.rb
146
+ - test/dummy/app/helpers/application_helper.rb
147
+ - test/dummy/app/models/#user.rb#
148
+ - test/dummy/app/models/user.rb
149
+ - test/dummy/app/views/layouts/application.html.erb
150
+ - test/dummy/config/application.rb
151
+ - test/dummy/config/boot.rb
152
+ - test/dummy/config/database.yml
153
+ - test/dummy/config/environment.rb
154
+ - test/dummy/config/environments/development.rb
155
+ - test/dummy/config/environments/production.rb
156
+ - test/dummy/config/environments/test.rb
157
+ - test/dummy/config/initializers/backtrace_silencers.rb
158
+ - test/dummy/config/initializers/inflections.rb
159
+ - test/dummy/config/initializers/mime_types.rb
160
+ - test/dummy/config/initializers/secret_token.rb
161
+ - test/dummy/config/initializers/session_store.rb
162
+ - test/dummy/config/initializers/wrap_parameters.rb
163
+ - test/dummy/config/locales/en.yml
164
+ - test/dummy/config/routes.rb
165
+ - test/dummy/config.ru
166
+ - test/dummy/db/development.sqlite3
167
+ - test/dummy/db/migrate/20121114223156_create_users.rb
168
+ - test/dummy/db/schema.rb
169
+ - test/dummy/db/test.sqlite3
170
+ - test/dummy/log/development.log
171
+ - test/dummy/log/test.log
172
+ - test/dummy/public/404.html
173
+ - test/dummy/public/422.html
174
+ - test/dummy/public/500.html
175
+ - test/dummy/public/favicon.ico
176
+ - test/dummy/Rakefile
177
+ - test/dummy/README.rdoc
178
+ - test/dummy/script/rails
179
+ - test/dummy/test/fixtures/users.yml
180
+ - test/dummy/test/unit/user_test.rb
181
+ - test/pesel_attr_test.rb
182
+ - test/pesel_test.rb
183
+ - test/pesel_validator_test.rb
184
+ - test/test_helper.rb