RUBY-596 Move common view cursor behaviour into iterable module