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