Class: EndPoint

Inherits:
Object
  • Object
show all
Defined in:
lib/custom_range.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(value, range_set) ⇒ EndPoint

Returns a new instance of EndPoint.



18
19
20
21
# File 'lib/custom_range.rb', line 18

def initialize(value, range_set)
  @range_set = range_set
  @index = self.send("index_from_" + value_type(value), value)
end

Instance Attribute Details

#indexObject

Returns the value of attribute index.



16
17
18
# File 'lib/custom_range.rb', line 16

def index
  @index
end

Instance Method Details

#<=>(end_point) ⇒ Object



39
40
41
# File 'lib/custom_range.rb', line 39

def <=>(end_point)
  @index <=> end_point.index
end

#index_from_integer(value) ⇒ Object



23
24
25
# File 'lib/custom_range.rb', line 23

def index_from_integer(value)
  value % @range_set.size
end

#index_from_string(value) ⇒ Object



27
28
29
# File 'lib/custom_range.rb', line 27

def index_from_string(value)
  @range_set.index(value)
end

#index_from_symbol(value) ⇒ Object



31
32
33
# File 'lib/custom_range.rb', line 31

def index_from_symbol(value)
  index_from_string(value.to_s)
end

#succObject



35
36
37
# File 'lib/custom_range.rb', line 35

def succ
  EndPoint.new(@index + 1, @range_set)
end

#to_sObject



49
50
51
# File 'lib/custom_range.rb', line 49

def to_s
  @range_set[@index].to_s
end

#value_type(value) ⇒ Object



43
44
45
46
47
# File 'lib/custom_range.rb', line 43

def value_type(value)
  kind = [Integer, String, Symbol].find {|type| value.kind_of? type}.to_s.downcase
  puts kind
  return kind
end