module ProductHelper

  def products
    [
      :supporter,
      :member,
      :sponsor,
      :partner
    ]
  end

  def product_value(product)
    case product.to_sym
    when :supporter
      60
    when :sponsor
      25000
    when :partner
      50000
    when :individual
      108
    else
      raise ArgumentError.new("Unknown product name #{product}")
    end
  end


  def product_duration(product)
    case product.to_sym
    when :individual
      1
    when :supporter
      12
    when :sponsor, :partner
      3
    else
      raise ArgumentError.new("Unknown product name #{product}")
    end
  end

  def product_basis(product)
    case product.to_sym
    when :supporter
      'MONTH'
    when :sponsor, :partner, :individual
      'YEAR'
    else
      raise ArgumentError.new("Unknown product name #{product}")
    end
  end

end

module ProductHelper

  def products
    [
      :supporter,
      :member,
      :sponsor,
      :partner
    ]
  end

  def product_value(product)
    case product.to_sym
    when :supporter
      60
    when :sponsor
      25000
    when :partner
      50000
    when :individual
      108
    else
      raise ArgumentError.new("Unknown product value #{product}")
    end
  end


  def product_duration(product)
    case product.to_sym
    when :individual
      1
    when :supporter
      12
    when :sponsor, :partner
      3
    else
      raise ArgumentError.new("Unknown product duration #{product}")
    end
  end

  def product_basis(product)
    case product.to_sym
    when :supporter
      'MONTH'
    when :sponsor, :partner, :individual
      'YEAR'
    else
      raise ArgumentError.new("Unknown product basis #{product}")
    end
  end

end

Change the exception description for each method
Change the exception description for each method

We can see where it came from more easily and it makes things clearer
