module Spark::Serializer
Constants
- DEFAULT_BATCH_SIZE
- DEFAULT_COMPRESS
- DEFAULT_SERIALIZER_NAME
Public Class Methods
build(text=nil, &block)
click to toggle source
# File lib/spark/serializer.rb, line 54 def self.build(text=nil, &block) if block_given? class_eval(&block) else class_eval(text.to_s.downcase) end end
find(name)
click to toggle source
# File lib/spark/serializer.rb, line 40 def self.find(name) @@registered[name.to_s.downcase] end
find!(name)
click to toggle source
# File lib/spark/serializer.rb, line 44 def self.find!(name) klass = find(name) if klass.nil? raise Spark::SerializeError, "Unknow serializer #{name}." end klass end
register(*args)
click to toggle source
Register class and create method for quick access. Class will be available also as __name__ for using in build method (Proc binding problem).
Examples:¶ ↑
register('test1', 'test2', Class) Spark::Serializer.test1 Spark::Serializer.test2 # Proc binding problem build { marshal } # => Spark::Serializer::Marshal marshal = 1 build { marshal } # => 1 build { __marshal__ } # => Spark::Serializer::Marshal
# File lib/spark/serializer.rb, line 31 def self.register(*args) klass = args.pop args.each do |arg| @@registered[arg] = klass define_singleton_method(arg.to_sym){|*args| klass.new(*args) } define_singleton_method("__#{arg}__".to_sym){|*args| klass.new(*args) } end end