Module: Stagehand::Connection::AdapterExtensions

Defined in:
lib/stagehand/connection_adapter_extensions.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.prepended(base) ⇒ Object



12
13
14
15
# File 'lib/stagehand/connection_adapter_extensions.rb', line 12

def self.prepended(base)
  base.set_callback :checkout, :after, :update_readonly_state
  base.set_callback :checkin, :before, :clear_readonly_state
end

Instance Method Details

#allow_writes(&block) ⇒ Object



32
33
34
35
36
37
38
# File 'lib/stagehand/connection_adapter_extensions.rb', line 32

def allow_writes(&block)
  state = readonly?
  readonly!(true)
  return block.call
ensure
  readonly!(state)
end

#exec_deleteObject



27
28
29
30
# File 'lib/stagehand/connection_adapter_extensions.rb', line 27

def exec_delete(*)
  handle_readonly_writes!
  super
end

#exec_insertObject



17
18
19
20
# File 'lib/stagehand/connection_adapter_extensions.rb', line 17

def exec_insert(*)
  handle_readonly_writes!
  super
end

#exec_updateObject



22
23
24
25
# File 'lib/stagehand/connection_adapter_extensions.rb', line 22

def exec_update(*)
  handle_readonly_writes!
  super
end

#readonly!(state = true) ⇒ Object



40
41
42
# File 'lib/stagehand/connection_adapter_extensions.rb', line 40

def readonly!(state = true)
  @readonly = state
end

#readonly?Boolean

Returns:

  • (Boolean)


44
45
46
# File 'lib/stagehand/connection_adapter_extensions.rb', line 44

def readonly?
  !!@readonly
end