Austin is right. If you're checking types, that isn't duck typing.
Boy, we really love to argue about semantics, don't we?
What does it matter whether Ducktator "implements duck typing" or "validates duck types" or "enforces duckly contracts" or "ducktates method signatures" or "imposes a reducktionist philosophy" or "is just ducky" or is none of those things?
Is the term "duck typing" overloaded? Yes (see Eric's ruby-talk:215359). Is it getting more overloaded? Yes. Do newbs come in here with opinions of the meaning of "duck typing" that differ from yours? Yes. Is that going to happen more frequently? Probably. Is that going to prevent you from explaining what you mean by example? No. Do we need separate terms to describe the different meanings Eric enumerated (and potentially others)? Well, no, but it'd be helpful. I'll start.
For backwards compatibility with the great majority, "duck typing" will mean "just calling methods on an object, without doing any validation on the behavior of that object."* Using respond_to? as a guard -- let's call that "duck but verify." Using is_a? (and friends) as a guard -- well, "crap" comes to mind, but let's just go with "Class testing."
(On a related note... we didn't ever decide on a replacement for the term "singleton class," did we? I liked "shadow class," myself. :P)
And "static" means "not at run-time," no?
Devin
(In short: "What matz said.")
* Though, for me, "duck typing" meant just that: If it looks like a duck and walks like a duck... Which allows for pretty much anything except Class testing (sticking a q-tip in the duck's mouth and waiting 2 weeks for the lab tests to come back). Really, "just calling methods" is more equivalent to catching something, stripping it, cooking it, taking a bite, and going "yup, tastes like duck." But hey, peer pressure.