Module: Prick::Ensure

Included in:
Build, Database, Rdbms
Defined in:
lib/prick/ensure.rb

Overview

Example:

class Some
  include Ensure

  def exist?() ... end
  def create() ... end
  def destroy() ... end

  def loaded?() ... end
  def load() ... end
  def unload() ... end

  @ensure_states = {
    exist: [:create, :destroy],
    loaded: [:exist, :load, :unload] # Depends on :exist
  }
end

some = Some.new
some.ensure_state(:loaded) # -> calls #create and then #load
some.revoke_state(:loaded) # -> calls #unload but not #destroy
some.ensure_state_value(:exist, false) # same as #revoke_state(:exist)

Instance Method Summary collapse

Instance Method Details

#ensure_state(state, *args) ⇒ Object



27
# File 'lib/prick/ensure.rb', line 27

def ensure_state(state, *args) ensure_state_value(state, true, *args) end

#ensure_state_value(state, value, *args) ⇒ Object



29
# File 'lib/prick/ensure.rb', line 29

def ensure_state_value(state, value, *args) EnsureMethods.ensure(self, state, value, *args) end

#revoke_state(state, *args) ⇒ Object



28
# File 'lib/prick/ensure.rb', line 28

def revoke_state(state, *args) ensure_state_value(state, false, *args) end