Learn R Programming

cowsay (version 0.8.0)

say: Sling messages and warnings with flair

Description

Sling messages and warnings with flair

Usage

say(
  what = "Hello world!",
  by = "cat",
  type = NULL,
  what_color = NULL,
  by_color = NULL,
  length = 18,
  fortune = NULL,
  ...
)

Arguments

what

(character) What do you want to say? See Details.

by

(character) Type of thing, one of cow, chicken, poop, cat, facecat, bigcat, longcat, shortcat, behindcat, longtailcat, anxiouscat, grumpycat, smallcat, ant, pumpkin, ghost, spider, rabbit, pig, snowman, frog, hypnotoad, signbunny, stretchycat, fish, trilobite, shark, buffalo, clippy, mushroom, monkey, egret, or rms for Richard Stallman. Alternatively, use "random" to have your message spoken by a random character. We use match.arg() internally, so you can use unique parts of words that don't conflict with others, like "g" for "ghost" because there's no other animal that starts with "g".

type

(character) One of message (default), warning, print (default in non-interactive mode), or string (returns string). If multiple colors are supplied to what_color or by_color, type cannot be warning. (This is a limitation of the multicolor packcage :/.) If run in non-interactive mode default type is print, so that output goes to stdout rather than stderr, where messages and warnings go.

what_color

(character or crayon function) One or more crayon-suported text color(s) or crayon style function to color what. You might try colors() or ?rgb for ideas. Use "rainbow" for c("red", "orange", "yellow", "green", "blue", "purple").

by_color

(character or crayon function) One or more crayon-suported text color(s) or crayon style function to color who. Use "rainbow" for c("red", "orange", "yellow", "green", "blue", "purple")

length

(integer) Length of longcat. Ignored if other animals used.

fortune

An integer specifying the row number of fortunes.data. Alternatively which can be a character and grep is used to try to find a suitable row.

...

Further args passed on to fortunes::fortune()

what

You can put in any phrase you like to the what parameter, OR you can type in one of a few special phrases that do particular things. They are:

  • "catfact": A random cat fact from https://catfact.ninja

  • "fortune": A random quote from an R coder, from fortunes library

  • "time": Print the current time

  • "rms": Prints a random 'fact' about Richard Stallman from the rmsfact::rmsfact() package. Best paired with by = "rms".

  • The fillerama API was an option ("arresteddevelopment", "doctorwho", "dexter", "futurama", "holygrail", "simpsons", "starwars", "loremipsum"), a text generator with quotes from shows and movies. However, the API is currently down so you cannot use this option anymore.

by

Note that if you choose by='hypnotoad' the quote is forced to be, as you could imagine, 'All Glory to the HYPNO TOAD!'. For reference see http://knowyourmeme.com/memes/hypnotoad

signbunny: It's not for sure known who invented signbunny, but this article http://www.vox.com/2014/9/18/6331753/sign-bunny-meme-explained thinks they found the first use in this tweet: https://twitter.com/wei_bluebear/status/329101645780770817

trilobite: from http://www.retrojunkie.com/asciiart/animals/dinos.htm (site down though)

Note to Windows users: there are some animals (shortcat, longcat, fish, signbunny, stretchycat, anxiouscat, longtailcat, grumpycat, mushroom) that are not available because they use non-ASCII characters that don't display properly in R on Windows.

Examples

Run this code
say()
say("what")
say("meow", "cat", what_color = "blue")
say('time')
say('time', "poop", by_color = "cyan", what_color = "pink")

library(jsonlite)
say("hello world",
    by = "hypnotoad",
    what_color = c("royalblue1", "tomato2"),
    by_color = c("rainbow", "rainbow"))
say("whats up",
    what_color = crayon::cyan$bgMagenta,
    by_color = c("salmon1", "springgreen"))

say("who you callin chicken", "chicken")
say("ain't that some shit", "poop")
say("icanhazpdf?", "cat")
say("boo!", "pumpkin")
say("hot diggity", "frog")
say("fortune", "spider")
say("fortune", "facecat")
say("fortune", "behindcat")
say("fortune", "smallcat")
say("fortune", "monkey")
say("fortune", "egret")
say("rms", "rms")

# Vary type of output, default calls message()
say("hell no!")
say("hell no!", type="warning")
say("hell no!", type="string")

# Using fortunes
say(what="fortune")
## you don't have to pass anything to the `what` parameter if `fortune` is
## not null
say(fortune=10)
say(fortune=100)
say(fortune='whatever')
say(fortune=7)
say(fortune=45)

# Using catfacts
# say("catfact", "cat")

# The hypnotoad
say(by="hypnotoad")

# Trilobite
say(by='trilobite')

# Shark
say('Q: What do you call a solitary shark\nA: A lone shark', by='shark')

# Buffalo
say('Q: What do you call a single buffalo?\nA: A buffalonely', by='buffalo')

# Clippy
say(fortune=59, by="clippy")

Run the code above in your browser using DataLab