Sha256: 55f0bdb9bf32b29758bd21360571782b2faae52f78ece8aab739fde35a489c26

Contents?: true

Size: 742 Bytes

Versions: 53

Compression:

Stored size: 742 Bytes

Contents

require "digest"

module Helper
  class RrnHelper
    class RrnNotValid < StandardError
    end
    VALID_RRN = "^(\\d{4}-){4}\\d{4}$".freeze

    def self.normalise_rrn_format(rrn)
      # Strip surrounding whitespace
      rrn = rrn.strip

      # Remove all hyphens
      rrn = rrn.tr("-", "")
      raise RrnNotValid unless rrn.length == 20

      # Add a hyphen every four characters to give desired RRN format
      rrn = rrn.scan(/.{1,4}/).join("-")
      raise RrnNotValid unless Regexp.new(VALID_RRN).match(rrn)

      rrn
    end

    def self.hash_rrn(rrn)
      rrn_array = rrn.split("-")
      rrn_array.unshift(rrn_array.last)
      rrn_array << rrn_array[1]
      Digest::SHA256.hexdigest rrn_array.join("-")
    end
  end
end

Version data entries

53 entries across 53 versions & 1 rubygems

Version Path
epb_view_models-1.1.2 lib/helper/rrn_helper.rb
epb_view_models-1.1.1 lib/helper/rrn_helper.rb
epb_view_models-1.1.0 lib/helper/rrn_helper.rb
epb_view_models-1.0.29 lib/helper/rrn_helper.rb
epb_view_models-1.0.28 lib/helper/rrn_helper.rb
epb_view_models-1.0.27 lib/helper/rrn_helper.rb
epb_view_models-1.0.26 lib/helper/rrn_helper.rb
epb_view_models-1.0.25 lib/helper/rrn_helper.rb
epb_view_models-1.0.24 lib/helper/rrn_helper.rb
epb_view_models-1.0.23 lib/helper/rrn_helper.rb
epb_view_models-1.0.22 lib/helper/rrn_helper.rb
epb_view_models-1.0.21 lib/helper/rrn_helper.rb
epb_view_models-1.0.20 lib/helper/rrn_helper.rb
epb_view_models-1.0.19 lib/helper/rrn_helper.rb
epb_view_models-1.0.18 lib/helper/rrn_helper.rb
epb_view_models-1.0.17 lib/helper/rrn_helper.rb
epb_view_models-1.0.16 lib/helper/rrn_helper.rb
epb_view_models-1.0.15 lib/helper/rrn_helper.rb
epb_view_models-1.0.14 lib/helper/rrn_helper.rb
epb_view_models-1.0.13 lib/helper/rrn_helper.rb