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



8
9
10
11
# File 'lib/stagehand/connection_adapter_extensions.rb', line 8

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



28
29
30
31
32
33
34
# File 'lib/stagehand/connection_adapter_extensions.rb', line 28

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

#exec_deleteObject



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

def exec_delete(*)
  handle_readonly_writes!
  super
end

#exec_insertObject



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

def exec_insert(*)
  handle_readonly_writes!
  super
end

#exec_updateObject



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

def exec_update(*)
  handle_readonly_writes!
  super
end

#readonly!(state = true) ⇒ Object



36
37
38
# File 'lib/stagehand/connection_adapter_extensions.rb', line 36

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

#readonly?Boolean

Returns:

  • (Boolean)


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

def readonly?
  !!@readonly
end