websocket-rails 0.6.2 → 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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