Close

This Range class basically generates a sequence of numbers:

### Announcement

You can find all my latest posts on medium.
```irb(main):045:0> (1..10)
=> 1..10
irb(main):046:0> (1..10).begin
=> 1
irb(main):047:0> (1..10).end
=> 10
irb(main):048:0> (1...10).begin
=> 1
irb(main):049:0> (1..10)
=> 1..10
irb(main):050:0> (1..10).class
=> Range
irb(main):051:0> (1..10).begin
=> 1
irb(main):052:0> (1..10).end
=> 10
irb(main):054:0> (1..10).include?(7)
=> true
irb(main):055:0> (1..10).include?(12)
=> false

# If you want to exclude the last value in a range, then use the ... notation while using the block-iterater:

irb(main):099:0> (1..5).each {|v| puts v}
1
2
3
4
5
=> 1..5
irb(main):100:0> (1...5).each {|v| puts v}
1
2
3
4
=> 1...5
irb(main):101:0>

```

A range also includes the enumerable module, this means you can do thing like as follows:

```# Use a range to create an array:
irb(main):056:0> (1..10).map {"hello"}
=> ["hello", "hello", "hello", "hello", "hello", "hello", "hello", "hello", "hello", "hello"]

# or:

irb(main):058:0> (1..10).map {|number| number * 2}
=> [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]

# You can also iterate through strings:

aa
ab
ac

```

ranges also has a good integration with case-statements:

```# If we have the following script:
def bignumberchecker (value)
case value
when 1..10
puts "small number: #{value}"
when 11..100
puts "big number: #{value}"
else
puts "unknown number size: #{value}"
end
end

bignumberchecker 7
bignumberchecker 70
bignumberchecker 700

# The the output is:
PS C:\Temp\irb> ruby hashes.rb
small number: 7
big number: 70
unknown number size: 700

```

December 14, 2014