From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on dcvr.yhbt.net X-Spam-Level: X-Spam-ASN: AS3215 2.6.0.0/16 X-Spam-Status: No, score=-3.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS shortcircuit=no autolearn=ham autolearn_force=no version=3.4.0 Received: from mail-ua0-x232.google.com (mail-ua0-x232.google.com [IPv6:2607:f8b0:400c:c08::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by dcvr.yhbt.net (Postfix) with ESMTPS id CA1E11F404; Wed, 27 Dec 2017 19:06:45 +0000 (UTC) Received: by mail-ua0-x232.google.com with SMTP id k4so6254609ual.11; Wed, 27 Dec 2017 11:06:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=HZ5F7RxXWgx6RSyVOAf1l93R9FFLNM0NN61HzZ7lD1A=; b=FDph1KJ3VzREXmRci1FF+wrb96S5pn7FtpstDlGscDp05HYNG30ap/SM0o7e1I9cSG mz2KxspPiNEWZbBBz8AN0ohFVRsvrdZVlbF/Tdwjbojmr4rN81zZPnjvkFepx9EXlqQJ er2QSSwU5dn8m66bSltVC8eGebl17Bu/eg4682Gs/J9ziRqwacOR+KqAOnygj9gcThBy 4XxUBGuYD0KJ1Q/Z6gvP9bWiGnrEHgY4q3stkfhuwjOJclS4nvmXC521dUzz4CAsSYRv ESRi+kcRq3HRM0FxZiy/KJP4+cahWbkuIUJdu47RZ65+nONfbnrQi98v03GViueIfjjQ PAww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=HZ5F7RxXWgx6RSyVOAf1l93R9FFLNM0NN61HzZ7lD1A=; b=XrDjPL/8/PJykDt4ZF18xyIf6+t/lOpOGqEb5Hraa83L02NFAF2IQ9+xw54MyUVr+q svsW8lhjDwOg5nkqLZnKwPycU2Q+CLhz93+rLSiWkCY9+VTENvv+kQ5k5EqHIV6trZa5 XIF3YfzVw7Z3+YIO4kwEngiuvZ3rNKfMwi2c9AYBNmvbQ0IsvfOD+OD234sZkcXmlstP uiwvvE3FqCUL3i3nGuwOjBoKGbJi7v72W9Y6uKZQHZN1OyjIb9cmbM629fPBez/VBB6q 6TOA/OitTmunMPs9iM5HHA8Ni8yM0vRWf02F+eaKo3IWiwMMUpbk1TxyEguO0kZwyKuO 6ytw== X-Gm-Message-State: AKGB3mLCF/Tka/pZp+/kNQfupW0nl5DbaHIqTacAyyF7djZjjSjNuiWA TL31INMTU9RJ6M8iMiuZpCfEWsrth9m6PBXOChM= X-Google-Smtp-Source: ACJfBos0E9rNKlvPW6XKp2cXuWzbOcigobISVHe3d7TzO+35raBi8L/47P/Go+qwjObhxforGVJWepLGdzZPLYuX2FY= X-Received: by 10.176.74.3 with SMTP id q3mr9691900uae.162.1514401604498; Wed, 27 Dec 2017 11:06:44 -0800 (PST) MIME-Version: 1.0 Received: by 10.159.37.35 with HTTP; Wed, 27 Dec 2017 11:06:04 -0800 (PST) In-Reply-To: <20171227180157.GA10868@starla> References: <20171227180157.GA10868@starla> From: Dimid Duchovny Date: Wed, 27 Dec 2017 21:06:04 +0200 Message-ID: Subject: Re: library usage To: Eric Wong Cc: msgthr-public@80x24.org Content-Type: text/plain; charset="UTF-8" List-Id: 2017-12-27 20:01 GMT+02:00 Eric Wong : > Dimid Duchovny wrote: >> Hello, >> >> I've tried to use the library with a simple example, 2 messages where >> one is a reply to the other: >> require 'msgthr' >> m1 = {id: 1, subject: 's1'} >> m2 = {id: 2, subject: 're: s1'} >> msgthr = Msgthr.new >> msgthr.add 1, nil, m1 >> msgthr.add 2, [1], m2 >> msgthr.thread! > > msgthr.order! { |_| } # noop sort, necessary to flatten internal structures > >> msgthr.walk_thread do |level, container, index| >> msg = container.msg >> subject = msg ? msg[:subject] : "[missing: <#{container.mid}>]" >> indent = ' ' * level >> printf("#{indent} % 3d. %s\n", index, subject) >> end >> >> Which fails with: >> msgthr.rb:9:in `block in
': undefined method `msg' for >> # (NoMethodError) >> >> Am I missing something? > > Oops, i guess the documentation is currently wrong in that > order! is not optional. But a noop block passed to order! > should work for now. > > I will make it optional for the next release, and probably > allow the proc as an arg to thread! to simplify the API. > > Thanks for the report and sorry for the breakage! Thank you for the quick reply. IMHO, the best option would be indeed to add an optional proc to thread! . If nil, it would be equivalent to the noop order!.