class Gluer::Registration

Attributes

args[R]
block[R]
context[R]
definition[R]
name[RW]

Public Class Methods

new(definition, context, args, block) click to toggle source
# File lib/gluer/registration.rb, line 7
def initialize(definition, context, args, block)
  @definition = definition
  @context = context
  @args = args
  @block = block
  @committed = false
  @rolled_back = false
end

Public Instance Methods

commit() click to toggle source
# File lib/gluer/registration.rb, line 16
def commit
  raise RuntimeError, 'already committed' if committed?
  commit_hook.call(registry, context, *args, &block)
  mark_committed
end
committed?() click to toggle source
# File lib/gluer/registration.rb, line 29
def committed?
  @committed
end
rollback() click to toggle source
# File lib/gluer/registration.rb, line 22
def rollback
  raise RuntimeError, 'not committed' unless committed?
  raise RuntimeError, 'already rolled back' if rolled_back?
  rollback_hook.call(registry, context, *args, &block)
  mark_rolled_back
end
rolled_back?() click to toggle source
# File lib/gluer/registration.rb, line 33
def rolled_back?
  @rolled_back
end

Private Instance Methods

commit_hook() click to toggle source
# File lib/gluer/registration.rb, line 48
def commit_hook
  definition.commit_hook
end
mark_committed() click to toggle source
# File lib/gluer/registration.rb, line 40
def mark_committed
  @committed = true
end
mark_rolled_back() click to toggle source
# File lib/gluer/registration.rb, line 44
def mark_rolled_back
  @rolled_back = true
end
registry() click to toggle source
# File lib/gluer/registration.rb, line 56
def registry
  @registry ||= definition.registry_factory.call
end
rollback_hook() click to toggle source
# File lib/gluer/registration.rb, line 52
def rollback_hook
  definition.rollback_hook
end