Class: Loco::Hub
- Inherits:
-
Object
- Object
- Loco::Hub
- Defined in:
- lib/loco/hub.rb
Constant Summary collapse
- PREFIX =
'loco:hub:'
Instance Attribute Summary collapse
-
#raw_members ⇒ Object
readonly
Returns the value of attribute raw_members.
Class Method Summary collapse
Instance Method Summary collapse
- #add_member(member) ⇒ Object
- #del_member(member) ⇒ Object
- #destroy ⇒ Object
- #include?(resource) ⇒ Boolean
-
#initialize(name, members = []) ⇒ Hub
constructor
A new instance of Hub.
- #members ⇒ Object
- #name ⇒ Object
- #save ⇒ Object
Constructor Details
#initialize(name, members = []) ⇒ Hub
Returns a new instance of Hub.
9 10 11 12 |
# File 'lib/loco/hub.rb', line 9 def initialize(name, members = []) @name = "#{PREFIX}#{name}" @raw_members = members.map { |m| serialize m } end |
Instance Attribute Details
#raw_members ⇒ Object (readonly)
Returns the value of attribute raw_members.
7 8 9 |
# File 'lib/loco/hub.rb', line 7 def raw_members @raw_members end |
Class Method Details
.get(name) ⇒ Object
15 16 17 18 19 20 |
# File 'lib/loco/hub.rb', line 15 def get(name) hub = WsConnectionStorage.current.get "#{PREFIX}#{name}" return nil if hub.blank? new name, JSON.parse(hub) end |
Instance Method Details
#add_member(member) ⇒ Object
27 28 29 30 31 32 33 34 |
# File 'lib/loco/hub.rb', line 27 def add_member(member) serialized = serialize member return raw_members if raw_members.include? serialized raw_members << serialized save raw_members end |
#del_member(member) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/loco/hub.rb', line 36 def del_member(member) serialized = serialize member return nil unless raw_members.include? serialized raw_members.delete serialized save serialized end |
#destroy ⇒ Object
45 46 47 48 |
# File 'lib/loco/hub.rb', line 45 def destroy WsConnectionStorage.current.del @name true end |
#include?(resource) ⇒ Boolean
55 56 57 |
# File 'lib/loco/hub.rb', line 55 def include?(resource) raw_members.include? serialize(resource) end |
#members ⇒ Object
59 60 61 62 63 64 |
# File 'lib/loco/hub.rb', line 59 def members raw_members.map do |str| klass, id = str.split ':' klass.classify.constantize.find_by id: id end end |
#name ⇒ Object
23 24 25 |
# File 'lib/loco/hub.rb', line 23 def name @name.split(PREFIX).last end |
#save ⇒ Object
50 51 52 53 |
# File 'lib/loco/hub.rb', line 50 def save WsConnectionStorage.current.set @name, raw_members.to_json self end |