class Encx::Encx

Public Class Methods

encx() click to toggle source
# File lib/encx.rb, line 9
def Encx.encx
  @@encx
end
init(enc) click to toggle source
# File lib/encx.rb, line 5
def Encx.init(enc)
  @@encx = Encx.new(enc)
end
new(enc) click to toggle source
# File lib/encx.rb, line 13
def initialize(enc)
  @encoding = enc
  @encodings = [Encoding::Shift_JIS , Encoding::UTF_8 , Encoding::EUC_JP]
  @ext_encodings = @encodings.select{ |x| x != @encoding }
  @encoding_ary = [@encoding] + @ext_encodings

  @re = nil
  @last_match = nil
  @last_match0 = nil
  
  @cur_target = nil
  @targets = []
  @target_for_display = []
  
  @error_target_item_hs = {}

end

Public Instance Methods

compare(l , hs) click to toggle source
# File lib/encx.rb, line 48
def compare(l , hs)
  ret2 = @encoding_ary.find{ |x|
    begin
      ret = hs[x].match(l)
      if ret
        ret = true
        @re = hs[x]
        @last_match = Regexp.last_match[1]
        @last_match0 = Regexp.last_match[0]
      else
        ret = false
        @last_match = nil
        @last_match0 = nil
      end
    rescue => ex
      exp = true
    end

    ret
  }

  ret2 != nil
end
conv_env( d , enc = nil ) click to toggle source
# File lib/encx.rb, line 95
def conv_env( d , enc = nil )
  val = nil
  if enc
    ret , val = conv_env_sub( d , enc )
  else
    ret2 = @encoding_ary.find{ |enc|
      ret , val = conv_env_sub( d , enc )
      
      ret
    }
  end
  val
end
conv_env_sub( d , enc = nil ) click to toggle source
# File lib/encx.rb, line 80
def conv_env_sub( d , enc = nil )
  val = nil
  if enc != @encoding
    begin
      val = d.encode( enc )
      #            val = d.encode( enc , {:undef=>:replace, :invalid=>:replace, :replace => ""})
    rescue => exp
      ret = false
    end
  else
    val=d
  end
  [ret , val]
end
convert( d , enc = nil ) click to toggle source
# File lib/encx.rb, line 72
def convert( d , enc = nil )
  if enc
    d.encode( enc , {:undef=>:replace, :invalid=>:replace, :replace => ""})
  else
    d.encode( @encoding , {:undef=>:replace, :invalid=>:replace, :replace => ""})
  end
end
make_regexp( data , option = nil ) click to toggle source
# File lib/encx.rb, line 31
def make_regexp( data , option = nil )
  hs = {}
  @encoding_ary.each do |enc|
    if data.class == Array
      hs[enc] = []
      data.each do |d|
        #          d_puts "make_regexp d=#{d}"
        hs[enc] << Regexp.new( convert(d , enc) , option )
      end
    else
      #        d_puts "make_regexp data=#{data}"
      hs[enc] = Regexp.new( convert(data , enc) , option )
    end
  end
  hs
end
print_error_register_item() click to toggle source
register_error( target , item ) click to toggle source
# File lib/encx.rb, line 109
def register_error( target  , item )
  @error_target_item_hs[target] ||= []
  @error_target_item_hs[target] << item
end