Class: SexyPgConstraints::Constrainer
- Inherits:
-
Object
- Object
- SexyPgConstraints::Constrainer
show all
- Includes:
- Helpers
- Defined in:
- lib/sexy_pg_constraints/constrainer.rb
Class Method Summary
collapse
Instance Method Summary
collapse
Methods included from Helpers
included
Constructor Details
#initialize(table, columns = []) ⇒ Constrainer
Returns a new instance of Constrainer.
5
6
7
8
|
# File 'lib/sexy_pg_constraints/constrainer.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/constrainer.rb', line 10
def method_missing(column, constraints)
self.class.add_constraints(@table, column.to_s, constraints)
end
|
Class Method Details
.add_constraints(table, column, constraints) ⇒ Object
24
25
26
27
28
29
30
31
|
# File 'lib/sexy_pg_constraints/constrainer.rb', line 24
def add_constraints(table, column, constraints)
constraints.each_pair do |type, options|
sql = "alter table #{table} add constraint #{make_title(table, column, type)} " +
SexyPgConstraints::Constraints.send(type, table, column, options) + ';'
execute sql
end
end
|
Instance Method Details
#[](*columns) ⇒ Object
14
15
16
17
|
# File 'lib/sexy_pg_constraints/constrainer.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/constrainer.rb', line 19
def all(constraints)
self.class.add_constraints(@table, @columns, constraints)
end
|