Class: FixtureBackground::IVars

Inherits:
Object
  • Object
show all
Defined in:
lib/fixture_background/ivars.rb

Class Method Summary collapse

Class Method Details

.deserialize(value) ⇒ Object



22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/fixture_background/ivars.rb', line 22

def deserialize(value)
  case value
  when Hash
    value.inject({}) do |memo, (key, v)| 
      memo[key] = deserialize(v)
      memo
    end
  when Array
    value.map { |v| deserialize(v) }
  when String
    klass, id = value.split("#")
    klass.constantize.find(id)
  end
end

.serialize(value) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/fixture_background/ivars.rb', line 4

def serialize(value)
  case value 
  when Hash
    value.inject({}) do |memo, (key, v)| 
      memo[key] = serialize(v)
      memo
    end
  when Array
    value.map { |v| serialize(v) }
  else 
    if value.class.respond_to?(:find) && value.respond_to?(:id) 
      "#{value.class.name}##{value.id}"
    else
      raise ArgumentError
    end
  end
end