Module: Signoff
- Extended by:
- ActiveSupport::Concern
- Includes:
- Model
- Defined in:
- lib/signoff.rb,
lib/signoff/dsl.rb,
lib/signoff/model.rb,
lib/signoff/engine.rb,
lib/signoff/errors.rb,
lib/signoff/current.rb,
lib/signoff/version.rb,
lib/signoff/controller.rb,
lib/signoff/definition.rb,
app/models/signoff/event.rb,
lib/signoff/configuration.rb,
lib/generators/signoff/model/model_generator.rb,
lib/generators/signoff/install/install_generator.rb
Overview
Signoff adds concurrency-safe approval workflows with an immutable audit trail to ActiveRecord models.
class ExpenseReport < ApplicationRecord
include Signoff
signoff do
state :draft
state :manager_review
state :approved
state :rejected
transition :draft, to: :manager_review
transition :manager_review, to: :approved
reject_to :rejected
end
end
Including the module mixes in Signoff::Model (the signoff macro, transition methods, scopes and audit helpers). The same namespace also holds the configuration, the audit Event model and the supporting classes.
Defined Under Namespace
Modules: Controller, Generators, Model Classes: Configuration, Current, DSL, Definition, DefinitionError, Engine, Error, Event, InvalidTransitionError, MissingColumnError, NotConfiguredError, UnauthorizedError
Constant Summary collapse
- VERSION =
"0.1.0"
Class Method Summary collapse
-
.configuration ⇒ Object
(also: config)
The current global configuration.
-
.configure {|configuration| ... } ⇒ Object
Configure the gem, typically from an initializer:.
-
.reset_configuration! ⇒ Object
Reset configuration to defaults (primarily useful in tests).
Methods included from Model
#approve!, #approved?, #approved_by, #can_approve?, #can_reject?, #current_state, #last_approval, #last_rejection, #pending?, #reject!, #rejected?, #submit!, #workflow_history
Class Method Details
.configuration ⇒ Object Also known as: config
The current global configuration.
45 46 47 |
# File 'lib/signoff.rb', line 45 def configuration @configuration ||= Configuration.new end |
.configure {|configuration| ... } ⇒ Object
Configure the gem, typically from an initializer:
Signoff.configure do |config|
config.user_class = "User"
config.track_ip_addresses = true
end
56 57 58 |
# File 'lib/signoff.rb', line 56 def configure yield(configuration) end |
.reset_configuration! ⇒ Object
Reset configuration to defaults (primarily useful in tests).
61 62 63 |
# File 'lib/signoff.rb', line 61 def reset_configuration! @configuration = Configuration.new end |