Class: SexyPgConstraints::Deconstrainer
- Inherits:
-
Object
- Object
- SexyPgConstraints::Deconstrainer
show all
- Includes:
- Helpers
- Defined in:
- lib/sexy_pg_constraints/deconstrainer.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Helpers
included
Constructor Details
#initialize(table, columns = []) ⇒ Deconstrainer
Returns a new instance of Deconstrainer.
5
6
7
8
|
# File 'lib/sexy_pg_constraints/deconstrainer.rb', line 5
def initialize(table, columns = [])
@table = table.to_s
@columns = columns
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(column, *constraints) ⇒ Object
10
11
12
|
# File 'lib/sexy_pg_constraints/deconstrainer.rb', line 10
def method_missing(column, *constraints)
self.class.drop_constraints(@table, column.to_s, *constraints)
end
|
Class Method Details
.drop_constraints(table, column, *constraints) ⇒ Object
24
25
26
27
28
|
# File 'lib/sexy_pg_constraints/deconstrainer.rb', line 24
def drop_constraints(table, column, *constraints)
constraints.each do |type|
execute "alter table #{table} drop constraint #{make_title(table, column, type)};"
end
end
|
Instance Method Details
#[](*columns) ⇒ Object
14
15
16
17
|
# File 'lib/sexy_pg_constraints/deconstrainer.rb', line 14
def [](*columns)
@columns = columns.map{|c| c.to_s}
self
end
|
#all(*constraints) ⇒ Object
19
20
21
|
# File 'lib/sexy_pg_constraints/deconstrainer.rb', line 19
def all(*constraints)
self.class.drop_constraints(@table, @columns, *constraints)
end
|