Perl 6 plugin for App::Nopaste that uses https://gist.github.com/ as a "pastebin"
Perl 6
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
examples
lib/Pastebin
logotype
t
xt
.gitignore
.travis.yml
LICENSE
META6.json
README.pod

README.pod

NAME

Pastebin::Gist - Perl 6 interface to https://gist.github.com/

SYNOPSIS

use Pastebin::Gist;
my $p = Pastebin::Gist.new(
    token => '3f2b4ca292960fafc63fb6798f148e3b47ea9fff',
);

my $paste_url = $p.paste("<foo>bar</foo>");
my $paste_url = $p.paste(
    {
        'file1.p6' => { content => "Paste content 1" },
        'meow.css' => { content => "Paste content 2" },
    },
    desc => "Foo Bar",
    public => 0,
);

DESCRIPTION

This module allows to paste to create GitHub Gists as retrieve them.

METHODS

new

# Assuming PASTEBIN_GIST_TOKEN env var has the token:
my $p = Pastebin::Gist.new;

# Set token via an argument:
my $p = Pastebin::Gist.new(
    token => '3f2b4ca292960fafc63fb6798f148e3b47ea9fff',
)

Creates new Pastebin::Gist object. Accepts the following settings:

token

token => '3f2b4ca292960fafc63fb6798f148e3b47ea9fff'

Mandatory. To use this module you need to create a GitHub token. Only the gist permission is needed.

You can avoid providing the token argument by setting the PASTEBIN_GIST_TOKEN environmental variable to the value of your token.

paste

my $paste_url = $p.paste('Paste content');
my $paste_url = $p.paste('Paste content', filename => 'foo.p6');
my $paste_url = $p.paste(
    {
        'file1.p6' => { content => "Paste content 1" },
        'meow.css' => { content => "Paste content 2" },
    },
    desc => 'Optional summary',
    public => True,
);

Returns URL to the created paste (e.g. https://gist.github.com/5590bc07b8d5bd8fd98d). On failure, throws `Pastebin::Gist::X` exception whose `$.message` method has reason for error. First positional argument can either be a string of content to paste or a hashref where keys are filenames and values are hashrefs with values key content set to content of files to paste. Using a hashref allows you to make a gist with multiple files. All other arguments are optional and are as follows:

desc

desc => 'Optional summary',

Optional. Provides the description (summary) of the gist. By default not specified.

public

public => True,

Optional. Takes True or False values. If set to True, your gist will be visible in search results and recent gists page. Defaults to: False.

filename

filename => "Foo.p6"

Optional. Applies only when the first positional argument to "paste" is a string. Specifies the filename to use for your gist (affects syntax highlighting). Defaults to: nopaste.txt.

Note: GitHub's API docs have this blurb in them:

Don't name your files "gistfile" with a numerical suffix.
This is the format of the automatic naming scheme that
Gist uses internally.

It tells you not to use files gistfile3 or gistfile33.txt. Behaviour when using this types of values for filename is not defined.

fetch

my ( $files, $desc )
= $p.fetch('https://gist.github.com/5590bc07b8d5bd8fd98d');

my ( $files, $desc ) = $p.fetch('5590bc07b8d5bd8fd98d');
say "Title: $desc";
for $files.keys {
    say "File: $_\nContent:\n$files{$_}";
}

Returns a two-item list: files in the gist and gist's title. Takes one mandatory argument: a full URL or just the ID number of the gist you want to retrieve. The $files is a hashref, where keys are file names and values are the file's contents. On failure, throws `Pastebin::Gist::X` exception whose `$.message` method has reason for error.

REPOSITORY

Fork this module on GitHub: https://github.com/zoffixznet/perl6-Pastebin-Gist

BUGS

To report bugs or request features, please use https://github.com/zoffixznet/perl6-Pastebin-Gist/issues

AUTHOR

Zoffix Znet http://zoffix.com/

LICENSE

You can use and distribute this module under the same terms as Perl 6 itself. See the LICENSE file included in this distribution for complete details.