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
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 |
# 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
26 27 28 29 30 31 32 |
# File 'lib/loco/hub.rb', line 26 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
34 35 36 37 38 39 40 |
# File 'lib/loco/hub.rb', line 34 def del_member member serialized = serialize member return nil unless raw_members.include? serialized raw_members.delete serialized save serialized end |
#destroy ⇒ Object
42 43 44 45 |
# File 'lib/loco/hub.rb', line 42 def destroy WsConnectionStorage.current.del @name true end |
#include?(resource) ⇒ Boolean
52 53 54 |
# File 'lib/loco/hub.rb', line 52 def include? resource raw_members.include? serialize(resource) end |
#members ⇒ Object
56 57 58 59 60 61 |
# File 'lib/loco/hub.rb', line 56 def members raw_members.map do |str| klass, id = str.split ':' klass.classify.constantize.find_by id: id end end |
#name ⇒ Object
22 23 24 |
# File 'lib/loco/hub.rb', line 22 def name @name.split(PREFIX).last end |
#save ⇒ Object
47 48 49 50 |
# File 'lib/loco/hub.rb', line 47 def save WsConnectionStorage.current.set @name, raw_members.to_json self end |