class Turnkey::Utility

Public Class Methods

defineProtocols(instance) click to toggle source

def self.defineProtocols(instance)

return if instance.respondsToSelector("encodeWithCoder:") && instance.respondsToSelector("initWithCoder:")
instance.class.class_eval {
  include Turnkey::Proxy
}

end

def self.extend_protocols_to_object_references(instance)

instance.instance_variables.each do |prop|
  value = instance.send(reader_sig_for(prop))
  defineProtocols(value)
end

end

# File lib/turnkey/utility.rb, line 20
def self.defineProtocols(instance)
  return if alreadyDefined?(instance)

  includeCoderProtocols(instance)

  instance.instance_variables.each do |prop|
    ref = instance.send(reader_sig_for(prop))
    defineProtocols(ref)
  end
end

Private Class Methods

alreadyDefined?(instance) click to toggle source
# File lib/turnkey/utility.rb, line 33
def self.alreadyDefined?(instance)
  instance.respondsToSelector("encodeWithCoder:") && instance.respondsToSelector("initWithCoder:")
end
includeCoderProtocols(instance) click to toggle source
# File lib/turnkey/utility.rb, line 37
def self.includeCoderProtocols(instance)
  instance.class.class_eval {
    include Turnkey::Proxy
  }
end