Class: Rubber::Configuration::RoleItem

Inherits:
Object
  • Object
show all
Defined in:
lib/rubber/instance.rb

Overview

The configuration for a single role contained in the list of roles in InstanceItem

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, options = {}) ⇒ RoleItem

Returns a new instance of RoleItem.



363
364
365
366
# File 'lib/rubber/instance.rb', line 363

def initialize(name, options={})
  @name = name
  @options = options || {}
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



317
318
319
# File 'lib/rubber/instance.rb', line 317

def name
  @name
end

#optionsObject (readonly)

Returns the value of attribute options.



317
318
319
# File 'lib/rubber/instance.rb', line 317

def options
  @options
end

Class Method Details

.expand_role_dependencies(roles, dependency_map, expanded = []) ⇒ Object



319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
# File 'lib/rubber/instance.rb', line 319

def self.expand_role_dependencies(roles, dependency_map, expanded=[])
  roles = Array(roles)

  if expanded.size == 0
    common_deps = Array(dependency_map[RoleItem.new('common')])
    roles.concat(common_deps)
  end

  roles.each do |role|
    unless expanded.include?(role)
      expanded << role
      needed = dependency_map[role]
      expand_role_dependencies(needed, dependency_map, expanded)
    end
  end
  
  return expanded
end

.parse(str) ⇒ Object



338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
# File 'lib/rubber/instance.rb', line 338

def self.parse(str)
  data = str.split(':')
  role = Rubber::Configuration::RoleItem.new(data[0])
  if data[1]
    data[1].split(';').each do |pair|
      p = pair.split('=')
      val = case p[1]
              when 'true' then true
              when 'false' then false
              else p[1] end
      role.options[p[0]] = val
    end
  end
  return role
end

Instance Method Details

#<=>(rhs) ⇒ Object



377
378
379
# File 'lib/rubber/instance.rb', line 377

def <=>(rhs)
  return @name <=> rhs.name
end

#eql?(rhs) ⇒ Boolean Also known as: ==

Returns:

  • (Boolean)


368
369
370
# File 'lib/rubber/instance.rb', line 368

def eql?(rhs)
  rhs && @name == rhs.name && @options == rhs.options
end

#hashObject



373
374
375
# File 'lib/rubber/instance.rb', line 373

def hash
  @name.hash
end

#to_sObject



354
355
356
357
358
359
360
361
# File 'lib/rubber/instance.rb', line 354

def to_s
  str = @name
  @options.each_with_index do |kv, i|
    str += (i == 0 ? ':' : ';')
    str += "#{kv[0]}=#{kv[1]}"
  end
  return str
end