Class: IdValidator::Validator
- Inherits:
-
Object
- Object
- IdValidator::Validator
- Includes:
- Concern::Helper
- Defined in:
- lib/id_validator/validator.rb
Instance Method Summary collapse
-
#fake_id(eighteen = true, address = nil, birthday = nil, sex = nil) ⇒ Object
构建虚假身份证信息.
-
#get_info(id_card) ⇒ Object
获取身份证详细信息.
-
#is_valid?(id_card) ⇒ Boolean
检查身份证合法性.
-
#upgrade_id(id_card) ⇒ Object
身份证号升级(15位 升级为 18位).
Methods included from Concern::Helper
#check_address_code, #check_birthday_code, #check_is_abandoned, #check_order_code, #generate_address_code, #generate_birthday_code, #generate_check_bit, #generate_order_code, #get_address_info, #get_chinese_zodiac, #get_constellation, #get_id_argument
Instance Method Details
#fake_id(eighteen = true, address = nil, birthday = nil, sex = nil) ⇒ Object
构建虚假身份证信息
42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/id_validator/validator.rb', line 42 def fake_id(eighteen = true, address = nil, birthday = nil, sex = nil) address_code = generate_address_code(address) birthday_code = generate_birthday_code(birthday) order_code = generate_order_code(sex) return address_code + birthday_code[2..-1] + order_code unless eighteen body = address_code + birthday_code + order_code check_bit = generate_check_bit(body) body + check_bit end |
#get_info(id_card) ⇒ Object
获取身份证详细信息
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/id_validator/validator.rb', line 22 def get_info(id_card) return false unless is_valid?(id_card) code = get_id_argument(id_card) address_info = get_address_info(code[:address_code]) { address_code: code[:address_code], address: IdValidator::Concern::Func.format_address_info(address_info), abandoned: check_is_abandoned(code[:address_code]), birthday_code: IdValidator::Concern::Func.format_birthday_code(code[:birthday_code]), constellation: get_constellation(code[:birthday_code]), chinese_zodiac: get_chinese_zodiac(code[:birthday_code]), sex: code[:order_code].to_i % 2, length: code[:type], check_bit: code[:check_bit] } end |
#is_valid?(id_card) ⇒ Boolean
检查身份证合法性
6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/id_validator/validator.rb', line 6 def is_valid?(id_card) code = get_id_argument(id_card) return false unless check_address_code(code[:address_code]) return false unless check_birthday_code(code[:birthday_code]) return false unless check_order_code(code[:order_code]) return true if code[:type] == 15 check_bit = generate_check_bit(code[:body]) return false if check_bit.nil? || (code[:check_bit] != check_bit) true end |
#upgrade_id(id_card) ⇒ Object
身份证号升级(15位 升级为 18位)
56 57 58 59 60 61 62 63 |
# File 'lib/id_validator/validator.rb', line 56 def upgrade_id(id_card) return false unless (id_card.length == 15 && is_valid?(id_card)) code = get_id_argument(id_card) body = code[:address_code] + code[:birthday_code] + code[:order_code] body + generate_check_bit(body) end |