Class: Okura::Serializer::CharTypes::Marshal

Inherits:
Object
  • Object
show all
Defined in:
lib/okura/serializer.rb

Instance Method Summary collapse

Instance Method Details

#compile(input, output) ⇒ Object



239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
# File 'lib/okura/serializer.rb', line 239

def compile(input,output)
  cts=Okura::CharTypes.new

  parser=Okura::Parser::CharType.new
  parser.on_chartype_def{|name,invoke,group,length|
    cts.define_type(name,invoke,group,length)
  }
  parser.on_mapping_single{|char,type,ctypes|
    cts.define_map char,cts.named(type),ctypes.map{|ct|cts.named(ct)}
  }
  parser.on_mapping_range{|from,to,type,ctypes|
    (from..to).each{|char|
      cts.define_map char,cts.named(type),ctypes.map{|ct|cts.named(ct)}
    }
  }
  parser.parse_all input

  ::Marshal.dump(cts,output)
  cts
end

#load(io) ⇒ Object



259
260
261
# File 'lib/okura/serializer.rb', line 259

def load(io)
  ::Marshal.load(io)
end