This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Haddock | |
CURSES = [ | |
"Aardvark", | |
"Abecedarians", | |
"Addle-pated lumps of anthracite", | |
"Anachronisms", | |
"Anacoluthons", | |
"Antediluvian bulldozer", | |
"Anthracite", | |
"Anthropithecus", |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Puppet::Functions.create_function(:env_data) do | |
# @since 4.8.0 | |
dispatch :env_data do | |
param 'Struct[{}]', :options | |
param 'Puppet::LookupContext', :context | |
end | |
def env_data(options, context) | |
ENV.to_h | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[ 1000, 2000, 3000, "", 4000, "", 5000, 6000, "", 7000, 8000, 9000, "", 10000, | |
].reduce([0]) |$memo, $v| { if $v == "" { $memo << 0 } else { $memo[0,-2] << $memo[-1]+$v } } | |
.map() |$i,$x| { [$i,$x] } | |
.sort() |$a,$b| { compare($b[1], $a[1]) } | |
.then() |$x| { $x[0] } | |
.then() |$x| { "Elf ${x[0]} has ${x[1]} calories" } | |
.notice() | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Puppet EBNF (kind of) | |
# Try with: http://www.bottlecaps.de/rr/ui | |
ACTOR ::= 'actor' ( '(' PARAMS ')')? ('inherits' NAME)? | |
'{' | |
(QUEUE | INBOX | ACTION | SEQUENCE | PARALLEL | FUNCTION | STATE | CONSTANT | LOCAL_TYPE)* | |
'}' | |
SEQUENCE ::= 'sequence' '{' (ACTION | SEQUENCE | PARALLEL)* '}' | |
PARALLEL ::= 'parallel' '{' (ACTION | SEQUENCE | PARALLEL)* '}' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# The latch function remembers what it was called with | |
# and returns what it was previously called with. | |
# | |
# This is using global namespace - in your code use a module namespace | |
# | |
Puppet::Functions.create_function(:latch) do | |
dispatch :example do | |
repeated_param 'Any', :arg | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# When you need to process a hash with keys in sorted order | |
# you may have found the `sort()` function - but it only | |
# operates on an Array. | |
# | |
# Most of the time what is wanted is simply achieved | |
# by taking the keys of a hash and sorting those and | |
# then iterating over the keys. | |
# | |
# When, however the wanted result is a new Hash | |
# with all keys sorted recursively then this becomes |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
$h = { 'b' => ['banana', 'bandana'], 'o' => ['orange', 'ovaltine'] } | |
$h2 = $h.map |$k, $v | { [$k,$v[0]] } | |
notice "h2 = ${h2}" | |
notice Hash($h2) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"> | |
<head> | |
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" /> | |
<meta name="generator" content="Railroad Diagram Generator 1.52.1729" /> | |
<style type="text/css"> | |
::-moz-selection | |
{ | |
color: #FFFEF8; | |
background: #1E1800; | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Puppet::Functions.create_function(:any2bool) do | |
dispatch :any2bool do | |
param 'Any', :to_be_converted | |
end | |
def any2bool(to_be_converted) | |
call_function('new', Puppet::Pops::Types::PBooleanType::DEFAULT, to_be_converted) | |
end | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Resolves a given value - if given a Deferred it will be called and all other values are returned as is. | |
# | |
function resolve(Any $x) { | |
if $x =~ Deferred { $x.call } else { $x } | |
} | |
# Resolves and evaluates a condition and either resolves and evaluates the given when_true, | |
# or the given when_false depending on the outcome of the evaluation of the condition. | |
# The result is undef if the selected when_true/when_false is undefined. | |
# |
NewerOlder