Method: Code::Object::Range#code_step

Defined in:
lib/code/object/range.rb

#code_step(argument) ⇒ Object



158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
# File 'lib/code/object/range.rb', line 158

def code_step(argument)
  code_argument = argument.to_code

  code_list = List.new
  code_element = code_left
  code_list.code_append(code_element)

  code_element = code_element.code_plus(code_argument)

  if exclude_end?
    while code_element.code_inferior(code_right).truthy?
      code_list.code_append(code_element)
      code_element = code_element.code_plus(code_argument)
    end
  else
    while code_element.code_inferior_or_equal(code_right).truthy?
      code_list.code_append(code_element)
      code_element = code_element.code_plus(code_argument)
    end
  end

  code_list
end