class Characteristics

Constants

UNICODE_VERSION
VERSION

Attributes

encoding[R]

Public Class Methods

create(char) click to toggle source
# File lib/characteristics.rb, line 39
def self.create(char)
  create_for_type(char, type_from_encoding_name(char.encoding.name))
end
create_for_type(char, type) click to toggle source
# File lib/characteristics.rb, line 26
def self.create_for_type(char, type)
  case type
  when :unicode
    UnicodeCharacteristics.new(char)
  when :byte
    ByteCharacteristics.new(char)
  when :ascii
    AsciiCharacteristics.new(char)
  else
    BinaryCharacteristics.new(char)
  end
end
new(char) click to toggle source
# File lib/characteristics.rb, line 45
def initialize(char)
  raise ArgumentError, "Do not use abstract Characteristics.new(char) directly, please use Characteristics.create(char)" if self.class == Characteristics

  @is_valid = char.valid_encoding?
  @encoding = char.encoding
  @encoding_name = @encoding.name
end
type_from_encoding_name(encoding_name) click to toggle source
# File lib/characteristics.rb, line 11
def self.type_from_encoding_name(encoding_name)
  case encoding_name
  when "US-ASCII", "GB1988"
    :ascii
  when "ASCII-8BIT"
    :binary
  when /^UTF-?/
    :unicode
  when /^ISO-8859-/, /^Windows-125/, /^(IBM|CP85)/, /^mac/, 'TIS-620', 'Windows-874', /^KOI8-/
    :byte
  else
    raise ArgumentError, "encoding <#{encoding_name}> not supported"
  end
end

Public Instance Methods

assigned?() click to toggle source
# File lib/characteristics.rb, line 60
def assigned?
end
bidi_control?() click to toggle source
# File lib/characteristics.rb, line 81
def bidi_control?
end
blank?() click to toggle source
# File lib/characteristics.rb, line 75
def blank?
end
c0?() click to toggle source
# File lib/characteristics.rb, line 66
def c0?
end
c1?() click to toggle source
# File lib/characteristics.rb, line 72
def c1?
end
control?() click to toggle source
# File lib/characteristics.rb, line 63
def control?
end
delete?() click to toggle source
# File lib/characteristics.rb, line 69
def delete?
end
docomo?() click to toggle source

private use emojis

# File lib/characteristics.rb, line 93
def docomo?
end
format?() click to toggle source
# File lib/characteristics.rb, line 78
def format?
end
kddi?() click to toggle source

private use emojis

# File lib/characteristics.rb, line 85
def kddi?
end
softbank?() click to toggle source

private use emojis

# File lib/characteristics.rb, line 89
def softbank?
end
unicode?() click to toggle source
# File lib/characteristics.rb, line 57
def unicode?
end
valid?() click to toggle source
# File lib/characteristics.rb, line 53
def valid?
  @is_valid
end

Private Instance Methods

encoding_has_c0?() click to toggle source
# File lib/characteristics.rb, line 110
def encoding_has_c0?
  true
end
encoding_has_c1?() click to toggle source
# File lib/characteristics.rb, line 118
def encoding_has_c1?
  false
end
encoding_has_delete?() click to toggle source
# File lib/characteristics.rb, line 114
def encoding_has_delete?
  true
end
encoding_has_docomo?() click to toggle source
# File lib/characteristics.rb, line 106
def encoding_has_docomo?
  @encoding_name.end_with? "DoCoMo"
end
encoding_has_kddi?() click to toggle source
# File lib/characteristics.rb, line 98
def encoding_has_kddi?
  @encoding_name.end_with? "KDDI"
end
encoding_has_softbank?() click to toggle source
# File lib/characteristics.rb, line 102
def encoding_has_softbank?
  @encoding_name.end_with? "SoftBank"
end