Class: Encoding
  
  
  
  
  
    - Inherits:
- 
      Object
      
        
        show all
      
    
    - Defined in:
- opal/opal/corelib/string/encoding.rb
 
Defined Under Namespace
  
    
  
    
      Classes: CompatibilityError, EncodingError
    
  
  Class Attribute Summary collapse
  
  Instance Attribute Summary collapse
  
  
    
      Class Method Summary
      collapse
    
    
  
    
      Instance Method Summary
      collapse
    
    
  
  Constructor Details
  
    
  
  
    #initialize(name, names, ascii, dummy)  ⇒ Encoding 
  
  
  
  
    Returns a new instance of Encoding
   
 
  
  
    | 
32
33
34
35
36
37 | # File 'opal/opal/corelib/string/encoding.rb', line 32
def initialize(name, names, ascii, dummy)
  @name  = name
  @names = names
  @ascii = ascii
  @dummy = dummy
end | 
 
  
 
  
    Class Attribute Details
    
      
      
      
  
  
    .default_external  ⇒ Object 
  
  
  
  
    Returns the value of attribute default_external
   
 
  
  
    | 
27
28
29 | # File 'opal/opal/corelib/string/encoding.rb', line 27
def default_external
  @default_external
end | 
 
    
   
  
    Instance Attribute Details
    
      
      
      
  
  
    Returns the value of attribute name
   
 
  
  
    | 
30
31
32 | # File 'opal/opal/corelib/string/encoding.rb', line 30
def name
  @name
end | 
 
    
      
      
      
  
  
    Returns the value of attribute names
   
 
  
  
    | 
30
31
32 | # File 'opal/opal/corelib/string/encoding.rb', line 30
def names
  @names
end | 
 
    
   
  
    Class Method Details
    
      
  
  
    .find(name)  ⇒ Object 
  
  
  
  
    | 
18
19
20
21
22
23
24 | # File 'opal/opal/corelib/string/encoding.rb', line 18
def self.find(name)
  return default_external if name == :default_external
  register = self.JS['$$register']
  encoding = register.JS["$$#{name}"] || register.JS["$$#{name.upcase}"]
  raise ArgumentError, "unknown encoding name - #{name}" unless encoding
  encoding
end | 
 
    
      
  
  
    .register(name, options = {}, &block)  ⇒ Object 
  
  
  
  
    | 
6
7
8
9
10
11
12
13
14
15
16 | # File 'opal/opal/corelib/string/encoding.rb', line 6
def self.register(name, options = {}, &block)
  names    = [name] + (options[:aliases] || [])
  encoding = Class.new(self, &block).
    new(name, names, options[:ascii] || false, options[:dummy] || false)
  register = self.JS['$$register']
  names.each do |name|
    const_set name.sub('-', '_'), encoding
    register.JS["$$#{name}"] = encoding
  end
end | 
 
    
   
  
    Instance Method Details
    
      
  
  
    #ascii_compatible?  ⇒ Boolean 
  
  
  
  
    | 
39
40
41 | # File 'opal/opal/corelib/string/encoding.rb', line 39
def ascii_compatible?
  @ascii
end | 
 
    
      
  
  
    | 
64
65
66 | # File 'opal/opal/corelib/string/encoding.rb', line 64
def bytesize(*)
  raise NotImplementedError
end | 
 
    
      
  
  
    | 
43
44
45 | # File 'opal/opal/corelib/string/encoding.rb', line 43
def dummy?
  @dummy
end | 
 
    
      
  
  
    #each_byte  ⇒ Object 
  
  
  
  
    methods to implement per encoding
   
 
  
    | 
56
57
58 | # File 'opal/opal/corelib/string/encoding.rb', line 56
def each_byte(*)
  raise NotImplementedError
end | 
 
    
      
  
  
    | 
60
61
62 | # File 'opal/opal/corelib/string/encoding.rb', line 60
def getbyte(*)
  raise NotImplementedError
end | 
 
    
      
  
  
    | 
51
52
53 | # File 'opal/opal/corelib/string/encoding.rb', line 51
def inspect
  "#<Encoding:#{@name}#{" (dummy)" if @dummy}>"
end | 
 
    
      
  
  
    | 
47
48
49 | # File 'opal/opal/corelib/string/encoding.rb', line 47
def to_s
  @name
end |