lib/rumanu/helpers.rb in rumanu-0.11.1 vs lib/rumanu/helpers.rb in rumanu-0.15.0

- old
+ new

@@ -1,32 +1,25 @@ +# frozen_string_literal: true + require 'date' module Rumanu - def digit_sum(n) - cum = n.digits.sum - cum = digit_sum(cum) unless cum.to_s.length == 1 - return cum + return 0 if n.zero? + + 1 + (n - 1) % 9 end - def reduce_list(l,alphabet) - init = 0 - l.each do |c| - alphabet.each do |k,v| - init += v if c == k - end - end - digit_sum(init) + def reduce_list(lst, alphabet) + digit_sum(lst.map { |value| alphabet[value] }.compact.sum) end def valid_date?(str) - valid_formats = [/\d{2}\.\d{2}\.\d{4}/, /\d{2}\/\d{2}\/\d{4}/, /\d{2}-\d{2}-\d{4}/, /\d{4}-\d{2}-\d{2}/] - check_format = valid_formats.map { |f| f.match?(str) && 1 || 0}.reduce(0,:+) - raise ArgumentError.new("Incorrect date format") if check_format.zero? + valid_formats = [/\d{2}\.\d{2}\.\d{4}/, %r{\d{2}/\d{2}/\d{4}}, /\d{2}-\d{2}-\d{4}/, /\d{4}-\d{2}-\d{2}/] + check_format = valid_formats.map { |f| f.match?(str) && 1 || 0 }.reduce(0, :+) + raise ArgumentError, 'Incorrect date format' if check_format.zero? end def valid_hash?(h) - raise ArgumentError.new("Object must me a Hash") unless h.is_a? Hash - raise ArgumentError.new("Hash can not be empty") unless h.empty? true - + raise ArgumentError, 'Object must me a Hash' unless h.is_a? Hash + raise ArgumentError, 'Hash can not be empty' unless h.empty? true end - end