Sha256: e7dfe26f27d6e2d93338eaf84e0f4772133b87e141df29f7e9218cc400462256

Contents?: true

Size: 1.06 KB

Versions: 2

Compression:

Stored size: 1.06 KB

Contents

module Turnkey

  class Utility
    extend Sanitizers

    #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

    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

    def self.alreadyDefined?(instance)
      instance.respondsToSelector("encodeWithCoder:") && instance.respondsToSelector("initWithCoder:")
    end

    def self.includeCoderProtocols(instance)
      instance.class.class_eval {
        include Turnkey::Proxy
      }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
turnkey-0.2.2 lib/turnkey/utility.rb
turnkey-0.2.1 ../lib/turnkey/utility.rb