File: active_support/core_ext/range/blockless_step.rb

Overview
Module Structure
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: ActiveSupport#1
  module: CoreExtensions#2
  module: Range#3
  module: BlocklessStep#5
has properties
module method: included / 1 #6
method: step_with_blockless (1/2) / 2 #11
method: step_with_blockless (2/E) / 2 #21

Code

   1  module ActiveSupport #:nodoc:
   2    module CoreExtensions #:nodoc:
   3      module Range #:nodoc:
   4        # Return an array when step is called without a block.
   5        module BlocklessStep
   6          def self.included(base) #:nodoc:
   7            base.alias_method_chain :step, :blockless
   8          end
   9 
  10          if RUBY_VERSION < '1.9'
  11            def step_with_blockless(value = 1, &block)
  12              if block_given?
  13                step_without_blockless(value, &block)
  14              else
  15                [].tap do |array|
  16                  step_without_blockless(value) { |step| array << step }
  17                end
  18              end
  19            end
  20          else
  21            def step_with_blockless(value = 1, &block)
  22              if block_given?
  23                step_without_blockless(value, &block)
  24              else
  25                step_without_blockless(value).to_a
  26              end
  27            end
  28          end
  29        end
  30      end
  31    end
  32  end