<commit_before>class Problem008

  def partition(number) 
    number.to_s.split('').map { |v| v.to_i }.each_cons(5).to_a
  end

  def product(number)
    partition(number).map { |a| a.inject(1) { |product,v| product * v } }
  end

  def run
     num = ('73167176531330624919225119674426574742355349194934' +
           '96983520312774506326239578318016984801869478851843' +
           '85861560789112949495459501737958331952853208805511' +
           '12540698747158523863050715693290963295227443043557' +
           '66896648950445244523161731856403098711121722383113' +
           '62229893423380308135336276614282806444486645238749' +
           '30358907296290491560440772390713810515859307960866' +
           '70172427121883998797908792274921901699720888093776' +
           '65727333001053367881220235421809751254540594752243' +
           '52584907711670556013604839586446706324415722155397' +
           '53697817977846174064955149290862569321978468622482' +
           '83972241375657056057490261407972968652414535100474' +
           '82166370484403199890008895243450658541227588666881' +
           '16427171479924442928230863465674813919123162824586' +
           '17866458359124566529476545682848912883142607690042' +
           '24219022671055626321111109370544217506941658960408' +
           '07198403850962455444362981230987879927244284909188' +
           '84580156166097919133875499200524063689912560717606' +
           '05886116467109405077541002256983155200055935729725' +
           '71636269561882670428252483600823257530420752963450').to_i
     product(num).max
 end
end

if $0 == __FILE__
  puts "Result: #{Problem008.new.run}"<commit_msg>reduced duplication and used simpler method calls<commit_after>require 'integer'

class Problem008

  def partition(number) 
    number.digits.each_cons(5).to_a
  end

  def product(number)
    partition(number).map { |a| a.reduce(1, :*) }
  end

  def run
     num = ('73167176531330624919225119674426574742355349194934' +
           '96983520312774506326239578318016984801869478851843' +
           '85861560789112949495459501737958331952853208805511' +
           '12540698747158523863050715693290963295227443043557' +
           '66896648950445244523161731856403098711121722383113' +
           '62229893423380308135336276614282806444486645238749' +
           '30358907296290491560440772390713810515859307960866' +
           '70172427121883998797908792274921901699720888093776' +
           '65727333001053367881220235421809751254540594752243' +
           '52584907711670556013604839586446706324415722155397' +
           '53697817977846174064955149290862569321978468622482' +
           '83972241375657056057490261407972968652414535100474' +
           '82166370484403199890008895243450658541227588666881' +
           '16427171479924442928230863465674813919123162824586' +
           '17866458359124566529476545682848912883142607690042' +
           '24219022671055626321111109370544217506941658960408' +
           '07198403850962455444362981230987879927244284909188' +
           '84580156166097919133875499200524063689912560717606' +
           '05886116467109405077541002256983155200055935729725' +
           '71636269561882670428252483600823257530420752963450').to_i
     product(num).max
 end
end

if $0 == __FILE__
  puts "Result: #{Problem008.new.run}"
{'fraction_non_alphanumeric': 0.06594724220623502, 'fraction_numerical': 0.604916067146283, 'mean_word_length': 4.025602409638554, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '306082', 'n_tokens_mistral': 2475, 'n_tokens_neox': 1312, 'n_words': 101}