33 lines
904 B
Ruby
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
|