Range#each yields String when its element responds to :to_str
on ruby-2.0 or later.
see range_each() in range.c of ruby source code.
str1 = OSX::NSString.stringWithString('A')
str2 = OSX::NSString.stringWithString('Z')
(str1..str2).each do |s|
# `s' is OSX::NSString on ruby-1.8
# `s' becomes String on ruby-2.0 or later
:
end