Skip to content
Snippets Groups Projects
Commit 2465227d authored by Arnaud Levy's avatar Arnaud Levy
Browse files

abstract

parent 6cd1da85
No related branches found
No related tags found
No related merge requests found
......@@ -4,7 +4,7 @@ module WithConnections
included do
def self.has_connection(klass)
# university_organizations
relation = klass.to_s.underscore.gsub('/', '_').pluralize.to_sym
relation = relation_name klass
# University::Organization
class_name = klass.to_s
# :communication_website_id
......@@ -17,14 +17,29 @@ module WithConnections
association_foreign_key: association_foreign_key
end
protected
# University::Organization -> university_organizations
def self.relation_name(klass)
klass.to_s.underscore.gsub('/', '_').pluralize.to_sym
end
end
def connect(dependency)
return if dependency.in?(university_organizations)
university_organizations << dependency
relation = relation(dependency)
return if dependency.in?(relation)
relation << dependency
end
def disconnect(dependency)
university_organizations.delete dependency
relation(dependency).delete dependency
end
protected
def relation(instance)
relation_name = self.class.relation_name instance.class
send relation_name
end
end
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment