elfproef_plan 0.0.3 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (221) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +15 -2
  3. data/app/assets/javascripts/elfproef/elfproef.coffee +40 -20
  4. data/changelog.md +7 -0
  5. data/lib/elfproef_plan/version.rb +1 -1
  6. data/lib/elfproef_plan.rb +24 -10
  7. data/test/controllers/employees_controller_test.rb +1 -1
  8. data/test/dummy/app/controllers/employees_controller.rb +1 -1
  9. data/test/dummy/app/models/employee.rb +1 -0
  10. data/test/dummy/app/views/employees/_form.html.erb +15 -2
  11. data/test/dummy/db/migrate/20151120090423_create_employees.rb +1 -0
  12. data/test/dummy/db/schema.rb +1 -0
  13. data/test/dummy/log/development.log +19 -2154
  14. data/test/dummy/log/test.log +607 -2030
  15. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-_AvU6CFx3L_v7QCyyiaC5QAjMYrttWJsS8TaWrB6X4.cache +0 -0
  16. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-_ZkBd-ibVroAVRD5Ru1KuF7qYtd1k9p8TXQGK6kPrc.cache +0 -0
  17. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-cGxP6Z3wkrEvzq8J87RiUKC7a4pi2RUSQvtmR44iL8.cache +0 -0
  18. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/-rNNHnY8ohiLHl4cgmNvP0hFDFSD3AhVb_4pP9QLGIE.cache +1 -0
  19. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0226AKcjqRFpMRPWGPSKIptJfoOIiX1ojksYqQf3mXs.cache +0 -0
  20. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/0WdiwO3VwvyRCsBnvaIEF3WXH6c3qMaLGP6EppIDr40.cache +1 -0
  21. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/14znG9lY2jCImlZKlI4iSPqDzrdIDxNNRvOeaTLEpFY.cache +0 -0
  22. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1J_sOAFLP56SnewQnQRWamlCorOyYfpEoqTT2wA23GY.cache +0 -0
  23. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1_y3GGsYOtB0Sp3psxyyiSST72HOEBEsYKUQ4AC4gR4.cache +1 -0
  24. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1gnnw4mHtmXr3hdZkjTmwPoAJi4zB0atkIX7OJRAiB0.cache +0 -0
  25. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/1sG7YXFKPvzhh1M6K9d-ANeVTI1lebJERbAisvbfeoc.cache +2 -0
  26. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/2xQqHhY-W8xNLoUR5lwxUvaFEcSXrN-P5quPB2k-EQ0.cache +0 -0
  27. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/37Fjyl3Qv0veVRSEPczXRF_IdHbliJUAgSL-VZFC3_Q.cache +1 -0
  28. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3A6tmetVXy9ALDY5LuO43Snt5e4hC5skVKZh_f4wmPI.cache +1 -0
  29. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/3Dt3SPxSoYG3xuPoBHCsXVGK7n0d1JRda-ueMRsIsqQ.cache +2 -0
  30. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4EyZKjD-XMTGdeCnJ6-NjVDcg-Zce6QeebbOiaPtVZQ.cache +1 -0
  31. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4MSaBXUbbLIznWA_if1YEMAdlx76TXqT1XGYWu01Xyw.cache +2 -0
  32. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4_rWrDcs1Z5Tx1q76ukBBVXrgPcQf8jsdAsESDiHYSE.cache +0 -0
  33. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4q-T26MEn7qtWuiiRr9mhOtzlzt1PF4bx0b_y5xwnXM.cache +0 -0
  34. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/4s_jLVISy1zUhqY2UMuDfAr5CmwDGzQjCyvdmLJufW8.cache +1 -0
  35. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5Hz1MrLVjxKWEHc7tms3tRoQYzAe_oiZ8h6apUX8QRA.cache +0 -0
  36. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +2 -0
  37. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5PnbkkqBn97KqSIUG0WV6RsNZ3Vq1g9Et6wR-i7eBc8.cache +0 -0
  38. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5PvoxN210xx7nemdtKQfnvLG9JmqwAEBMdVDR5C1OEg.cache +1 -0
  39. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/5YdKOpxBMCHP-4oFVV5Akwgw_RIb7LCme23eAveau0Q.cache +1 -0
  40. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/6NFGGn52Hdrj9PqYgdmIm_KXXHaQk7hPCHXg3ykSnIg.cache +1 -0
  41. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7ECxpBtX2gvPsVpLFLAVkxj0muz2yzYCmOhk_mwpDrY.cache +0 -0
  42. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/7cDLPTXUGZ32VF49IWsw4QKYFs5jlBaUL7uPyUII8zs.cache +2 -0
  43. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8WlvhrjNkkTQAtKZb93S-CnUNJO_CugzcWo2M6U3RYM.cache +2 -0
  44. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/8qVc85SNU0xPIjglnxbPcgnCKdQZMnUTiKenIV4WooY.cache +1 -0
  45. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/91nzLLpXwSg3shEzxbgCXvLtyvPg4TbjS9j4En710iE.cache +2 -0
  46. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/944ncfQzwY8M3pRu-BAakV40OTexuLcxkx2v94fkMfw.cache +2 -0
  47. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/9TG4O9J4EwyKkoLVQEWEFS4gHzdbulr_XdPM2wSCUOE.cache +1 -0
  48. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/B6GQNcoRWC5kyZJotfT1-aMQGUSJ76ZVHx7aWOPevlo.cache +1 -0
  49. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BFuZjKB3ebVfO7dOrM2xVIGTYJPjwrLQuwfS_Lzj8ss.cache +1 -0
  50. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/BIkTkFwZN0tIqS-IFl2uBRD_vJTKTuUiOMDFTN6JYxk.cache +2 -0
  51. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Bn6v-JeuYBWcklrEmAfnwdwv48P5Cy2-wjalgyFJYbw.cache +0 -0
  52. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Bveb-wWyu1eBu2E244QfxGLX-tAqCXTFizO2Aww7O7o.cache +0 -0
  53. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/CG6mqS9_AdVEb4P6iOpwVfP5D3k-M4iccDT8Gocahlg.cache +0 -0
  54. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ClblW8fMr_UPXmWrwqmz3fGfqkqZNlVfx3QuSxgxNVs.cache +1 -0
  55. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/D4-tttAd7OX_gewTOsBwG87AYpA689vqzSW7yor0ZBc.cache +2 -0
  56. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DWiSprTdmJSiF4eYqRLDfLfWLyF-m0Mk3TOoLQXKKW0.cache +2 -0
  57. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DmmfrCpXtt74Hr6NO54lxyOCDv6klnDyBqeDFR7oDU8.cache +2 -0
  58. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/DpJR4brKj98BSOG1YbcpRp61w7BNY7Ejsyqy6tmeffw.cache +1 -0
  59. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/EBCRKbH12UMq2Y_NW5b4xiQezbtwDTbBhp28t9twkDY.cache +0 -0
  60. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FCmKkfx3vQO2QIw5hBympNtcrFewCI3XkIHyPzQPQGk.cache +1 -0
  61. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FFbNQQArV0n_u6Gw_eD8l7btTe8m1a3D1DEd3-qgkjQ.cache +1 -0
  62. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/FoVEN81Ih-cOiN_aThU5HIkdfA9qEf3ZSvV42EJFCuw.cache +2 -0
  63. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GBy7qEbC3-IQIBvGuQNdiQQVTWGtj3G6irUK0dRn4ok.cache +1 -0
  64. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GQb24eQiypPuaSl818Z-2jvLR3fjWp30mV_gPHcEfbE.cache +2 -0
  65. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GcN7kkte7ouPzLjQjMZYdAYya8t63Ex5WfCzYFT1jeU.cache +1 -0
  66. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/GmlfrKsoMic5RDD59CO6hnf8JK7I18C3jAb_2RD_xwo.cache +1 -0
  67. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/HSkTgIBW2wC9X5rdKaoh6-g29xgyXMGb3kRNAc9d6Lk.cache +2 -0
  68. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Ho1KJe2rBf8BAOGXuAg42z4SGWxWqBp0Q2_Tt7rmwT0.cache +1 -0
  69. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Hr3dFMh7jy9uGRU_mmCbW40XSfZg96t9GTG8wSYguV0.cache +0 -0
  70. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/HyRMNlUrEfvdYO0zUYxe3zO-bDQpNRWMY2kdIFlXRAA.cache +2 -0
  71. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/I6wKvuksVL4RlSlef3vASZ69fmxcfZbRv4KO_Vs6J00.cache +1 -0
  72. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IKgPPP81PI0n7aVV0qlD_J_1KWHL0RfOFkMFD-ALvOk.cache +2 -0
  73. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IjEdGt6TOm6mgrt62xyVe3rug28xScOjvQRPefY_9TU.cache +1 -0
  74. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ImnoITXtS5vM1wnEnS3PIDujdwy0c7_9VYDyLUd078g.cache +0 -0
  75. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Ipz2S001UnAShWbp3VsgmiAoxt5GU6m_5kejnZNBfrg.cache +1 -0
  76. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/IyFtgEKpUgV6Gc5XECJCQLYC7qL1SjW_0AEx2XfjFio.cache +1 -0
  77. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Izv3eK-WV4OQeHSt-GQbfb_VGFUbPFHahvIJp0T7kGw.cache +1 -0
  78. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JCb687r0UCcnZdkMKIIDKBbp7WUoRFUbkk4AUBITFDs.cache +1 -0
  79. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/JVW1SZrGJRZH1XlDCr1SHRVk2WOZ60D8xhZ_eeadt7E.cache +0 -0
  80. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KKq00DrQKtrkGT2LpyEH-k6ek2zEc1bMIEELPzbJrcM.cache +1 -0
  81. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/KORnE1jJrqpxK3dTk42sg36yRXSaSfmgRZF2uPrsCAU.cache +1 -0
  82. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/LjYzV_ZcU4NdK7r12cndp0_iCyHczkBevPzEC6RhbmU.cache +1 -0
  83. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Lt8aa8ErKGQfTtII1mtJ0G4OFcqZnEHh8bOlY6WpeyA.cache +2 -0
  84. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/MHMfe7cj_yjOg60O-m7uNMHWRTB-IzDiVEiFeSM2nlM.cache +1 -0
  85. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/MSNGnF2BsUVzCu1yWfP6DWc8fTNeXCMeRznKyWiUo-Y.cache +1 -0
  86. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/MtgfkgJLaVoO1wqGQM7rnFbV8DNsvPighNB2a7NVBlw.cache +0 -0
  87. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NJZ8clS9fXg52QKxbQwyA0Nut6vHkHeEETuPdHkXstI.cache +2 -0
  88. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NK9BlmpMzWySu0ZmQgWJp1_2llKhFJXJb2PZLxHMGdM.cache +1 -0
  89. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NU1l3tWBWTzxMDBiL8dZaJq8vXaZ3hiwiCAv8LcyCrc.cache +1 -0
  90. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NlzlzYk3KWWJvJqNVHOdSb6fqWfg5NjbCYJps3xGCic.cache +0 -0
  91. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/NzusYd621tDIn1UokhiUdwpdp08BFGE6zH5eITLChl8.cache +1 -0
  92. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +2 -0
  93. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/POmPIRXXk4IhCN0iu2tEzG5sVT_2hh8TWWZm03d1Z7w.cache +2 -0
  94. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/PrfaI9Gje7ouDi-3sFKBqalJas0YevcDxPxiJGwOWbo.cache +1 -0
  95. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Q1MMfEOkUdOh3pAPxJxhV_S1u7FUDD_piVtKULSCk7E.cache +2 -0
  96. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Q8hPWRH2kK-MSFgJ4pDnIZYxim19e8mF9Ct4o_sF2Wk.cache +0 -0
  97. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Q9glAFeCQnI-99fPUndx9IroVaiX0RCJS5C5FqJIO2k.cache +1 -0
  98. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/QP6JhR0_sd-KfdyBKGUNDO3DDFrNbYIBr1sNg3d0D8Y.cache +1 -0
  99. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/QY3Far3cD44v8aLVjAjJJToyh6V3hXUsMq_zQeHVZ5U.cache +2 -0
  100. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/QyesNXJRBPOtHIg7WPfjOKFVc2swxOAA33mfE8CLlrE.cache +2 -0
  101. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/RRdh5X7KajVAW00GzM41VjTQzrSW9i8wZxchEnKXwF4.cache +1 -0
  102. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/S-6gdDIipQdfL0f-o4bhLg0I-_Kai2Si6ZzaK6Dm_So.cache +0 -0
  103. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SGfaX2gS62Gvwy7R0iZecn_i-ZRS-TUU59LSanyRijE.cache +0 -0
  104. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SOVuxBcjURUU8_CzoIFTQQCtcFBrN6pnYZEEO1MwYtA.cache +0 -0
  105. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SajkWAx5QCfUmwJfw0AMHlf3P2VMiCakmjUiEdphSO8.cache +2 -0
  106. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Skq87m5_DWAduRSeaid0dV2rU5TfMbH1Nhw98-e_6mg.cache +1 -0
  107. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SqL3Tv62SLo53JqShYB9PkZaH12SiTEnZzYMGNHSkiY.cache +1 -0
  108. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Sqn-ccHs5PvWZ2ZY306ot9ty54n3zOFthVaQe2bat8Q.cache +0 -0
  109. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SxDbfz9rkhNCFXuuzeq0Sakm6nvY9QYe564LU4S95RI.cache +1 -0
  110. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/SxSIPtU0b1eenYTJBCwEm1AykvYjJ1xZQ7uVWk3sFoo.cache +1 -0
  111. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TB92sVJ7HKTXG3BixW5gj_fy6C_rDe0miDdFPAEKuvc.cache +1 -0
  112. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TJV2pduHInQGJn5SkjZQgCw_ykaiMOAnMEZHjEmGozc.cache +1 -0
  113. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/TL6lLMnv2Hsm9pjNbFAJ9jBH0fLRoGLcI9ozXjI87DY.cache +0 -0
  114. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/U6pjaI1MeIVCnIDxVAzNCEqZwfPgeN4SrPZ1v1Ja8Zg.cache +0 -0
  115. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UU94CVezN_M7UlFZySmvICWHpKAVk2ZhgowPzyHgXQc.cache +0 -0
  116. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UYKE80PpghnDTFg4IfXiuS8kkUAYWZHJ8bkxLUjFmZ0.cache +2 -0
  117. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UeV5ho76S2FHkGMciBrptfaHw8h8QKThS19Y-2QKC8E.cache +1 -0
  118. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UjRbhFMVfKy505n-6s48Rw3A2dEpQJCNPADUtuIXOdw.cache +0 -0
  119. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UxxSsyREy3boweY4eXxGwJmMm30YDus8pIYd7rzFLq0.cache +2 -0
  120. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/UzRlyy8TITl_Z-CHt87urYkgWqAF8MDHG3IJHZ5GS6o.cache +1 -0
  121. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Va3v5Xk82pNj3IPBEGLkvxokc5N4gLmJQgdt7S9rWX0.cache +0 -0
  122. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/VcilynEli3H1GJv8cfR6dZGA5mteVqdKKxymH8NUmW8.cache +2 -0
  123. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/W8nqVzIhGgRtfghPNWWaXPfj8ZQATSV4lUXvP7devyQ.cache +1 -0
  124. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/WVtoZWWwofmEnVULK4VL1JeX39j2xk4j4T2NLZq-xmQ.cache +1 -0
  125. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/X3BIjyh0pE_G1vNt_C60o8ND2L5vjXL3xKDpP1rqkPA.cache +0 -0
  126. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XcjhI3r0h4RfUl25opwe3Pl1lcEhC0Q7-98uf-dWSCQ.cache +0 -0
  127. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XfXaQ6f9lcOcWYGi0YU2DhywIz-L_JjBs2auOEXGEIk.cache +1 -0
  128. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/XzByrzZKtx7Sxd_x2eRWrbfObA-ffLfbmelVf6Ln4UU.cache +1 -0
  129. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Y008MS4pWiXg-3XcQG2c40MxovW5QCJwr3sk_FK2fcE.cache +0 -0
  130. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Y2Gutqq4BlGHe61FXcrI_MZd1H1J5ef_-AT20_JnVro.cache +0 -0
  131. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YRqwDPunI48ohOi4bATHpw9cD62Yy0pbBJj8lIRyi8Y.cache +2 -0
  132. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YX3zmv91W2bhqcna6sE1WQBtg6kn-AH8MupvavEPLcU.cache +1 -0
  133. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/YcYQGWKRH1jzcdp6VfTX0NKn16Tf9uQmoazuyCM5IIE.cache +1 -0
  134. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZLCvIXbNqqsZePRXkF89d1Uib323UYXnpdUA0GXQcQQ.cache +0 -0
  135. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZNIL3qeJDjaJsLsx27KzGgBFMhcBuRXZCvTN0eoiqJo.cache +1 -0
  136. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZTUHXm5tS6LLNdXkH-fm1lfmBsCm2b2bt6V4oS2JvPc.cache +0 -0
  137. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ZhS6ePVXUGEKF4JTOn5mzkCD5Iq_sbOqlDaaxKAakMo.cache +0 -0
  138. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/Zs6YJO6bDolbr9rgXR35PTTHoqo1qTwkVQ4Bqgw8kfk.cache +2 -0
  139. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_Wcp8fHv5og43HlH3OFe8m2dB2IjBzaTfSfgueohs6w.cache +1 -0
  140. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/_tksYdMc0ni_sTwRqHq6ISpzmJ-x2gQW-Ct691IhV3o.cache +2 -0
  141. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/a9v2cZ89CS-pGEhM0wBzgR499-tZwXeF4XPe_TIY--4.cache +0 -0
  142. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/aAMf1JSqLKBlQrFNzhOJUCvDFrt-fqJJcMI233EpvPw.cache +2 -0
  143. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/avX6iQhsMU6NZAIkLAc0DoSpEFdNCJfnlbfZHWtUF-o.cache +2 -0
  144. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ayk9dCXxAhVZk6CoO1K-oZLw43Q46PYH1i0U-rvQPHk.cache +0 -0
  145. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/bsLdx9900CAhLnYlc0qBb4nqOQYFX4IDz_1Av3ncTbc.cache +1 -0
  146. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/bwugH3UTs9I9wS12bl7WzoRJd5VKgJfCVfgIbFPKuQY.cache +2 -0
  147. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/cNgysv4x4dPIzjfarCUZzjUyOX5Qxk9q8JaV9-iTYe4.cache +1 -0
  148. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/d7ZXl_ayh_WJeS8ShNhSZmRa5eXxvz0ZaroLzNqqR2E.cache +0 -0
  149. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dJqzuEywBoNnd0UdJmEnIPywFlQodyUVXX2hBofwaV0.cache +2 -0
  150. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dTdVmd5n7J_QErP9DD50NdIgfqdtPDs-Rv-SHRsF2m8.cache +2 -0
  151. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dc4OoSaXhzdfUvLkRo2zfKg6OjU8WNXxR5Gdg-DOSQI.cache +2 -0
  152. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/dfVmxWYuliKXqScs5r-PWRzwVkf-rX5SCiaNGIAr8xM.cache +1 -0
  153. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fVj-gYXtPU2oRkEOJiLKnuvy6Yf3aMIPhOXw1AAjk6s.cache +1 -0
  154. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/feEUWMZ66hsgMCUGjAHDXCLJ4be-NWPHkCQnlQb8aTE.cache +1 -0
  155. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ffuREqRJB_hTEExc2IewKPczvLuSGaIa_WDXP7u74ug.cache +1 -0
  156. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/fkzXb8qpdKarDeYAFb8Qxeess6hanpkeeBfq8wE1mjw.cache +1 -0
  157. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gE3re85tPxqFwT7cjr1xSVOeqUWNbMXFv06ApTdXoEA.cache +1 -0
  158. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/gcIYlR392iyOJ3HWVSeO93ZdD6WqjxnCQGrJunF-dcY.cache +2 -0
  159. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/h4FtjUpc6s7Sbn68VTZk800PJbDyHYNoDd2BtFLsnWY.cache +0 -0
  160. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/h5-JS-uGmtBLZFv1nlMEwPX3DzRTRN6TYEcM7d3mnu4.cache +1 -0
  161. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/h61cCukR0am2YHxHK9_uJNpLjOQ1skkWZRLNb7bsiZQ.cache +5 -0
  162. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hHqNCrmnjiG5VSUJ6od-srj43TC-DbxkYoNbI-i2bbY.cache +0 -0
  163. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hou0gmGNLrP_KbYcgW2mmU9M-4w8mx0L49TngmqJHe4.cache +0 -0
  164. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/htzfDf9_GJVKyrdf4L6UAJV5tbsS5F3kI67qq2m8jg0.cache +1 -0
  165. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hypkO8OPj2abCzhNb-We7SScpMRT-dJn_hdvlHZkIn0.cache +0 -0
  166. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/hzJXcXLhi2zCPob7RFVXbP0GohSHUxfkodI6f3izAO8.cache +2 -0
  167. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/i-Z01caEDjcNBLAIiqbFseB8MKZb6HRFHAxwHt10SG0.cache +1 -0
  168. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iQGPMMz779mTe4Kh1wP1iPwTSgKQMnnOEYPxxZwB1Ms.cache +0 -0
  169. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/iVJ1-6Do8yqB0iNhlJZ_qYZ6r-W7VpQYM4E55O-XHEs.cache +1 -0
  170. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/jt6V22IKP0aGS4N__KqSw0krnHBntO_vZ_Ib-s-uiaI.cache +0 -0
  171. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kGq_zquDnGUvFSugRTtqcYJTQx_cgn4x4cTVpXU9aFw.cache +1 -0
  172. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/kImCrCcXPE9e3gCArnqBPJ4dxgDuM9zLvEMCiMqXT80.cache +0 -0
  173. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/lSURjiW2SwWjkIc8MNXnuPO-T9_nUp3lRPZvDiKCMFY.cache +1 -0
  174. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/lbsK1lbDa_f-x-ojtM7jJsb5G_YulfhpQhGscQCc7fM.cache +0 -0
  175. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/luIGZr1KfN0bVicjQ4zOGuaycgGalf6drgpwcdo83pI.cache +1 -0
  176. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/m6b_Z03vb0U1SoSUGcA7CeC3XdlToUNNiHhFxhwUMZg.cache +2 -0
  177. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/n9CXPMAFIGaeXydlNGfujNaPP4_19uhCOvFN5NSPWx4.cache +1 -0
  178. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nOHfZCuf1u0oQZcwMZz2LwnljUo7oC4kvXYpKrjutB0.cache +1 -0
  179. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nPiK5pEKJkG0GJJk_9BnvowzlfojuhskBm4G3ik5OYA.cache +1 -0
  180. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nQv6E6XavB8gjaSfUSqvT9WYNfUrJH0JnG7iy6xtuQU.cache +0 -0
  181. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/nV2qhFfErRDNBxz3DbcHsJ4Z8NH5Hu__-tydTX5IUsQ.cache +1 -0
  182. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/ns3ULExc1xwIvUMibPlT6Oip7gtSccew5DrfQez088E.cache +1 -0
  183. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pSlquGbCv0utzYRmCshtRfZ8cU2xppXyoNPSoobVQRE.cache +1 -0
  184. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/pZ-rAaX0eCqPUdHpxXClRPIHGZOgepuHFxRcEzmlBRw.cache +1 -0
  185. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/plgrhhXIpVcxJ6HLLeiZr4IUwP5HiJe0GyjsR5Yl2Lc.cache +1 -0
  186. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/qCVonEg-KPqiMSaOfE6sKIl-E_VLE4BdsMFudAoZvg4.cache +1 -0
  187. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rJ8c2nIH_RCicRziXyrMVvkZHNAept43q5_Y2uU3Pv0.cache +0 -0
  188. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rMS1O8Ut5hREn-LdmWmnYgRAYltgBj6iSfSFM33RlnU.cache +1 -0
  189. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/rxYuMXlg8DmWohJAO-Y7Jv_zqQ-wZQbJyUUpagTFkEo.cache +1 -0
  190. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sAqDb2-X3S5C2Iasrqzp0k2qfJnoXvfzw3bmABvxjXM.cache +1 -0
  191. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sAs0PI27J4mHTB3DLjZv-T4hFlsfitJPMGnz5eipypA.cache +1 -0
  192. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sW8up_uKIG5iU-tBs_t3CijDqZ_Z_HXVnpiKApPYkCg.cache +2 -0
  193. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sWhhwzKRZ-LOFq_czd9fLyY3wqYPTIBU4mprsew_kQU.cache +1 -0
  194. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/snewcUc9lg6vRHikC0NSAQSPet-sGif9tVOsyhNRqG0.cache +2 -0
  195. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/sqLv9d8SWdg9i31SmgFMdXbTlKt_h5OmcM6ZjCuVZXA.cache +2 -0
  196. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/tSif0l81aK4Im79RtPuki5pfrnSrGMpm2maZ7vyLPu0.cache +0 -0
  197. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/tnINprdj-LokoNkTh7ZS1DOO9b8UTU6hkdiD4lvUKm0.cache +1 -0
  198. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/tqKoAfaCyGUcgxQ4UdbyA3XDnriEsmN6r5i56X5JEm4.cache +1 -0
  199. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/twFLiBQ2Qy0S3NZd3Jq0WpbZLsg7cmYRcFOrVx_p62M.cache +2 -0
  200. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/u58PtCpj5n1XDMpdniHdzEREaPjwxyeDdxCs93ao7_Y.cache +1 -0
  201. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/u6wfKibkIgy2S36HjeaPtqb5jS3f58bZORKbB21j41g.cache +1 -0
  202. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/u95gD_8Z0y2pm3C2I2Miq6Fv-B1r4rnEIjZ-CiIu3Fc.cache +1 -0
  203. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/uIiqG1ZNzPcIRAPJxfYjCJ89LPCvYrCYPFn-_aTn_Xc.cache +2 -0
  204. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vW5Wd3NyDEUvdgeacKW-Y1eW8FkNOHdTRlesg58mfN4.cache +2 -0
  205. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/veol_8kMILCsgCsuW45jO-UmTcD0ijYRecOaEYEQOUk.cache +1 -0
  206. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/vtw8qNEc0NWGvI12AWe4tPsxeODYTy9OrHbb7JXJnbA.cache +0 -0
  207. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/wBDMGjGUFRje418J8H3cP4BoWROWSFBoxSO2Cmpy_LY.cache +144 -0
  208. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/xq_c-rZ0u5uh7nEZr29gk-cCIcmqiu88KAAGgKNaI_Y.cache +1 -0
  209. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yKZY9YHWVrhaUYfY4X9qPaXLWHj1lOzdwmFE4dnENPo.cache +1 -0
  210. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yPER8_7QriteWFOjMmPmyoh007GZD20OtyaxcpNaG_Y.cache +1 -0
  211. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yXRhmp0UKIeUi4epJRHF2-NSOzDvzHDgGczh1vZyunc.cache +2 -0
  212. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/y_bDQeA6jMx5uHPMh0DGo6FkVa4aFHFFtKsEpBjY08w.cache +2 -0
  213. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/yqvViqDozfWLu24Dm0JB8zXstJGF4S0LuRPvFkv7yDQ.cache +0 -0
  214. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zQ6HV0eUQ7KvqVaJ5XJnI8d6Vsgi6_NTBusoO7hCSu0.cache +1 -0
  215. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zTywwIGVsrIqVSOMUOLFDjv4PF-sIExkBvDpidIwBns.cache +1 -0
  216. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zVgVv8Gh85TW7Y2MRYXZvKcBYPInfjWIgcBzjxeE_jU.cache +2 -0
  217. data/test/dummy/tmp/cache/assets/test/sprockets/v3.0/zxM3usleoqpUzNC9hN_wV1ihbtWuBiV-5eN5u6sZapk.cache +2 -0
  218. data/test/elfproef_plan_test.rb +35 -0
  219. data/test/fixtures/employees.yml +17 -1
  220. data/test/models/employee_test.rb +1 -1
  221. metadata +408 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: dfa42898abc518152edf4d21d68563d115d4ba3d
4
- data.tar.gz: 963091a87ae309ab00cf3939c5c1db8036322c98
3
+ metadata.gz: 4dfdc682e9684ec384b703d01f9823a7855881de
4
+ data.tar.gz: b12c78ac361810acf0fd4ea6dd39ea383659a2e4
5
5
  SHA512:
6
- metadata.gz: 9c70fc800482e850f8bd6af88d22f743094557a70f4dcdec74642557f372c90799b1bf09808b0975957d100792eb7c2537d02f96b67263acfc35bca532035e1b
7
- data.tar.gz: 9f967e3e0e2ca7bc9f88c9ca2072c2ec84b43301136f5c6584b3b17af1db3311fc69012f7a1e2699b9d4aac4135cd5cc3ed4563d3dd58f6a4c62a480543ad13b
6
+ metadata.gz: d34ae2dc02729a19b5339e506253617870d1d975b6c19978a8506892890fa7152009e01d3769a6fc73d212d8048848bc4ec4b747ce6e45837986848586361594
7
+ data.tar.gz: 38906aa608e5a06188665918519c4a0d225b7dd2d9946e2c539241bedea764d22ba53bd32330a115d25dd6575ec0ebeeade3fc7e2475ca1d0857cdf9dd15a5f7
data/README.md CHANGED
@@ -69,10 +69,21 @@ or optional
69
69
  validates :my_attribute_name, rekeningnummer: {message: "this message overrides the default"}
70
70
  ```
71
71
 
72
+
73
+ ```ruby
74
+ validates :my_attribute_name, loonheffingennummer: true
75
+ ```
76
+ or optional
77
+
78
+ ```ruby
79
+ validates :my_attribute_name, loonheffingennummer: {message: "this message overrides the default"}
80
+ ```
81
+
72
82
  it will handle validations just like rails does with other validations.
73
83
 
74
84
  the rekening-validation just validates the plain, old accountnumber. Validation of BIC-code is yet to be implemented.
75
85
 
86
+
76
87
  ## elfproef.js.coffee
77
88
 
78
89
  ElfProef takes an value, and validates the given number/string.
@@ -81,8 +92,10 @@ ElfProef takes an value, and validates the given number/string.
81
92
 
82
93
  * it calls ElfProef.new(@value).validRek() to check a bank-account-number
83
94
 
84
- To use these client-side checks, just add a class "checkMyBsn" or "checkMyRekening" to your input-field.
85
- Add a div with class "rekening_message" or "bsn_message" to yout form to display the returned message.
95
+ * it calls ElfProef.new(@value).validLoonheffingennummer() to check a tax-number
96
+
97
+ To use these client-side checks, just add a class "checkMyBsn","checkMyRekening" or "checkMyLoonheffing" to your input-field.
98
+ Add a div with class "rekening_message", "bsn_message" or "loonheffing_message" to your form to display the returned message.
86
99
 
87
100
 
88
101
  The code can be included by requiring elfproef_plan, or just the elfproef-file:
@@ -1,8 +1,7 @@
1
1
  class ElfProef
2
- constructor: (nr) ->
3
- @nr = nr.toString().match(/[\d+$]/g)
2
+ constructor: (input) ->
4
3
  @nrs = [2..9].reverse()
5
- @str = @nr.join('')
4
+ [@match, @nummer, @letter, @subnummer] = input.toString().match(/[0-9a-z]/gi).join("").toUpperCase().match(/([0-9]*)([A-Z]*)([0-9]*)/i)
6
5
 
7
6
  elfproef: (a) ->
8
7
  @nrs.push(a)
@@ -13,19 +12,30 @@ class ElfProef
13
12
  som % 11 == 0 && som>0
14
13
 
15
14
  validBsn: () ->
15
+ @nr = @nummer.match(/./g)
16
16
  return false if @nr.length > 9
17
- while @nr.length < 9
18
- @nr.unshift(0)
17
+ @nr.unshift(0) while @nr.length < 9
19
18
 
20
19
  @elfproef(-1)
21
20
 
22
21
  validRekening: () ->
22
+ @nr = @nummer.match(/./g)
23
23
  return false unless @nr.length in [9,10]
24
- if @nr.length==10
25
- @nrs.unshift 10
26
-
24
+ @nrs.unshift 10 if @nr.length==10
25
+
27
26
  @elfproef(1)
28
27
 
28
+ validLoonheffingennummer: () ->
29
+ @nr = @nummer.match(/./g)
30
+ check = true
31
+ check = false unless @validBsn()
32
+ check = false unless @letter == "L"
33
+ check = false unless @subnummer && @subnummer.length==2
34
+ check = false unless @subnummer && @subnummer.match(/./g).reduce (a,b) -> parseInt(a) + parseInt(b) > 0
35
+ check
36
+
37
+
38
+
29
39
 
30
40
  zip = () ->
31
41
  lengthArray = (arr.length for arr in arguments)
@@ -36,22 +46,32 @@ zip = () ->
36
46
 
37
47
  $ ->
38
48
  $(document).on 'blur', '.checkMyBsn', ->
39
- bsn = new ElfProef(@value)
40
- if bsn.validBsn()
41
- $(".checkMyBsn").val(bsn.str)
42
- $(".bsn_message").text("ok")
43
- else
44
- $(".bsn_message").text("geen geldig bsn-nummer")
49
+ if @value
50
+ e = new ElfProef(@value)
51
+ if e.validBsn()
52
+ $(".checkMyBsn").val(e.nummer)
53
+ $(".bsn_message").text("ok")
54
+ else
55
+ $(".bsn_message").text("geen geldig bsn-nummer")
45
56
 
46
57
  $(document).on 'blur', '.checkMyRekening', ->
47
- rek = new ElfProef(@value)
48
- if rek.validRekening()
49
- $(".checkMyRekening").val(rek.str)
50
- $(".rekening_message").text("ok")
51
- else
52
- $(".rekening_message").text("geen geldig rekening-nummer")
58
+ if @value
59
+ e = new ElfProef(@value)
60
+ if e.validRekening()
61
+ $(".checkMyRekening").val(e.match)
62
+ $(".rekening_message").text("ok")
63
+ else
64
+ $(".rekening_message").text("geen geldig rekening-nummer")
53
65
 
54
66
 
67
+ $(document).on 'blur', '.checkMyLoonheffing', ->
68
+ if @value
69
+ e = new ElfProef(@value)
70
+ if e.validLoonheffingennummer()
71
+ $(".checkMyLoonheffing").val(e.match)
72
+ $(".loonheffing_message").text("ok")
73
+ else
74
+ $(".loonheffing_message").text("geen geldig loonheffingen-nummer") if @value
55
75
 
56
76
  root = exports ? window
57
77
  root.ElfProef = ElfProef
data/changelog.md CHANGED
@@ -1,3 +1,10 @@
1
+ ###### 0.0.5
2
+ removed .ds_store-files from repo
3
+ ###### 0.0.4
4
+ added validation for dutch tax-number
5
+ refactored ElfProef
6
+ refactored RexEx functions
7
+
1
8
  ###### 0.0.3
2
9
  start logging changes
3
10
 
@@ -1,3 +1,3 @@
1
1
  module ElfproefPlan
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.5"
3
3
  end
data/lib/elfproef_plan.rb CHANGED
@@ -13,41 +13,55 @@ require "elfproef_plan/engine"
13
13
  end
14
14
  end
15
15
 
16
+ class LoonheffingennummerValidator < ActiveModel::EachValidator
17
+
18
+ def validate_each(record,attribute,value)
19
+ record.errors.add(attribute, options[:message] || "ongeldig loonheffingennummer nr", options) unless ElfproefPlan::ElfProef.new(value).validLoonheffingennummer
20
+ end
21
+ end
22
+
16
23
  module ElfproefPlan
17
24
  class ElfProef
18
- attr_accessor :nr, :nrs
25
+ attr_accessor :nr, :nrs, :letter, :subnr
19
26
 
20
- def initialize(nr)
21
- @nr = nr.to_s.scan(/./).map{|x| x.to_i} if nr.to_s.scan(/[\d+$]/)==nr.to_s.scan(/./)
27
+ def initialize(input)
22
28
  @nrs = (2..9).to_a.reverse
29
+
30
+ @nr, @letter, @subnr = input.to_s.scan(/[0-9a-zA-Z+$]/).join().upcase().match(/([0-9]*)([A-Z]*)([0-9]*)/i).captures.map{|x| x.scan(/./)}
31
+ @nr, @subnr = @nr.map{|x| x.to_i}, @subnr.map{|x| x.to_i}
32
+
23
33
  end
24
34
 
25
35
  def validRekening
26
- return false unless @nr
27
36
  return false unless [9, 10].include? @nr.length
28
- nrs.unshift 10 if @nr.length == 10
37
+ @nrs.unshift 10 if @nr.length == 10
29
38
  elfproef(1)
30
39
  end
31
40
 
32
41
  def validBsn
33
- return false unless @nr
34
42
  return false if @nr.length > 9
35
43
  @nr.unshift 0 while @nr.length < 9
36
44
  return false if @nr[0,3].sum < 1
37
45
  elfproef(-1)
38
46
  end
39
47
 
48
+ def validLoonheffingennummer
49
+ return false unless validBsn
50
+ return false unless @letter==["L"]
51
+ return false unless @subnr.reduce(:+)>0
52
+ true
53
+
54
+ end
55
+
40
56
  private
41
57
 
42
58
 
43
59
 
44
60
  def elfproef(b)
45
-
46
- som=0
47
-
48
61
  @nrs.push b
49
62
  reeks = @nr.zip(@nrs)
50
- reeks.each{|x| som+= x[0]*x[1]}
63
+ @nrs.pop
64
+ som = reeks.inject(0){|som, x| som + (x[0]*x[1]) }
51
65
  som.remainder(11)==0 && som>0
52
66
 
53
67
  end
@@ -20,7 +20,7 @@ class EmployeesControllerTest < ActionController::TestCase
20
20
  test "should create employee" do
21
21
  assert_difference('Employee.count') do
22
22
 
23
- post :create, employee: { name: @employee.name, number: @employee.number , accountnumber: @employee.accountnumber}
23
+ post :create, employee: { name: @employee.name, number: @employee.number , accountnumber: @employee.accountnumber , taxnumber: '123456782L01'}
24
24
 
25
25
  end
26
26
 
@@ -53,6 +53,6 @@ class EmployeesController < ApplicationController
53
53
 
54
54
  # Only allow a trusted parameter "white list" through.
55
55
  def employee_params
56
- params.require(:employee).permit(:name, :number, :accountnumber)
56
+ params.require(:employee).permit(:name, :number, :accountnumber, :taxnumber)
57
57
  end
58
58
  end
@@ -2,4 +2,5 @@ class Employee < ActiveRecord::Base
2
2
  validates :number, bsn: {message: "mijn boodschapje"}
3
3
  validates :name, length: {minimum: 5}
4
4
  validates :accountnumber, rekening: true
5
+ validates :taxnumber, loonheffingennummer: true
5
6
  end
@@ -20,15 +20,28 @@
20
20
  <%= f.text_field :number , class: 'checkMyBsn'%>
21
21
 
22
22
  </div>
23
- <div class = "bsn_message"></div>
23
+ <div class = "bsn_message"> </div>
24
24
 
25
25
  <div class="field">
26
26
  <%= f.label :accountnumber %><br>
27
27
  <%= f.text_field :accountnumber , class: 'checkMyRekening'%>
28
28
 
29
29
  </div>
30
- <div class = "rekening_message"></div>
30
+
31
+ <div class = "rekening_message"> </div>
32
+
33
+
34
+
35
+
36
+ <div class="field">
37
+ <%= f.label :taxnumber %><br>
38
+ <%= f.text_field :taxnumber , class: 'checkMyLoonheffing'%>
39
+
40
+ </div>
41
+ <div class = "loonheffing_message"> </div>
42
+
31
43
  <div class="actions">
32
44
  <%= f.submit %>
33
45
  </div>
46
+
34
47
  <% end %>
@@ -4,6 +4,7 @@ class CreateEmployees < ActiveRecord::Migration
4
4
  t.string :name
5
5
  t.integer :number
6
6
  t.integer :accountnumber
7
+ t.string :taxnumber
7
8
 
8
9
  t.timestamps null: false
9
10
  end
@@ -17,6 +17,7 @@ ActiveRecord::Schema.define(version: 20151120090423) do
17
17
  t.string "name", limit: 255
18
18
  t.integer "number", limit: 4
19
19
  t.integer "accountnumber", limit: 4
20
+ t.string "taxnumber", limit: 255
20
21
  t.datetime "created_at", null: false
21
22
  t.datetime "updated_at", null: false
22
23
  end