instiki/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb

33 lines
904 B
Ruby
Raw Normal View History

module ActiveSupport #:nodoc:
module CoreExtensions #:nodoc:
module Range #:nodoc:
# Return an array when step is called without a block.
module BlocklessStep
def self.included(base) #:nodoc:
base.alias_method_chain :step, :blockless
end
if RUBY_VERSION < '1.9'
def step_with_blockless(value = 1, &block)
if block_given?
step_without_blockless(value, &block)
else
returning [] do |array|
step_without_blockless(value) { |step| array << step }
end
end
end
else
def step_with_blockless(value = 1, &block)
if block_given?
step_without_blockless(value, &block)
else
step_without_blockless(value).to_a
end
end
end
end
end
end
end