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.



333
334
335
336
337
# File 'lib/bricolage/jobnet.rb', line 333

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

Instance Attribute Details

#locationObject (readonly)

Returns the value of attribute location.



341
342
343
# File 'lib/bricolage/jobnet.rb', line 341

def location
  @location
end

#nameObject (readonly)

Returns the value of attribute name.



340
341
342
# File 'lib/bricolage/jobnet.rb', line 340

def name
  @name
end

#subsystemObject (readonly)

Returns the value of attribute subsystem.



339
340
341
# File 'lib/bricolage/jobnet.rb', line 339

def subsystem
  @subsystem
end

Class Method Details

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



321
322
323
324
325
326
327
328
329
330
331
# File 'lib/bricolage/jobnet.rb', line 321

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?



351
352
353
# File 'lib/bricolage/jobnet.rb', line 351

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

#dummy?Boolean

Returns:

  • (Boolean)


361
362
363
# File 'lib/bricolage/jobnet.rb', line 361

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

#hashObject



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

def hash
  to_s.hash
end

#inspectObject



343
344
345
# File 'lib/bricolage/jobnet.rb', line 343

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

#to_sObject



347
348
349
# File 'lib/bricolage/jobnet.rb', line 347

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