Module: IntervalNotation::BasicIntervals::ActslikeInterval

Included in:
ClosedClosedInterval, ClosedOpenInterval, OpenClosedInterval, OpenOpenInterval
Defined in:
lib/interval_notation/basic_intervals.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object



17
18
19
20
21
# File 'lib/interval_notation/basic_intervals.rb', line 17

def self.included(base)
  base.class_eval do
    attr_reader :from, :to
  end
end

Instance Method Details

#closureObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/interval_notation/basic_intervals.rb', line 23

def closure
  if from_finite?
    if to_finite?
      ClosedClosedInterval.new(from, to)
    else
      ClosedOpenInterval.new(from, to) # to == +∞
    end
  else
    if to_finite?
      OpenClosedInterval.new(from, to)  # from == -∞
    else
      OpenOpenInterval.new(from, to)  # from == -∞, to == +∞
    end
  end
end

#deep_include_position?(pos) ⇒ Boolean

include position and its vicinity

Returns:

  • (Boolean)


58
59
60
# File 'lib/interval_notation/basic_intervals.rb', line 58

def deep_include_position?(pos)
  from < pos && pos < to
end

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


55
# File 'lib/interval_notation/basic_intervals.rb', line 55

def eql?(other); other.class.equal?(self.class) && from.eql?(other.from) && to.eql?(other.to); end

#finite?Boolean

Returns:

  • (Boolean)


43
# File 'lib/interval_notation/basic_intervals.rb', line 43

def finite?; from_finite? && to_finite?; end

#from_finite?Boolean

Returns:

  • (Boolean)


41
# File 'lib/interval_notation/basic_intervals.rb', line 41

def from_finite?; from.to_f.finite?; end

#from_infinite?Boolean

Returns:

  • (Boolean)


44
# File 'lib/interval_notation/basic_intervals.rb', line 44

def from_infinite?; from.to_f.infinite?; end

#from_to_sObject



48
# File 'lib/interval_notation/basic_intervals.rb', line 48

def from_to_s; from_finite? ? from : MINUS_INFINITY_SYMBOL; end

#hashObject



54
# File 'lib/interval_notation/basic_intervals.rb', line 54

def hash; [@from, @to, include_from?, include_to?].hash; end

#infinite?Boolean

Returns:

  • (Boolean)


46
# File 'lib/interval_notation/basic_intervals.rb', line 46

def infinite?; from_infinite? || to_infinite?; end

#inspectObject



52
# File 'lib/interval_notation/basic_intervals.rb', line 52

def inspect; to_s; end

#lengthObject



51
# File 'lib/interval_notation/basic_intervals.rb', line 51

def length; to - from; end

#singular_point?Boolean

Returns:

  • (Boolean)


53
# File 'lib/interval_notation/basic_intervals.rb', line 53

def singular_point?; false; end

#to_finite?Boolean

Returns:

  • (Boolean)


42
# File 'lib/interval_notation/basic_intervals.rb', line 42

def to_finite?; to.to_f.finite?; end

#to_infinite?Boolean

Returns:

  • (Boolean)


45
# File 'lib/interval_notation/basic_intervals.rb', line 45

def to_infinite?; to.to_f.infinite?; end

#to_interval_setObject



39
# File 'lib/interval_notation/basic_intervals.rb', line 39

def to_interval_set; IntervalSet.new([self]); end

#to_to_sObject



49
# File 'lib/interval_notation/basic_intervals.rb', line 49

def to_to_s; to_finite? ? to : PLUS_INFINITY_SYMBOL; end