Method: ZergXcode::XcodeObject#visit_value

Defined in:
lib/zerg_xcode/objects/xcode_object.rb

#visit_value(parent, key, value, &accept) ⇒ Object



99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# File 'lib/zerg_xcode/objects/xcode_object.rb', line 99

def visit_value(parent, key, value, &accept)
  visit_parent = (parent == @attrs) ? self : parent
  recurse = yield self, visit_parent, key, value
  return if recurse == false
  
  if recurse != true
    value = recurse
    parent[key] = recurse
  end
  
  case value
  when ZergXcode::XcodeObject
    value.visit(&accept)
  when Hash
    visit_hash(value, &accept)
  when Array
    visit_array(value, &accept)
  end
  value    
end