instiki/vendor/rails/activesupport/lib/active_support/core_ext/range/blockless_step.rb
Jacques Distler d4f97345db Rails 2.1.1
Among other things, a security fix.
2008-09-07 00:54:05 -05:00

33 lines
904 B
Ruby

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