Class/Module Index [+]

Quicksearch

Ironfan::Provider::Resource

Attributes

owner[RW]
users[RW]

Public Class Methods

aggregate!(*p) click to toggle source
# File lib/ironfan/provider.rb, line 97
def self.aggregate!(*p)           Ironfan.noop(self,__method__,*p);   end
create!(*p) click to toggle source

Manipulation

# File lib/ironfan/provider.rb, line 94
def self.create!(*p)              Ironfan.noop(self,__method__,*p);   end
destroy!(*p) click to toggle source
# File lib/ironfan/provider.rb, line 98
def self.destroy!(*p)             Ironfan.noop(self,__method__,*p);   end
forget(id) click to toggle source
# File lib/ironfan/provider.rb, line 134
def self.forget(id)
  self.known.delete(id)
end
forget!() click to toggle source
# File lib/ironfan/provider.rb, line 130
def self.forget!
  @@known[self.name] = { }
end
handle() click to toggle source
# File lib/ironfan/provider.rb, line 67
def self.handle ; name.to_s.gsub(/.*::/,'').to_sym ; end
known() click to toggle source

Provide a separate namespace in @@known for each subclass

# File lib/ironfan/provider.rb, line 139
def self.known
  @@known[self.name] ||= {}
end
load!(*p) click to toggle source

Discovery

# File lib/ironfan/provider.rb, line 85
def self.load!(*p)                Ironfan.noop(self,__method__,*p);   end
multiple?() click to toggle source

Can multiple instances of this resource be associated with the computer?

# File lib/ironfan/provider.rb, line 80
def self.multiple?()              false;                  end
patiently(name, error_class, options={}) click to toggle source
# File lib/ironfan/provider.rb, line 143
def self.patiently(name, error_class, options={})
  options[:message]    ||= 'ignoring %s'
  options[:wait_time]  ||= 1
  options[:max_tries]  ||= 10

  success = false
  tries   = 0
  until success or (tries > options[:max_tries]) do
    begin
      result = yield
      success = true # If we made it to this line, the yield didn't raise an exception
    rescue error_class => e
      tries += 1
      if options[:ignore] and options[:ignore].call(e)
        success = true
        Ironfan.substep(name, options[:message] % e.message, options[:display] ? :red : :gray)
      else
        Ironfan.substep(name, options[:message] % e.message, options[:display] ? :red : :gray)
        Ironfan.substep(name, "sleeping #{options[:sleep_time]} second(s) before trying again")
        sleep options[:wait_time]
        result = e
      end
    end
  end
prepare!(*p) click to toggle source
# File lib/ironfan/provider.rb, line 96
def self.prepare!(*p)             Ironfan.noop(self,__method__,*p);   end
recall(id=nil) click to toggle source
# File lib/ironfan/provider.rb, line 125
def self.recall(id=nil)
  return self.known if id.nil?
  self.known[id]
end
recall?(id) click to toggle source
# File lib/ironfan/provider.rb, line 121
def self.recall?(id)
  self.known.include? id
end
receive(obj) click to toggle source
# File lib/ironfan/provider.rb, line 69
def self.receive(obj)
  obj = obj.symbolize_keys if obj.is_a?(Hash)
  super(obj)
end
register(native) click to toggle source

Register and return the (adapted) object with the collection

# File lib/ironfan/provider.rb, line 115
def self.register(native)
  result = new(:adaptee => native) or return
  remember result
  result
end
remember(resource,options={}) click to toggle source
# File lib/ironfan/provider.rb, line 108
def self.remember(resource,options={})
  index = options[:id] || resource.name
  index += options[:append_id] if options[:append_id]
  self.known[index] = resource
end
save!(*p) click to toggle source
# File lib/ironfan/provider.rb, line 95
def self.save!(*p)                Ironfan.noop(self,__method__,*p);   end
shared?() click to toggle source

Flags

Non-shared resources live and die with the computer

# File lib/ironfan/provider.rb, line 78
def self.shared?()                true;                   end
validate_computer!(*p) click to toggle source
# File lib/ironfan/provider.rb, line 86
def self.validate_computer!(*p)   Ironfan.noop(self,__method__,*p);   end
validate_resources!(*p) click to toggle source
# File lib/ironfan/provider.rb, line 87
def self.validate_resources!(*p)  Ironfan.noop(self,__method__,*p);   end

Public Instance Methods

bogus?() click to toggle source
# File lib/ironfan/provider.rb, line 65
def bogus?()                      !bogus.empty?;          end
on_correlate(*p) click to toggle source
# File lib/ironfan/provider.rb, line 89
def on_correlate(*p)              Ironfan.noop(self,__method__,*p);   end

[Validate]

Generated with the Darkfish Rdoc Generator 2.