class BabosaFix

Babosa has a conflict with the unicode-string_width gem. unicode-string_width defines a module called `Unicode`, but Babosa uses the presence of this constant as the sign that it should try to require the `unicode` gem, which will not be present.

We don't want to introduce the `unicode` gem because it depends on native extensions.

This works around the possibility that the unicode-string_width gem may already be loaded by temporarily undefining the `Unicode` constant while we load Babosa, then restoring it to its previous state if necessary.

Can be removed once github.com/norman/babosa/pull/42 is merged and released

Public Instance Methods

apply() click to toggle source
# File lib/spaceship/babosa_fix.rb, line 13
def apply
  unicode_removed = false

  if defined? Unicode
    orig_unicode = Unicode
    Object.send(:remove_const, :Unicode)
    unicode_removed = true
  end

  require 'babosa'

  if unicode_removed
    Object.send(:const_set, :Unicode, orig_unicode)
  end
end