litecable 0.4.1 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +34 -1
  3. data/LICENSE.txt +1 -1
  4. data/README.md +30 -28
  5. data/lib/lite_cable.rb +23 -2
  6. data/lib/lite_cable/anycable.rb +23 -14
  7. data/lib/lite_cable/broadcast_adapters.rb +35 -0
  8. data/lib/lite_cable/broadcast_adapters/any_cable.rb +11 -0
  9. data/lib/lite_cable/broadcast_adapters/base.rb +17 -0
  10. data/lib/lite_cable/broadcast_adapters/memory.rb +11 -0
  11. data/lib/lite_cable/channel.rb +1 -0
  12. data/lib/lite_cable/channel/base.rb +4 -2
  13. data/lib/lite_cable/channel/registry.rb +5 -0
  14. data/lib/lite_cable/channel/streams.rb +1 -2
  15. data/lib/lite_cable/coders.rb +1 -0
  16. data/lib/lite_cable/coders/json.rb +1 -0
  17. data/lib/lite_cable/coders/raw.rb +2 -1
  18. data/lib/lite_cable/config.rb +8 -6
  19. data/lib/lite_cable/connection.rb +1 -0
  20. data/lib/lite_cable/connection/authorization.rb +1 -0
  21. data/lib/lite_cable/connection/base.rb +2 -2
  22. data/lib/lite_cable/connection/identification.rb +3 -0
  23. data/lib/lite_cable/connection/streams.rb +1 -0
  24. data/lib/lite_cable/connection/subscriptions.rb +7 -2
  25. data/lib/lite_cable/internal.rb +1 -0
  26. data/lib/lite_cable/logging.rb +4 -2
  27. data/lib/lite_cable/server.rb +1 -6
  28. data/lib/lite_cable/server/client_socket.rb +1 -0
  29. data/lib/lite_cable/server/client_socket/base.rb +17 -21
  30. data/lib/lite_cable/server/client_socket/subscriptions.rb +3 -2
  31. data/lib/lite_cable/server/heart_beat.rb +4 -1
  32. data/lib/lite_cable/server/middleware.rb +7 -6
  33. data/lib/lite_cable/server/subscribers_map.rb +3 -0
  34. data/lib/lite_cable/version.rb +2 -1
  35. data/lib/litecable.rb +1 -0
  36. metadata +31 -77
  37. data/.gitignore +0 -40
  38. data/.rubocop.yml +0 -63
  39. data/.travis.yml +0 -7
  40. data/Gemfile +0 -4
  41. data/Rakefile +0 -6
  42. data/bin/console +0 -14
  43. data/bin/setup +0 -8
  44. data/circle.yml +0 -8
  45. data/examples/sinatra/Gemfile +0 -16
  46. data/examples/sinatra/Procfile +0 -3
  47. data/examples/sinatra/README.md +0 -33
  48. data/examples/sinatra/anycable +0 -18
  49. data/examples/sinatra/app.rb +0 -52
  50. data/examples/sinatra/assets/app.css +0 -169
  51. data/examples/sinatra/assets/cable.js +0 -584
  52. data/examples/sinatra/assets/reset.css +0 -223
  53. data/examples/sinatra/bin/anycable-go +0 -0
  54. data/examples/sinatra/chat.rb +0 -39
  55. data/examples/sinatra/config.ru +0 -28
  56. data/examples/sinatra/views/index.slim +0 -8
  57. data/examples/sinatra/views/layout.slim +0 -15
  58. data/examples/sinatra/views/login.slim +0 -8
  59. data/examples/sinatra/views/resetcss.slim +0 -224
  60. data/examples/sinatra/views/room.slim +0 -68
  61. data/litecable.gemspec +0 -33
@@ -1,68 +0,0 @@
1
- h2 ="Room: #{@room_id}"
2
-
3
- .messages#message_list
4
-
5
- .message-form
6
- form#message_form
7
- .row
8
- input#message_txt type="text" required="required"
9
- .row
10
- button.btn type="submit"
11
- span Send!
12
-
13
- javascript:
14
- var roomId = "#{{ @room_id }}";
15
- var user = "#{{ @user }}";
16
- var socketId = Date.now();
17
-
18
- var messageList = document.getElementById("message_list");
19
- var messageForm = document.getElementById("message_form");
20
- var textInput = document.getElementById("message_txt");
21
-
22
- messageForm.onsubmit = function(e){
23
- e.preventDefault();
24
- var msg = textInput.value;
25
- console.log("Send message", msg);
26
- textInput.value = null;
27
- chatChannel.perform('speak', { message: msg });
28
- };
29
-
30
- var escape = function(str) {
31
- return ('' + str).replace(/&/g, '&')
32
- .replace(/</g, '&lt;')
33
- .replace(/>/g, '&gt;')
34
- .replace(/"/g, '&quot;');
35
- }
36
-
37
- var addMessage = function(data){
38
- var node = document.createElement('div');
39
- var me = data['user'] == user && data['sid'] == socketId
40
- node.className = "message" + (me ? ' me' : '') + (data['system'] ? ' system' : '');
41
- node.innerHTML =
42
- '<div class="author">' + escape(data['user']) + '</div>' +
43
- '<div class="txt">' + escape(data['message']) + '</div>';
44
- messageList.appendChild(node);
45
- };
46
-
47
- ActionCable.startDebugging();
48
- var cable = ActionCable.createConsumer('#{{ CABLE_URL }}?sid=' + socketId);
49
-
50
- var chatChannel = cable.subscriptions.create(
51
- { channel: 'chat', id: roomId },
52
- {
53
- connected: function(){
54
- console.log("Connected");
55
- addMessage({ user: 'BOT', message: "I'm connected", system: true });
56
- },
57
-
58
- disconnected: function(){
59
- console.log("Connected");
60
- addMessage({ user: 'BOT', message: "Sorry, but you've been disconnected(", system: true });
61
- },
62
-
63
- received: function(data){
64
- console.log("Received", data);
65
- addMessage(data);
66
- }
67
- }
68
- )
@@ -1,33 +0,0 @@
1
- # coding: utf-8
2
- lib = File.expand_path('../lib', __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require 'lite_cable/version'
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "litecable"
8
- spec.version = LiteCable::VERSION
9
- spec.authors = ["palkan"]
10
- spec.email = ["dementiev.vm@gmail.com"]
11
-
12
- spec.summary = %q{Fat-free ActionCable implementation}
13
- spec.description = %q{Fat-free ActionCable implementation for using with AnyCable (and without Rails)}
14
- spec.homepage = "https://github.com/anycable/litecable"
15
- spec.license = "MIT"
16
-
17
- spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
- spec.require_paths = ["lib"]
19
-
20
- spec.add_dependency "anyway_config", "~>0.5.0"
21
-
22
- spec.add_development_dependency "rack", "~> 2.0"
23
- spec.add_development_dependency "websocket", "~> 1.2.4"
24
- spec.add_development_dependency "websocket-client-simple", "~> 0.3.0"
25
- spec.add_development_dependency "concurrent-ruby", "~> 1.0.0"
26
- spec.add_development_dependency "puma", "~> 3.6.0"
27
-
28
- spec.add_development_dependency "bundler", "~> 1.13"
29
- spec.add_development_dependency "rake", "~> 10.0"
30
- spec.add_development_dependency "rspec", "~> 3.0"
31
- spec.add_development_dependency "simplecov", ">= 0.3.8"
32
- spec.add_development_dependency "pry-byebug"
33
- end