Class: SchemaMonkey::Monkey
- Inherits:
-
Object
- Object
- SchemaMonkey::Monkey
- Defined in:
- lib/schema_monkey/monkey.rb
Overview
The main manager for the monkey patches. Singleton instance created by SchemaMonkey.monkey
Instance Method Summary collapse
-
#initialize ⇒ Monkey
constructor
A new instance of Monkey.
- #insert(dbm: nil) ⇒ Object
- #register(mod) ⇒ Object
Constructor Details
#initialize ⇒ Monkey
Returns a new instance of Monkey.
8 9 10 11 12 13 |
# File 'lib/schema_monkey/monkey.rb', line 8 def initialize @client_map = {} @inserted = nil @inserted_dbm = nil Module.insert ::ActiveRecord::ConnectionAdapters::AbstractAdapter, SchemaMonkey::ActiveRecord::ConnectionAdapters::AbstractAdapter end |
Instance Method Details
#insert(dbm: nil) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/schema_monkey/monkey.rb', line 22 def insert(dbm: nil) insert if dbm and not @inserted # first do all non-dbm-specific insertions @client_map.values.each &it.insert(dbm: dbm) @inserted = true @inserted_dbm = dbm if dbm end |
#register(mod) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/schema_monkey/monkey.rb', line 15 def register(mod) @client_map[mod] ||= Client.new(mod).tap { |client| client.insert if @inserted client.insert(dbm: @inserted_dbm) if @inserted_dbm } end |