Class: Sbuilder::DomainRange

Inherits:
Domain
  • Object
show all
Includes:
Utils::MyLogger
Defined in:
lib/sbuilder/domain_range.rb

Constant Summary collapse

PROGNAME =

progname for logger default class name

nil

Constants included from Utils::MyLogger

Utils::MyLogger::LOGFILE

Instance Attribute Summary collapse

Attributes inherited from Domain

#extension, #name

Constructor & configure collapse

Override from base class collapse

Methods included from Utils::MyLogger

#getLogger, #logfile

Methods inherited from Domain

#domain_values, #nilValue, #numberOfElements, #render_entry, #setExtension, #setName, #tlaBaseType, #to_s

Constructor Details

#initialize(options = {}) ⇒ DomainRange

Returns a new instance of DomainRange.



19
20
21
22
23
24
# File 'lib/sbuilder/domain_range.rb', line 19

def initialize( options = {} )
  super( options )
  @logger = getLogger( PROGNAME, options )
  @logger.debug( "#{__method__} initialized" )
  
end

Instance Attribute Details

#rangeEndObject (readonly)



12
13
14
# File 'lib/sbuilder/domain_range.rb', line 12

def rangeEnd
  @rangeEnd
end

#rangeStartObject (readonly)



9
10
11
# File 'lib/sbuilder/domain_range.rb', line 9

def rangeStart
  @rangeStart
end

Instance Method Details

#cardinalityInteger

Returns #rangeEnd - #rangeStart + 1.

Returns:



50
51
52
# File 'lib/sbuilder/domain_range.rb', line 50

def cardinality
  rangeEnd - rangeStart + 1
end

#domain_entry(i) ⇒ rangeStart

Returns + i.

Parameters:

  • i (Integer|String)

    domain entry to access

Returns:



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/sbuilder/domain_range.rb', line 56

def domain_entry( i )
  
  # Convert to integer - if possible
  i = Integer(i ) unless i.is_a?( Integer )

  # Valid range index?
  if i<rangeStart || i>rangeEnd
    msg = <<-EOS
      Error in domain range #{i} 

      Valid domain index: #{rangeStart}..#{rangeEnd}
      EOS
    @logger.error "#{__method__}: #{msg}"
    raise DomainException, msg
  end

  i
end

#domain_rangeObject

Range overrides default implementation for ‘domain’, and return valid index for ‘domain_entry’.

(maybe extentended) domain



91
92
93
# File 'lib/sbuilder/domain_range.rb', line 91

def domain_range
  rangeStart..rangeEnd
end

#includeNilBoolean

Range does not include Nil in domain set.

Returns:

  • (Boolean)

    false overrides default



45
46
47
# File 'lib/sbuilder/domain_range.rb', line 45

def includeNil
  false
end

#render_valuesArray

Returns of intergers [#rangeStart..#rangeEnd].

Returns:



81
82
83
# File 'lib/sbuilder/domain_range.rb', line 81

def render_values
  (rangeStart..rangeEnd).to_a
end

#setRange(rangeStart, rangeEnd) ⇒ Object

Set domain rangeStart .. rangeEnd

Parameters:

  • rangeStart (Integer)
  • rangeEnd (Integer)


31
32
33
34
# File 'lib/sbuilder/domain_range.rb', line 31

def setRange( rangeStart, rangeEnd )
  @rangeStart = rangeStart
  @rangeEnd = rangeEnd
end

#stringize(val) ⇒ val

Returns no change (because integers should not be wrapped.

Returns:

  • (val)

    no change (because integers should not be wrapped



76
77
78
# File 'lib/sbuilder/domain_range.rb', line 76

def stringize( val )
  val
end