Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Highlights strings in pry output

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 lib
Octocat-spinner-32 .gitignore
Octocat-spinner-32 LICENSE.MIT
Octocat-spinner-32 README.markdown
Octocat-spinner-32 pry-highlight.gemspec
README.markdown

The Pry-higlight gem (gem install pry-highlight) adds a highlight command (aka. >>) to Pry.

This intelligently formats and colourizes the result, so you don't have to.

Features

By default this pretty-prints the previous output value:

[1] pry(main)> '{"hi":"world"}'
=> "{\"hi\":\"world\"}"
[2] pry(main)> >>
{
  "hi": "world"
}

It can auto-detect JSON, XML and Ruby code by default:

[3] pry(main)> JSON.method(:pretty_print).source
=> "    def pretty_print(q)\n      q.text inspect\n    end\n"
[4] pry(main)> >>
    def pretty_print(q)
      q.text inspect
    end

You can also tell it which highlighter to use, see CodeRay's homepage for the full list.

[5] pry(main)> "function () {\n    return 'meh';\n}"
=> "function () {\n    return 'meh';\n}"
[6] pry(main)> >> -t javascript
function () {
    return 'meh';
}

You can give it the value to higlight explicitly:

[7] pry(main)> >> "<meta><foo/></meta>"
<?xml version="1.0"?>
<meta>
  <foo/>
</meta>

In fact, any combination of ruby and a -t flag works :)

[8] pry(main)> >> -t html File.read("/var/www/foo.html")
<html xmlns="http://www.w3.org/1999/xhtml">
  <body>
    <h1>It works!</h1>
  </body>
</html>

Even if you try to >> a String that isn't understood, you'll still get nice results because newlines will be interpreted correctly:

[9] pry(main)> "1 2 3\n4 5 6\n7 8 9\n"
=> "1 2 3\n4 5 6\n7 8 9\n"
[10] pry(main)> >>
1 2 3
4 5 6
7 8 9

Issues

The guessing of type based on the string could do with improvement.

Meta-foo

Licensed under the MIT license, contributions and bug-reports welcome :).

Something went wrong with that request. Please try again.