Sha256: 55f0bdb9bf32b29758bd21360571782b2faae52f78ece8aab739fde35a489c26

Contents?: true

Size: 742 Bytes

Versions: 49

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

49 entries across 49 versions & 1 rubygems

Version Path
epb_view_models-2.0.7 lib/helper/rrn_helper.rb
epb_view_models-2.0.6 lib/helper/rrn_helper.rb
epb_view_models-2.0.5 lib/helper/rrn_helper.rb
epb_view_models-2.0.4 lib/helper/rrn_helper.rb
epb_view_models-2.0.3 lib/helper/rrn_helper.rb
epb_view_models-2.0.2 lib/helper/rrn_helper.rb
epb_view_models-2.0.1 lib/helper/rrn_helper.rb
epb_view_models-2.0.0 lib/helper/rrn_helper.rb
epb_view_models-1.2.3 lib/helper/rrn_helper.rb
epb_view_models-1.2.2 lib/helper/rrn_helper.rb
epb_view_models-1.2.1 lib/helper/rrn_helper.rb
epb_view_models-1.2.0 lib/helper/rrn_helper.rb
epb_view_models-1.1.6 lib/helper/rrn_helper.rb
epb_view_models-1.1.5 lib/helper/rrn_helper.rb
epb_view_models-1.1.4 lib/helper/rrn_helper.rb
epb_view_models-1.1.3 lib/helper/rrn_helper.rb
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