Module: TSparser::AribStringDecoder::ClassExtension

Defined in:
lib/arib_string_decoder.rb

Overview


Module for class extension when AribStringDecoder is included.


Instance Method Summary collapse

Instance Method Details

#def_code(code_length, *code_names, &block) ⇒ Object



55
56
57
58
59
60
61
62
# File 'lib/arib_string_decoder.rb', line 55

def def_code(code_length, *code_names, &block)
  @code_proc_map ||= Hash.new
  @code_length_map ||= Hash.new
  code_names.each do |code_name|
    @code_proc_map[code_name] = block
    @code_length_map[code_name] = code_length
  end
end

#def_code_call(&block) ⇒ Object



39
40
41
42
# File 'lib/arib_string_decoder.rb', line 39

def def_code_call(&block)
  @code_caller = AribStringDecoder::Definition::CodeCaller.new
  @code_caller.instance_eval(&block)
end

#def_code_operation(&block) ⇒ Object



44
45
46
47
# File 'lib/arib_string_decoder.rb', line 44

def def_code_operation(&block)
  @code_operator = AribStringDecoder::Definition::CodeOperator.new
  @code_operator.instance_eval(&block)
end

#def_code_set(set_name, &block) ⇒ Object



49
50
51
52
53
# File 'lib/arib_string_decoder.rb', line 49

def def_code_set(set_name, &block)
  @code_set_map ||= Hash.new
  @code_set_map[set_name] = AribStringDecoder::Definition::CodeSet.new
  @code_set_map[set_name].instance_eval(&block)
end

#def_control_code(control_code_name, &block) ⇒ Object



33
34
35
36
37
# File 'lib/arib_string_decoder.rb', line 33

def def_control_code(control_code_name, &block)
  @control_code_map ||= Hash.new
  @control_code_map[control_code_name] = AribStringDecoder::Definition::ControlCode.new
  @control_code_map[control_code_name].instance_eval(&block)
end

#def_default_group_map(&block) ⇒ Object



25
26
27
# File 'lib/arib_string_decoder.rb', line 25

def def_default_group_map(&block)
  @group_map = block.call
end

#def_default_region_map(&block) ⇒ Object



29
30
31
# File 'lib/arib_string_decoder.rb', line 29

def def_default_region_map(&block)
  @region_map = block.call
end

#def_mapping(map_name, &block) ⇒ Object



64
65
66
# File 'lib/arib_string_decoder.rb', line 64

def def_mapping(map_name, &block)
  AribStringDecoder.const_set(map_name, block.call)
end

#new_decoderObject



19
20
21
22
23
# File 'lib/arib_string_decoder.rb', line 19

def new_decoder
  args = [@code_caller, @code_operator, @code_set_map, @code_proc_map, @code_length_map,
          @group_map, @region_map, @control_code_map]
  return AribStringDecoder::Decoder.new(*args)
end