Learn R Programming

cowsay (version 1.0.0)

say: Sling messages and warnings with flair

Description

Sling messages and warnings with flair

Usage

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

think( what = "Hello world!", by = "cow", type = NULL, what_color = NULL, by_color = what_color, length = 18, fortune = NULL, width = 60, ... )

Arguments

what

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

by

(character) Type of thing, one of cow, chicken, chuck, clippy, poop, bigcat, ant, pumpkin, ghost, spider, rabbit, pig, snowman, frog, hypnotoad, shortcat, longcat, fish, signbunny, facecat, behindcat, stretchycat, anxiouscat, longtailcat, cat, trilobite, shark, buffalo, grumpycat, smallcat, yoda, mushroom, endlesshorse, bat, bat2, turkey, monkey, daemon, egret, duckling, duck, owl, squirrel, squirrel2, goldfish, alligator, stegosaurus, whale, wolf, or rms for Richard Stallman. Alternatively, use "random" to have your message spoken by a random character. We use rlang::arg_match() internally, which does not support partial matching, so you'll get an informative error upon a partial match.

type

(character) One of message (default), warning, print (default in non-interactive mode), or string (returns string). 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"). By default is set to be whatever color what_color is so you can have the same color for both with less typing.

length

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

fortune

An integer (or number that can be coerced to integer) specifying a fortune from the fortunes package - OR a string which is used as a pattern passed to grep() (and a random one is selected upton multiple matches). Passed on to the which parameter of fortunes::fortune

width

(integer/numeric) width of each line. default: 60

...

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".

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("time")

say("who you callin chicken", "chicken")
say("ain't that some shit", "poop")
say("icanhazpdf?", "cat")
say("boo!", "pumpkin")
say("hot diggity", "frog")

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

# 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")

if (FALSE) { # rlang::is_installed("fortunes")
# Using fortunes
library(fortunes)
say(what = "fortune")
## you don't have to pass anything to the `what` parameter if `fortune` is
## not null
say("fortune", "spider")
say("fortune", "facecat")
say("fortune", "behindcat")
say("fortune", "smallcat")
say("fortune", "monkey")
say("fortune", "egret")
say(fortune = 10)
say(fortune = 100)
say(fortune = "whatever")
say(fortune = 7)
say(fortune = 45)
# Clippy
say(fortune = 59, by = "clippy")
}
if (FALSE) { # rlang::is_installed("rmsfact")
library(rmsfact)
say("rms", "rms")
}
# Using the catfacts API
library(jsonlite)
say("catfact", "cat")

Run the code above in your browser using DataLab