websocket-rails 0.6.2 → 0.7.0

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 (52) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +32 -0
  3. data/Gemfile +2 -1
  4. data/README.md +29 -34
  5. data/lib/assets/javascripts/websocket_rails/abstract_connection.js.coffee +45 -0
  6. data/lib/assets/javascripts/websocket_rails/channel.js.coffee +34 -17
  7. data/lib/assets/javascripts/websocket_rails/event.js.coffee +13 -11
  8. data/lib/assets/javascripts/websocket_rails/http_connection.js.coffee +44 -45
  9. data/lib/assets/javascripts/websocket_rails/main.js +1 -0
  10. data/lib/assets/javascripts/websocket_rails/websocket_connection.js.coffee +20 -34
  11. data/lib/assets/javascripts/websocket_rails/websocket_rails.js.coffee +60 -15
  12. data/lib/generators/websocket_rails/install/templates/websocket_rails.rb +15 -0
  13. data/lib/rails/config/routes.rb +1 -1
  14. data/lib/rails/tasks/websocket_rails.tasks +6 -2
  15. data/lib/websocket_rails/channel.rb +28 -2
  16. data/lib/websocket_rails/channel_manager.rb +16 -0
  17. data/lib/websocket_rails/configuration.rb +26 -1
  18. data/lib/websocket_rails/connection_adapters/http.rb +7 -0
  19. data/lib/websocket_rails/connection_adapters/web_socket.rb +3 -1
  20. data/lib/websocket_rails/connection_manager.rb +1 -1
  21. data/lib/websocket_rails/controller_factory.rb +1 -1
  22. data/lib/websocket_rails/event.rb +9 -2
  23. data/lib/websocket_rails/logging.rb +0 -1
  24. data/lib/websocket_rails/synchronization.rb +11 -7
  25. data/lib/websocket_rails/version.rb +1 -1
  26. data/spec/javascripts/generated/assets/abstract_connection.js +71 -0
  27. data/spec/javascripts/generated/assets/channel.js +58 -34
  28. data/spec/javascripts/generated/assets/event.js +12 -16
  29. data/spec/javascripts/generated/assets/http_connection.js +67 -65
  30. data/spec/javascripts/generated/assets/websocket_connection.js +36 -51
  31. data/spec/javascripts/generated/assets/websocket_rails.js +68 -21
  32. data/spec/javascripts/generated/specs/channel_spec.js +102 -19
  33. data/spec/javascripts/generated/specs/helpers.js +17 -0
  34. data/spec/javascripts/generated/specs/websocket_connection_spec.js +72 -19
  35. data/spec/javascripts/generated/specs/websocket_rails_spec.js +146 -47
  36. data/spec/javascripts/support/jasmine.yml +10 -2
  37. data/spec/javascripts/support/jasmine_helper.rb +38 -0
  38. data/spec/javascripts/websocket_rails/channel_spec.coffee +66 -12
  39. data/spec/javascripts/websocket_rails/event_spec.coffee +7 -7
  40. data/spec/javascripts/websocket_rails/helpers.coffee +6 -0
  41. data/spec/javascripts/websocket_rails/websocket_connection_spec.coffee +53 -15
  42. data/spec/javascripts/websocket_rails/websocket_rails_spec.coffee +108 -25
  43. data/spec/unit/base_controller_spec.rb +41 -0
  44. data/spec/unit/channel_manager_spec.rb +21 -0
  45. data/spec/unit/channel_spec.rb +43 -3
  46. data/spec/unit/connection_adapters/http_spec.rb +24 -3
  47. data/spec/unit/connection_adapters_spec.rb +2 -2
  48. data/spec/unit/connection_manager_spec.rb +1 -1
  49. data/spec/unit/event_spec.rb +25 -1
  50. data/spec/unit/logging_spec.rb +1 -1
  51. metadata +57 -67
  52. data/spec/javascripts/support/jasmine_config.rb +0 -63
@@ -1,63 +0,0 @@
1
- # spec/javascripts/support/jasmine_config.rb
2
- # when jasmine starts the server out-of-process, it needs this in order to be able to invoke the asset tasks
3
- unless Object.const_defined?(:Rake)
4
- require 'rake'
5
- load File.expand_path('../../../../Rakefile', __FILE__)
6
- end
7
-
8
- require 'coffee_script'
9
-
10
- module Jasmine
11
- class Config
12
- include Rake::DSL
13
-
14
- def js_files(spec_filter = nil)
15
- # remove all generated files
16
- generated_files_directory = File.expand_path("../../../../spec/javascripts/generated/assets", __FILE__)
17
- rm_rf generated_files_directory, :secure => true
18
-
19
- precompile_app_assets
20
- compile_jasmine_javascripts
21
-
22
- # this is code from the original jasmine config js_files method - you could also just alias_method_chain it
23
- spec_files_to_include = spec_filter.nil? ? spec_files : match_files(spec_dir, [spec_filter])
24
- src_files.collect {|f| "/" + f } + helpers.collect {|f| File.join(spec_path, f) } + spec_files_to_include.collect {|f| File.join(spec_path, f) }
25
- end
26
-
27
- private
28
-
29
- # this method compiles all the same javascript files your app will
30
- def precompile_app_assets
31
- puts "Precompiling assets..."
32
-
33
- root = File.expand_path("../../../../lib/assets/javascripts/websocket_rails", __FILE__)
34
- destination_dir = File.expand_path("../../../../spec/javascripts/generated/assets", __FILE__)
35
-
36
- glob = File.expand_path("**/*.js.coffee", root)
37
-
38
- Dir.glob(glob).each do |srcfile|
39
- srcfile = Pathname.new(srcfile)
40
- destfile = srcfile.sub(root, destination_dir).sub(".coffee", "")
41
- FileUtils.mkdir_p(destfile.dirname)
42
- File.open(destfile, "w") {|f| f.write(CoffeeScript.compile(File.new(srcfile)))}
43
- end
44
- end
45
-
46
- # this method compiles all of the spec files into js files that jasmine can run
47
- def compile_jasmine_javascripts
48
- puts "Compiling jasmine coffee scripts into javascript..."
49
- root = File.expand_path("../../../../spec/javascripts/websocket_rails", __FILE__)
50
- destination_dir = File.expand_path("../../generated/specs", __FILE__)
51
-
52
- glob = File.expand_path("**/*.coffee", root)
53
-
54
- Dir.glob(glob).each do |srcfile|
55
- srcfile = Pathname.new(srcfile)
56
- destfile = srcfile.sub(root, destination_dir).sub(".coffee", ".js")
57
- FileUtils.mkdir_p(destfile.dirname)
58
- File.open(destfile, "w") {|f| f.write(CoffeeScript.compile(File.new(srcfile)))}
59
- end
60
- end
61
-
62
- end
63
- end