Sha256: d09466262b90cc503b064a35db12e1809e3ee0661918a5b70d3b9f8695b27933

Contents?: true

Size: 1.78 KB

Versions: 15

Compression:

Stored size: 1.78 KB

Contents

# -*- coding: utf-8 -*-
#
# helper.rb
#
  # Convert to US_ASCII encoding if ascii characters only.
  def convert_to_ascii_if_ascii(str)
    return nil if str.nil?
    ruby_18 do
      unless str =~ /[^!"#\$%&'\(\)\*\+,\-\.\/\:\;<=>\?@0-9A-Za-z_\[\\\]\{\}^` ~\0\n]/
        str = String.new(str)
      end
    end ||
    ruby_19 do
      if str.ascii_only?
        str = [str].pack('a*')
      end
    end
    str
  end
  private :convert_to_ascii_if_ascii

  def utf16be_to_16le(utf16be)
    utf16be.unpack('n*').pack('v*')
  end

  def utf8_to_16be(utf8)
    ruby_18 { NKF.nkf('-w16B0 -m0 -W', utf8) } ||
    ruby_19 do
      utf16be = NKF.nkf('-w16B0 -m0 -W', utf8)
      utf16be.force_encoding('UTF-16BE')
    end
  end
  private :utf8_to_16be

  def utf8_to_16le(utf8)
    ruby_18 { NKF.nkf('-w16L0 -m0 -W', utf8) } ||
    ruby_19 do
      utf16le = NKF.nkf('-w16L0 -m0 -W', utf8)
      utf16le.force_encoding('UTF-16LE')
    end
  end
  private :utf8_to_16le

  def ascii_to_16be(ascii)
    ascii.unpack("C*").pack("n*")
    ruby_19 { ascii.force_encoding('UTF-16BE') }
    ascii
  end
  private :ascii_to_16be

  def store_simple(record, length, *args)
    header = [record, length].pack('vv')
    data = args.collect { |arg| [arg].pack('v') }.join('')

    append(header, data)
  end
  private :store_simple

  # Convert base26 column string to a number.
  # All your Base are belong to us.
  def chars_to_col(chars)
    expn = 0
    col  = 0
    while (!chars.empty?)
      char = chars.pop   # LS char first
      col  += (char.ord - "A".ord + 1) * (26 ** expn)
      expn += 1
    end
    col
  end
  private :chars_to_col

  NonAscii = /[^!"#\$%&'\(\)\*\+,\-\.\/\:\;<=>\?@0-9A-Za-z_\[\\\]\{\}^` ~\0\n]/

  def is_utf8?(str)
    ruby_18 { str =~ NonAscii } ||
    ruby_19 { str.encoding == Encoding::UTF_8 }
  end

Version data entries

15 entries across 15 versions & 3 rubygems

Version Path
sunrise-cms-0.5.0.rc1 vendor/bundle/ruby/1.9.1/gems/writeexcel-0.6.16/lib/writeexcel/helper.rb
writeexcel-0.6.16 lib/writeexcel/helper.rb
writeexcel-0.6.15 lib/writeexcel/helper.rb
writeexcel-0.6.14 lib/writeexcel/helper.rb
sunrise-cms-0.3.3 vendor/bundle/ruby/1.9.1/gems/writeexcel-0.6.13/lib/writeexcel/helper.rb
sunrise-cms-0.3.2 vendor/bundle/ruby/1.9.1/gems/writeexcel-0.6.13/lib/writeexcel/helper.rb
sunrise-cms-0.3.1 vendor/bundle/ruby/1.9.1/gems/writeexcel-0.6.13/lib/writeexcel/helper.rb
sunrise-cms-0.3.0 vendor/bundle/ruby/1.9.1/gems/writeexcel-0.6.13/lib/writeexcel/helper.rb
sunrise-cms-0.3.0.rc vendor/bundle/ruby/1.9.1/gems/writeexcel-0.6.13/lib/writeexcel/helper.rb
writeexcel-0.6.13 lib/writeexcel/helper.rb
ricardoo27-writeexcel-0.6.12.2 lib/writeexcel/helper.rb
ricardoo27-writeexcel-0.6.12.1 lib/writeexcel/helper.rb
writeexcel-0.6.12 lib/writeexcel/helper.rb
writeexcel-0.6.11 lib/writeexcel/helper.rb
writeexcel-0.6.10 lib/writeexcel/helper.rb