Add to_iruby_mimebundle support #304
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Introduce
to_iruby_mimebundlemethod support like IPython's_repr_mimebundle.The new display algorithm is below.
If the object to be displayed can respond to
to_iruby_mimebundle, IRuby first tries to format the object by this method.Then, IRuby tries to format the object by the renderers registered in the registry into MIME-types that are not formatted by
to_iruby_mimebundle.Moreover, IRuby tries to format the object by
to_xxxmethod for the MIME-types that have not been formatted in the following list.text/htmlbyto_htmlmethodtext/markdownbyto_markdownmethodimage/svg+xmlbyto_svgmethodimage/pngbyto_pngmethodapplication/pdfbyto_pdfmethodimage/jpegbyto_jpegmethodtext/latexbyto_latexorto_texmethodapplication/javascriptbyto_javascriptmethodIf none of MIME-type are formatted at this time, IRuby tries to format the object by
to_irubymethod.Finally, IRuby generates the
text/plainformat byinspectmethod iftext/plainformat is not generated yet.