{%- comment -%}
package_shortener
when threshold=2: turns foo.bar.bat into: foo.b.bat turns foo.bar.bat.Baz into: foo.b.b.Baz turns foo.Qix into: foo.Qix
params:
package="foo.bar.Baz" threshold=2 (optional, defaults to 2)
{%- endcomment -%}
{%- comment -%}push prior state{%- endcomment -%} {%- assign __t = t -%} {%- assign __pkg_long = pkg_long -%} {%- assign __pkg_abbr = pkg_abbr -%} {%- assign __p = p -%}
{%- assign t = include.threshold | default: 2 -%} {%- assign pkg_long = include.package | split: '.' -%} {%- if pkg_long.size > t -%}
{%- assign pkg_abbr = pkg_long.first -%} {%- for pkg in pkg_long offset: 1 -%} {%- unless forloop.last -%} {%- assign p = pkg | truncate: 1, "" | downcase -%} {%- assign pkg_abbr = pkg_abbr | append: "." | append: p -%} {%- endunless -%} {%- if forloop.last -%} {%- assign pkg_abbr = pkg_abbr | append: "." | append: pkg -%} {%- endif -%} {%- endfor -%}
{%- else -%}
{%- assign pkg_abbr = include.package -%}
{%- endif -%}{{- pkg_abbr -}}
{%- comment -%}pop prior state{%- endcomment -%} {%- assign p = __p -%} {%- assign pkg_abbr = __pkg_abbr -%} {%- assign pkg_long = __pkg_long -%} {%- assign t = __t -%}