RubyのString#split
で区切り文字が末尾にある場合、デフォルトでは戻り値の配列は末尾要素に空文字列を含みません。
どういうことかというと、
'a..b.c'.split('.')
# => ["a", "", "b", "c"]
このように、区切り文字が連続する場合には空文字列を要素として含むにもかかわらず、
'a.b.c.'.split('.')
# => ["a", "b", "c"]
末尾に区切り文字がある場合は空文字列を要素として含んでくれないのです。
解決策
String#split
メソッドには実は第2引数があり、ここに負数を指定することで解決できます。
'a.b.c.'.split('.', -1)
# => ["a", "b", "c", ""]
ちなみに
先頭に区切り文字がある場合は、デフォルトでも先頭要素に空文字列のある配列を返してくれます
'.a.b.c'.split('.')
# => ["", "a", "b", "c"]
バージョン情報
Ruby: 2.6.3