module Tins

def self.StringVersion(string)

def self.StringVersion(string)
  StringVersion::Version.new(string.to_str)
end

def included(klass)

def included(klass)
  __old_singleton_included__(klass)
  (class << klass; self; end).class_eval do
    if Object.method_defined?(:respond_to_missing?)
      def  respond_to_missing?(name, *args)
        instance.respond_to?(name) || super
      end
    else
      def respond_to?(name, *args)
        instance.respond_to?(name) || super
      end
    end
    def method_missing(name, *args, &block)
      if instance.respond_to?(name)
        instance.__send__(name, *args, &block)
      else
        super
      end
    end
  end
  super
end

def included(klass)

def included(klass)
  __old_singleton_included__(klass)
  (class << klass; self; end).class_eval do
    if Object.method_defined?(:respond_to_missing?)
      def  respond_to_missing?(name, *args, **kwargs)
        instance.respond_to?(name) || super
      end
    else
      def respond_to?(name, *args, **kwargs)
        instance.respond_to?(name) || super
      end
    end
    def method_missing(name, *args, **kwargs, &block)
      if instance.respond_to?(name)
        instance.__send__(name, *args, **kwargs, &block)
      else
        super
      end
    end
  end
  super
end

def method_missing(name, *args, &block)

def method_missing(name, *args, &block)
  if instance.respond_to?(name)
    instance.__send__(name, *args, &block)
  else
    super
  end
end

def method_missing(name, *args, **kwargs, &block)

def method_missing(name, *args, **kwargs, &block)
  if instance.respond_to?(name)
    instance.__send__(name, *args, **kwargs, &block)
  else
    super
  end
end

def respond_to?(name, *args)

def respond_to?(name, *args)
  instance.respond_to?(name) || super
end

def respond_to?(name, *args, **kwargs)

def respond_to?(name, *args, **kwargs)
  instance.respond_to?(name) || super
end

def respond_to_missing?(name, *args)

def  respond_to_missing?(name, *args)
  instance.respond_to?(name) || super
end

def respond_to_missing?(name, *args, **kwargs)

def  respond_to_missing?(name, *args, **kwargs)
  instance.respond_to?(name) || super
end