- ParamPair =
factory["%s=%s"].freeze
- ParamKey =
-> (key) do
key.to_s.split('_').map(&capitalize).join
end
- ParamsHash =
-> (hash) do
hash.transform_values(&hash_join_params)
end
- IntervalMinutes =
factory["*:0/%{minutes}"]
- IntervalHours =
factory["0/%{hours}:0/%{minutes}"] >> proc { |v| v.chomp("/0") }
- IntervalSeconds =
factory["0:0:0/%d"]
- NormalizeInterval =
{
"daily" => "*-*-*"
}
- Duration =
-> (freq) do
case freq
when 0...3600; IntervalMinutes[freq.parts]
when 3600...86400; IntervalHours[freq.parts]
else IntervalSeconds[freq.to_i]
end
end
- Freq =
-> (freq) do
ActiveSupport::Duration === freq ? Duration[freq] : freq
end
- Service =
ParamsHash >> factory["[Unit]\n%{unit}\n\n[Service]\n%{service}\n"]
- Timer =
ParamsHash >> factory["[Unit]\n%{unit}\n\n[Timer]\n%{timer}\n\n[Install]\n%{install}\n"]
- Target =
ParamsHash >> factory["[Unit]\n%{unit}\n\n[Install]\nWantedBy=timers.target\n"]
- MaterializeUnit =
factory["cat > %{path}/%{filename} <<'EOF'\n%{content}\nEOF\n"]
- MaterializeUnits =
proc do |list|
list.map(&MaterializeUnit) * "\n"
end
- DryUnit =
factory["# filepath: %{path}/%{filename}\n%{content}\n\n"]
- DryUnits =
proc { |list| list.map(&DryUnit) * "\n" }