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



14
15
16
17
18
# File 'lib/interval_notation/basic_intervals.rb', line 14

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

Instance Method Details

#closureObject



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/interval_notation/basic_intervals.rb', line 20

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)


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

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

#eql?(other) ⇒ Boolean

Returns:

  • (Boolean)


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

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

#finite?Boolean

Returns:

  • (Boolean)


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

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

#from_finite?Boolean

Returns:

  • (Boolean)


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

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

#from_infinite?Boolean

Returns:

  • (Boolean)


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

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

#from_to_sObject



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

def from_to_s; from_finite? ? from : MINUS_INFINITY_SYMBOL; end

#hashObject



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

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

#infinite?Boolean

Returns:

  • (Boolean)


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

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

#inspectObject



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

def inspect; to_s; end

#lengthObject



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

def length; to - from; end

#singular_point?Boolean

Returns:

  • (Boolean)


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

def singular_point?; false; end

#to_finite?Boolean

Returns:

  • (Boolean)


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

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

#to_infinite?Boolean

Returns:

  • (Boolean)


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

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

#to_interval_setObject



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

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

#to_to_sObject



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

def to_to_s; to_finite? ? to : PLUS_INFINITY_SYMBOL; end