Module: Rotary::Serializer

Defined in:
lib/rotary/serializer.rb,
lib/rotary/serializer/string.rb

Defined Under Namespace

Modules: String Classes: Error

Constant Summary collapse

Marshal =
Marshal

Class Method Summary collapse

Class Method Details

.load_const(serializer) ⇒ Object



23
24
25
26
27
# File 'lib/rotary/serializer.rb', line 23

def load_const(serializer)
  const_get("Rotary::Serializer::#{serializer.capitalize}")
rescue NameError
  raise_wrong_serializer!(serializer)
end

.load_serializer(serializer) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/rotary/serializer.rb', line 10

def load_serializer(serializer)
  case serializer
  when Symbol
    load_const(serializer)
  else
    unless valid?(serializer)
      raise Rotary::Serializer::Error,
        "#{serializer}:#{serializer.class} doesn't respond to either '.load' or '.dump'"
    end
    serializer
  end
end

.raise_wrong_serializer!(serializer) ⇒ Object



33
34
35
# File 'lib/rotary/serializer.rb', line 33

def raise_wrong_serializer!(serializer)
  raise Rotary::Serializer::Error, "Wrong serializer #{serializer} of class #{serializer.class}"
end

.valid?(serializer) ⇒ Boolean

Returns:

  • (Boolean)


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

def valid?(serializer)
  serializer.respond_to?(:dump) && serializer.respond_to?(:load)
end