Class: Bricolage::JobNet::Ref

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

Direct Known Subclasses

JobNetRef, JobRef

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(subsys, name, location) ⇒ Ref

Returns a new instance of Ref.



357
358
359
360
361
# File 'lib/bricolage/jobnet.rb', line 357

def initialize(subsys, name, location)
  @subsystem = subsys
  @name = name
  @location = location
end

Instance Attribute Details

#locationObject (readonly)

Returns the value of attribute location.



365
366
367
# File 'lib/bricolage/jobnet.rb', line 365

def location
  @location
end

#nameObject (readonly)

Returns the value of attribute name.



364
365
366
# File 'lib/bricolage/jobnet.rb', line 364

def name
  @name
end

#subsystemObject (readonly)

Returns the value of attribute subsystem.



363
364
365
# File 'lib/bricolage/jobnet.rb', line 363

def subsystem
  @subsystem
end

Class Method Details

.parse(ref, curr_subsys = nil, location = Location.dummy) ⇒ Object



345
346
347
348
349
350
351
352
353
354
355
# File 'lib/bricolage/jobnet.rb', line 345

def Ref.parse(ref, curr_subsys = nil, location = Location.dummy)
  m = %r<\A(\*)?(?:(\w[\w\-]*)/)?(@?\w[\w\-]*)\z>.match(ref) or
      raise ParameterError, "bad job name: #{ref.inspect}"
  is_net, subsys, name = m.captures
  ref_class = (is_net ? JobNetRef : JobRef)
  node_subsys = subsys || curr_subsys
  unless node_subsys
    raise ParameterError, "missing subsystem: #{ref}"
  end
  ref_class.new(node_subsys, name, location)
end

Instance Method Details

#==(other) ⇒ Object Also known as: eql?



375
376
377
# File 'lib/bricolage/jobnet.rb', line 375

def ==(other)
  to_s == other.to_s
end

#dummy?Boolean

Returns:

  • (Boolean)


385
386
387
# File 'lib/bricolage/jobnet.rb', line 385

def dummy?
  @name[0] == '@'
end

#hashObject



381
382
383
# File 'lib/bricolage/jobnet.rb', line 381

def hash
  to_s.hash
end

#inspectObject



367
368
369
# File 'lib/bricolage/jobnet.rb', line 367

def inspect
  "\#<#{self.class} #{to_s}>"
end

#to_sObject



371
372
373
# File 'lib/bricolage/jobnet.rb', line 371

def to_s
  @ref ||= [@subsystem, @name].compact.join('/')
end