ruby-core@ruby-lang.org archive (unofficial mirror)
 help / color / mirror / Atom feed
From: "Алдан Муханов via ruby-core" <ruby-core@ml.ruby-lang.org>
To: Ruby developers <ruby-core@ml.ruby-lang.org>
Cc: "Алдан Муханов" <alekseipriklonov@gmail.com>
Subject: [ruby-core:114941] Re: [Ruby master Feature#18915] New error class: NotImplementedYetError or scope change for NotImplementedError
Date: Mon, 2 Oct 2023 21:00:18 +0600	[thread overview]
Message-ID: <CAPQb+-+LXuYtZvrzcTc0yRNymZmgD-zXPzKnZ5U67faKp5v8wQ@mail.gmail.com> (raw)
In-Reply-To: <redmine.journal-104812.20231002131233.14023@ruby-lang.org>


[-- Attachment #1.1: Type: text/plain, Size: 3308 bytes --]

🙂👍

пн, 2 окт. 2023 г. в 19:12, zdennis (Zach Dennis) via ruby-core <
ruby-core@ml.ruby-lang.org>:

> Issue #18915 has been updated by zdennis (Zach Dennis).
>
> File not-implemented-error-docs.patch added
>
> Whoops, last patch upload failed. Patch actually applied here.
>
> ----------------------------------------
> Feature #18915: New error class: NotImplementedYetError or scope change
> for NotImplementedError
> https://bugs.ruby-lang.org/issues/18915#change-104812
>
> * Author: Quintasan (Michał Zając)
> * Status: Open
> * Priority: Normal
> ----------------------------------------
> # Abstract
>
> Introduce `NotImplementedYetError` exception that should be used in case
> when the codepath has not been implemented by the developer for some reason
> (maybe they're designing an abstract class or are designing some sort of
> interface to reuse later on) OR extend the meaning of `NotImplementedError`
> to cover those usecases so we don't have to introduce another exception
>
> # Background
>
> `NotImplementedError` is supposed to be raised `if the underlying
> operating system or Ruby runtime does not support them` (
> https://ruby-doc.org/core-3.1.2/NotImplementedError.html)
>
> However it appears that many people are misusing this exception by raising
> this in a superclass from which they later inherit from. I do realize that
> Ruby promotes duck-typing (the default RuboCop style guide has a cop for
> this – https://github.com/rubocop/ruby-style-guide#duck-typing). However
> I have seen this being discussed numerous times:
>
> * https://github.com/rubocop/ruby-style-guide/issues/458
> * http://chrisstump.online/2016/03/23/stop-abusing-notimplementederror/
> *
> https://oleg0potapov.medium.com/ruby-notimplementederror-dont-use-it-dff1fd7228e5
> * https://gitlab.com/gitlab-org/gitlab/-/issues/354314 (which I'm the
> author of)
> * https://github.com/rmosolgo/graphql-ruby/issues/2067 (here the author
> actually confused it with Python's `NotImplementedError`)
> *
> https://stackoverflow.com/questions/13668068/how-to-signal-not-implemented-yet
>
> # Proposal
>
> Create `NotImplementedYetError` exception
>
> OR
>
> Allow raising `NotImplementedError` in cases other than OS or Ruby runtime
> incompatibilities
>
> # Evaluation
>
> ### Add `NotImplementedYetError`
>
> I think a new exception is a better idea than changing the usage of an
> existing one just because "everyone is using it". That said it would
> require people to refactor their code which might prevent wider adoption of
> the new exception.
>
> ### Change scope of `NotImplementedError`
>
> This would require the least amount of changes possible (only a
> documentation change) and I believe there would be no compatibility
> problems whatsoever.
>
> ---Files--------------------------------
> not-implemented-error-docs.patch (0 Bytes)
> not-implemented-error-docs.patch (1.57 KB)
>
>
> --
> https://bugs.ruby-lang.org/
>  ______________________________________________
>  ruby-core mailing list -- ruby-core@ml.ruby-lang.org
>  To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
>  ruby-core info --
> https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/

[-- Attachment #1.2: Type: text/html, Size: 5007 bytes --]

[-- Attachment #2: Type: text/plain, Size: 264 bytes --]

 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/

  reply	other threads:[~2023-10-02 15:00 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-14 13:39 [ruby-core:109207] [Ruby master Feature#18915] New error class: NotImplementedYetError or scope change for NotImplementedYet Quintasan
2022-11-15 22:14 ` [ruby-core:110770] [Ruby master Feature#18915] New error class: NotImplementedYetError or scope change for NotImplementedError austin (Austin Ziegler)
2023-10-02 12:51 ` [ruby-core:114937] " zdennis (Zach Dennis) via ruby-core
2023-10-02 13:12 ` [ruby-core:114938] " zdennis (Zach Dennis) via ruby-core
2023-10-02 15:00   ` Алдан Муханов via ruby-core [this message]
2023-10-13 16:19 ` [ruby-core:115043] " tenderlovemaking (Aaron Patterson) via ruby-core
2023-10-13 16:32 ` [ruby-core:115045] " Quintasan via ruby-core
2023-10-13 17:06 ` [ruby-core:115046] " byroot (Jean Boussier) via ruby-core
2023-10-13 18:27 ` [ruby-core:115048] " tenderlovemaking (Aaron Patterson) via ruby-core
2023-10-13 18:35 ` [ruby-core:115049] " byroot (Jean Boussier) via ruby-core
2023-11-08  0:37 ` [ruby-core:115297] " mame (Yusuke Endoh) via ruby-core
2023-12-20  7:17 ` [ruby-core:115804] " matz (Yukihiro Matsumoto) via ruby-core
2023-12-20  8:47 ` [ruby-core:115814] " Quintasan via ruby-core
2023-12-22 15:02 ` [ruby-core:115861] " Dan0042 (Daniel DeLorme) via ruby-core
2023-12-22 15:28 ` [ruby-core:115862] " byroot (Jean Boussier) via ruby-core
2024-04-10  3:34 ` [ruby-core:117484] " nithinbekal (Nithin Bekal) via ruby-core
2024-04-19  1:39 ` [ruby-core:117604] " Dan0042 (Daniel DeLorme) via ruby-core
2024-04-28  0:01 ` [ruby-core:117734] " Quintasan via ruby-core

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.ruby-lang.org/en/community/mailing-lists/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAPQb+-+LXuYtZvrzcTc0yRNymZmgD-zXPzKnZ5U67faKp5v8wQ@mail.gmail.com \
    --to=ruby-core@ruby-lang.org \
    --cc=alekseipriklonov@gmail.com \
    --cc=ruby-core@ml.ruby-lang.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).