Skip to content
  • Jeremy Evans's avatar
    346301e2
    Add rb_category_warn{,ing} for warning messages with categories · 346301e2
    Jeremy Evans authored
    This adds the following C-API functions that can be used to emit
    warnings with categories included:
    
    ```c
    void rb_category_warn(const char *, const char*, ...)
    void rb_category_warning(const char*, const char*, ...)
    ```
    
    Internally in error.c, there is an rb_warn_category function
    that will call Warning.warn with the string and the category
    keyword if it doesn't have an arity of 1, and will call
    Warning.warn with just the string if it has an arity of 1.
    This refactors the rb_warn_deprecated{,_to_remove} functions
    to use rb_warn_category.
    
    This makes Kernel#warn accept a category keyword and pass it
    to Warning.warn, so that Ruby methods can more easily emit
    warnings with categories.  rb_warn_category makes sure that
    the passed category is a already defined category symbol
    before calling Warning.warn.
    
    The only currently defined warning category is :deprecated,
    since that is what is already used.  More categories can be
    added in later commits.
    346301e2
    Add rb_category_warn{,ing} for warning messages with categories
    Jeremy Evans authored
    This adds the following C-API functions that can be used to emit
    warnings with categories included:
    
    ```c
    void rb_category_warn(const char *, const char*, ...)
    void rb_category_warning(const char*, const char*, ...)
    ```
    
    Internally in error.c, there is an rb_warn_category function
    that will call Warning.warn with the string and the category
    keyword if it doesn't have an arity of 1, and will call
    Warning.warn with just the string if it has an arity of 1.
    This refactors the rb_warn_deprecated{,_to_remove} functions
    to use rb_warn_category.
    
    This makes Kernel#warn accept a category keyword and pass it
    to Warning.warn, so that Ruby methods can more easily emit
    warnings with categories.  rb_warn_category makes sure that
    the passed category is a already defined category symbol
    before calling Warning.warn.
    
    The only currently defined warning category is :deprecated,
    since that is what is already used.  More categories can be
    added in later commits.
Loading