module I18n::Locale::Tag::Parents

def parent

def parent
  @parent ||=
    begin
      segs = to_a
      segs.compact!
      segs.length > 1 ? self.class.tag(*segs[0..(segs.length - 2)].join('-')) : nil
    end
end

def parents

def parents
  @parents ||= parent ? [parent].concat(parent.parents) : []
end

def self_and_parents

def self_and_parents
  @self_and_parents ||= [self].concat parents
end