Module: Procedural::Adapters::PostgreSQLAdapter
- Defined in:
- lib/procedural/adapters/postgresql_adapter.rb
Instance Method Summary collapse
- #create_procedure(*args) ⇒ Object
- #create_trigger(*args) ⇒ Object
- #drop_procedure(*args) ⇒ Object
- #drop_trigger(*args) ⇒ Object
Instance Method Details
#create_procedure(*args) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/procedural/adapters/postgresql_adapter.rb', line 5 def create_procedure(*args) = args. procedure_name = args.shift language = .fetch(:language) returns = .fetch(:returns) sql = .fetch(:sql) { yield } execute("CREATE OR REPLACE FUNCTION \#{quote_column_name(procedure_name)}()\n RETURNS \#{returns}\n LANGUAGE \#{language}\nAS $$\n BEGIN\n \#{sql}\n END\n$$\n") end |
#create_trigger(*args) ⇒ Object
31 32 33 34 35 36 37 38 39 |
# File 'lib/procedural/adapters/postgresql_adapter.rb', line 31 def create_trigger(*args) = args. table_name = args.shift trigger_name = args.shift procedure_name = args.shift execute("CREATE TRIGGER #{quote_column_name(trigger_name)} BEFORE INSERT OR UPDATE ON #{quote_table_name(table_name)} FOR EACH ROW EXECUTE PROCEDURE #{quote_column_name(procedure_name)}()") end |
#drop_procedure(*args) ⇒ Object
25 26 27 28 29 |
# File 'lib/procedural/adapters/postgresql_adapter.rb', line 25 def drop_procedure(*args) procedure_name = args.shift execute("DROP FUNCTION IF EXISTS #{quote_column_name(procedure_name)}()") end |
#drop_trigger(*args) ⇒ Object
41 42 43 44 45 46 |
# File 'lib/procedural/adapters/postgresql_adapter.rb', line 41 def drop_trigger(*args) table_name = args.shift trigger_name = args.shift execute("DROP TRIGGER IF EXISTS #{quote_column_name(trigger_name)} ON #{quote_table_name(table_name)}") end |