Class: Libertree::Model::Forest
- Inherits:
-
Object
- Object
- Libertree::Model::Forest
- Defined in:
- lib/libertree/model/forest.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add(server) ⇒ Object
- #local? ⇒ Boolean
- #local_is_member? ⇒ Boolean
- #origin ⇒ Object
- #remove(server) ⇒ Object
-
#set_trees_by_domain(domains) ⇒ Array(Model::Server)
Any new Server records that were created.
- #trees ⇒ Object (also: #servers)
Class Method Details
.all_local_is_member ⇒ Object
50 51 52 |
# File 'lib/libertree/model/forest.rb', line 50 def self.all_local_is_member where local_is_member: true end |
Instance Method Details
#add(server) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/libertree/model/forest.rb', line 21 def add(server) DB.dbh[ %{ INSERT INTO forests_servers ( forest_id, server_id ) SELECT ?, ? WHERE NOT EXISTS( SELECT 1 FROM forests_servers fs2 WHERE fs2.forest_id = ? AND fs2.server_id = ? ) }, self.id, server.id, self.id, server.id ].get end |
#local? ⇒ Boolean
47 48 49 |
# File 'lib/libertree/model/forest.rb', line 47 def local? ! origin_server_id end |
#local_is_member? ⇒ Boolean
58 59 60 |
# File 'lib/libertree/model/forest.rb', line 58 def local_is_member? local_is_member end |
#origin ⇒ Object
54 55 56 |
# File 'lib/libertree/model/forest.rb', line 54 def origin Server[origin_server_id] end |
#remove(server) ⇒ Object
43 44 45 |
# File 'lib/libertree/model/forest.rb', line 43 def remove(server) DB.dbh[ "DELETE FROM forests_servers WHERE forest_id = ? AND server_id = ?", self.id, server.id ].get end |
#set_trees_by_domain(domains) ⇒ Array(Model::Server)
Returns any new Server records that were created.
64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/libertree/model/forest.rb', line 64 def set_trees_by_domain(domains) DB.dbh[ "DELETE FROM forests_servers WHERE forest_id = ?", self.id ].get new_trees = [] domains.each do |domain| tree = Model::Server[domain: domain] if tree.nil? tree = Model::Server.create(domain: domain) new_trees << tree end self.add tree end new_trees end |
#trees ⇒ Object Also known as: servers
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/libertree/model/forest.rb', line 4 def trees Server.s( %{ SELECT s.* FROM forests_servers fs , servers s WHERE fs.forest_id = ? AND s.id = fs.server_id }, self.id ) end |