Class: Wright::Resource

Inherits:
Object
  • Object
show all
Defined in:
lib/wright/resource.rb,
lib/wright/resource/file.rb,
lib/wright/resource/user.rb,
lib/wright/resource/group.rb,
lib/wright/resource/package.rb,
lib/wright/resource/symlink.rb,
lib/wright/resource/directory.rb

Overview

Resource base class.

Direct Known Subclasses

Directory, File, Group, Package, Symlink, User

Defined Under Namespace

Classes: Directory, File, Group, Package, Symlink, User

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name = nil) ⇒ Resource

Initializes a Resource.



12
13
14
15
16
17
18
19
# File 'lib/wright/resource.rb', line 12

def initialize(name = nil)
  @name = name
  @resource_name = Util.class_to_resource_name(self.class).to_sym
  @provider = provider_for_resource
  @action = nil
  @on_update = nil
  @ignore_failure = false
end

Instance Attribute Details

#actionSymbol



22
23
24
# File 'lib/wright/resource.rb', line 22

def action
  @action
end

#ignore_failureBool



25
26
27
# File 'lib/wright/resource.rb', line 25

def ignore_failure
  @ignore_failure
end

#nameString

Returns the resource’s name attribute.

Examples:

foo = Wright::Resource::Symlink.new('/tmp/fstab')
foo.name
# => "/tmp/fstab"

bar = Wright::Resource::Symlink.new
bar.name = '/tmp/passwd'
bar.name
# => "/tmp/passwd"


38
39
40
# File 'lib/wright/resource.rb', line 38

def name
  @name
end

#resource_nameSymbol (readonly)

Returns a compact resource name.

Examples:

foo = Wright::Resource::Symlink.new
foo.resource_name
# => :symlink


46
47
48
# File 'lib/wright/resource.rb', line 46

def resource_name
  @resource_name
end

Instance Method Details

#on_update=(on_update) ⇒ void

This method returns an undefined value.

Sets an update action for a resource.

Raises:

  • (ArgumentError)

    if on_update is not callable



55
56
57
58
59
60
61
# File 'lib/wright/resource.rb', line 55

def on_update=(on_update)
  if on_update.respond_to?(:call) || on_update.nil?
    @on_update = on_update
  else
    fail ArgumentError, "#{on_update} is not callable"
  end
end

#run_actionObject

Runs the resource’s current action.

Examples:

fstab = Wright::Resource::Symlink.new('/tmp/fstab')
fstab.action = :remove
fstab.run_action


71
72
73
# File 'lib/wright/resource.rb', line 71

def run_action
  send @action if @action
end