Sha256: aed2f160cf187fdb12e785b57725ccf405983df239d9e496aea09d983377cd7d

Contents?: true

Size: 1.87 KB

Versions: 29

Compression:

Stored size: 1.87 KB

Contents

# Require this file if you need Unicode support.
# Tips for improvement - esp. ruby 1.9: http://www.ruby-forum.com/topic/184730
require 'cucumber/platform'
require 'cucumber/formatter/ansicolor'
$KCODE='u' unless Cucumber::RUBY_1_9

if Cucumber::WINDOWS
  require 'iconv'

  if ENV['CUCUMBER_OUTPUT_ENCODING']
    Cucumber::CODEPAGE = ENV['CUCUMBER_OUTPUT_ENCODING']
  elsif Cucumber::WINDOWS_MRI
    Cucumber::CODEPAGE = "cp#{Win32::Console::OutputCP()}"
  elsif `cmd /c chcp` =~ /(\d+)/
    Cucumber::CODEPAGE = "cp#{$1.to_i}"
  else
    Cucumber::CODEPAGE = "cp1252"
    STDERR.puts("WARNING: Couldn't detect your output codepage. Assuming it is 1252. You may have to chcp 1252 or SET CUCUMBER_OUTPUT_ENCODING=cp1252.")
  end

  module Cucumber
    module WindowsOutput #:nodoc:
      def self.extended(o)
        o.instance_eval do
          alias cucumber_print print
          def print(*a)
            begin
              cucumber_print(*Iconv.iconv(Cucumber::CODEPAGE, "UTF-8", *a.map{|a|a.to_s}))
            rescue Iconv::InvalidEncoding => e
              STDERR.cucumber_puts("WARNING: #{e.message}")
              cucumber_print(*a)
            rescue Iconv::IllegalSequence => e
              STDERR.cucumber_puts("WARNING: #{e.message}")
              cucumber_print(*a)
            end
          end

          alias cucumber_puts puts
          def puts(*a)
            begin
              cucumber_puts(*Iconv.iconv(Cucumber::CODEPAGE, "UTF-8", *a.map{|a|a.to_s}))
            rescue Iconv::InvalidEncoding => e
              STDERR.cucumber_print("WARNING: #{e.message}")
              cucumber_print(*a)
            rescue Iconv::IllegalSequence => e
              STDERR.cucumber_puts("WARNING: #{e.message}")
              cucumber_puts(*a)
            end
          end
        end
      end

      Kernel.extend(self)
      STDOUT.extend(self)
      STDERR.extend(self)
    end
  end
end

Version data entries

29 entries across 29 versions & 2 rubygems

Version Path
cucumber-0.8.7 lib/cucumber/formatter/unicode.rb
vim-jar-0.1.2.0001 bundler/ruby/1.8/gems/cucumber-0.9.4/lib/cucumber/formatter/unicode.rb
vim-jar-0.1.2 bundler/ruby/1.8/gems/cucumber-0.9.4/lib/cucumber/formatter/unicode.rb
vim-jar-0.1.1 bundler/ruby/1.8/gems/cucumber-0.9.4/lib/cucumber/formatter/unicode.rb
vim-jar-0.1.0 bundler/ruby/1.8/gems/cucumber-0.9.4/lib/cucumber/formatter/unicode.rb
cucumber-0.9.4 lib/cucumber/formatter/unicode.rb
cucumber-0.9.3 lib/cucumber/formatter/unicode.rb
cucumber-0.9.2 lib/cucumber/formatter/unicode.rb
cucumber-0.9.1 lib/cucumber/formatter/unicode.rb
cucumber-0.9.0 lib/cucumber/formatter/unicode.rb
cucumber-0.8.5 lib/cucumber/formatter/unicode.rb
cucumber-0.8.4 lib/cucumber/formatter/unicode.rb
cucumber-0.8.3 lib/cucumber/formatter/unicode.rb
cucumber-0.8.2 lib/cucumber/formatter/unicode.rb
cucumber-0.8.1 lib/cucumber/formatter/unicode.rb
cucumber-0.8.0 lib/cucumber/formatter/unicode.rb
cucumber-0.7.3 lib/cucumber/formatter/unicode.rb
cucumber-0.7.2 lib/cucumber/formatter/unicode.rb
cucumber-0.7.1 lib/cucumber/formatter/unicode.rb
cucumber-0.7.0 lib/cucumber/formatter/unicode.rb