danthes 1.0.4 → 1.0.5
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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +2 -1
- data/CHANGELOG.md +4 -0
- data/Gemfile +2 -1
- data/README.md +4 -4
- data/Rakefile +3 -2
- data/danthes.gemspec +2 -1
- data/lib/danthes.rb +1 -1
- data/lib/danthes/version.rb +1 -1
- data/spec/coffeescripts/{danthes_spec.js.coffee → danthesSpec.js.coffee} +7 -7
- data/spec/danthes_spec.rb +10 -3
- data/spec/fixtures/danthes_with_erb.yml +10 -0
- data/spec/javascripts/support/jasmine.yml +4 -1
- data/spec/javascripts/support/jasmine_helper.rb +12 -0
- data/spec/spec_helper.rb +2 -0
- metadata +33 -22
- data/.rvmrc +0 -1
- data/spec/javascripts/support/jasmine_config.rb +0 -24
- data/spec/javascripts/support/jasmine_runner.rb +0 -33
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 27e0f4f55cd741d5f62a313e52db507f1bbf433b
|
|
4
|
+
data.tar.gz: 372ff2271b39062cfb5a317f18c6e6fdae987b4f
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: f5a8fb58b6b150c9f203cdb3893e23d3acb07d4b47ae9fb5ba4e474eb850ee8281263573099272dfa75df03ea81b3aecaf1633911b7bc9ea3a5c73d0f99fecba
|
|
7
|
+
data.tar.gz: 6daad290b612e2d8b96e340db92583b4d6698ce08be4a11c2c1347073f7a7fe143bfc9ea79b6ffd13abc764a3c583a3a85eec8272f9908228371e09df07758d1
|
data/.gitignore
CHANGED
data/.ruby-gemset
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
danthes
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
ruby-2.0.0
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# d'Anthès [](http://travis-ci.org/dotpromo/danthes)[](https://codeclimate.com/github/dotpromo/danthes)[](https://coveralls.io/r/dotpromo/danthes)
|
|
2
2
|
|
|
3
3
|
d'Anthès is a Ruby gem for use with Rails to publish and subscribe to messages through [Faye](http://faye.jcoglan.com/). It allows you to easily provide real-time updates through an open socket without tying up a Rails process. All channels are private so users can only listen to events you subscribe them to. Based on PrivatePub gem.
|
|
4
4
|
|
|
5
5
|
## Docs
|
|
6
6
|
|
|
7
|
-
[Ruby](http://rubydoc.info/github/
|
|
7
|
+
[Ruby](http://rubydoc.info/github/dotpromo/danthes/frames)
|
|
8
8
|
|
|
9
|
-
[CoffeeScript](https://github.com/
|
|
9
|
+
[CoffeeScript](https://github.com/dotpromo/danthes/wiki/CoffeeScript-documentation)
|
|
10
10
|
|
|
11
11
|
## Setup
|
|
12
12
|
|
|
@@ -146,7 +146,7 @@ The `publish_to` method will send a post request to the Faye server (using `Net:
|
|
|
146
146
|
|
|
147
147
|
## Development & Feedback
|
|
148
148
|
|
|
149
|
-
Questions or comments? Please use the [issue tracker](https://github.com/
|
|
149
|
+
Questions or comments? Please use the [issue tracker](https://github.com/dotpromo/danthes/issues). Tests can be run with `bundle` and `rake` commands.
|
|
150
150
|
|
|
151
151
|
## TODO
|
|
152
152
|
|
data/Rakefile
CHANGED
|
@@ -4,6 +4,7 @@ require 'rspec/core/rake_task'
|
|
|
4
4
|
require 'yaml'
|
|
5
5
|
require 'jasmine'
|
|
6
6
|
require 'coffee-script'
|
|
7
|
+
require 'bundler/gem_tasks'
|
|
7
8
|
load 'jasmine/tasks/jasmine.rake'
|
|
8
9
|
|
|
9
10
|
desc "Run RSpec"
|
|
@@ -11,7 +12,7 @@ RSpec::Core::RakeTask.new do |t|
|
|
|
11
12
|
t.verbose = false
|
|
12
13
|
end
|
|
13
14
|
|
|
14
|
-
task :default => [:
|
|
15
|
+
task :default => [:spec, :compile_js, "jasmine:ci"]
|
|
15
16
|
|
|
16
17
|
def compile_coffee_script(file, path)
|
|
17
18
|
source = File.read File.expand_path("#{path}/#{file}.coffee", __FILE__)
|
|
@@ -26,5 +27,5 @@ end
|
|
|
26
27
|
desc "Compile coffeescript"
|
|
27
28
|
task :compile_js do
|
|
28
29
|
compile_coffee_script('danthes.js', '../app/assets/javascripts')
|
|
29
|
-
compile_coffee_script('
|
|
30
|
+
compile_coffee_script('danthesSpec.js', '../spec/coffeescripts')
|
|
30
31
|
end
|
data/danthes.gemspec
CHANGED
|
@@ -13,5 +13,6 @@ Gem::Specification.new do |s|
|
|
|
13
13
|
s.files = `git ls-files`.split($\)
|
|
14
14
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
|
15
15
|
s.require_paths = ["lib"]
|
|
16
|
-
s.add_dependency 'faye',
|
|
16
|
+
s.add_dependency 'faye', '>= 1.0.1'
|
|
17
|
+
s.add_dependency 'yajl-ruby', '~> 1.2.0'
|
|
17
18
|
end
|
data/lib/danthes.rb
CHANGED
|
@@ -35,7 +35,7 @@ module Danthes
|
|
|
35
35
|
|
|
36
36
|
# Loads the configuration from a given YAML file
|
|
37
37
|
def load_config(filename)
|
|
38
|
-
yaml = ::YAML.
|
|
38
|
+
yaml = ::YAML.load(ERB.new(File.read(filename)).result)[env]
|
|
39
39
|
raise ArgumentError, "The #{environment} environment does not exist in #{filename}" if yaml.nil?
|
|
40
40
|
(yaml.keys - ACCEPTED_KEYS).each {|k| yaml.delete(k)}
|
|
41
41
|
yaml.each {|k, v| config[k.to_sym] = v}
|
data/lib/danthes/version.rb
CHANGED
|
@@ -4,8 +4,8 @@ describe "Danthes", ->
|
|
|
4
4
|
|
|
5
5
|
signToChannel = (channel, addOptions = {}) ->
|
|
6
6
|
sub = {callback: jasmine.createSpy(), errback: jasmine.createSpy()}
|
|
7
|
-
faye = {subscribe: jasmine.createSpy().
|
|
8
|
-
spyOn(pub, 'faye').
|
|
7
|
+
faye = {subscribe: jasmine.createSpy().and.returnValue(sub)}
|
|
8
|
+
spyOn(pub, 'faye').and.callFake (callback) ->
|
|
9
9
|
callback(faye)
|
|
10
10
|
options = {server: "server", channel: "#{channel}", timestamp: 1234567890, signature: '1234567890'}
|
|
11
11
|
options['connect'] = addOptions['connect'] if addOptions['connect']?
|
|
@@ -158,7 +158,7 @@ describe "Danthes", ->
|
|
|
158
158
|
|
|
159
159
|
it "adds subscription faye object into channel object", ->
|
|
160
160
|
sub = {callback: jasmine.createSpy(), errback: jasmine.createSpy()}
|
|
161
|
-
pub.fayeClient = {subscribe: jasmine.createSpy().
|
|
161
|
+
pub.fayeClient = {subscribe: jasmine.createSpy().and.returnValue(sub)}
|
|
162
162
|
options = {server: "server", channel: 'somechannel'}
|
|
163
163
|
pub.sign(options)
|
|
164
164
|
pub.subscribe("somechannel", jasmine.createSpy())
|
|
@@ -171,7 +171,7 @@ describe "Danthes", ->
|
|
|
171
171
|
callback: (f) ->
|
|
172
172
|
f()
|
|
173
173
|
errback: jasmine.createSpy()
|
|
174
|
-
pub.fayeClient = {subscribe: jasmine.createSpy().
|
|
174
|
+
pub.fayeClient = {subscribe: jasmine.createSpy().and.returnValue(sub)}
|
|
175
175
|
options = {server: "server", channel: 'somechannel'}
|
|
176
176
|
pub.sign(options)
|
|
177
177
|
connectSpy = jasmine.createSpy()
|
|
@@ -183,7 +183,7 @@ describe "Danthes", ->
|
|
|
183
183
|
callback: jasmine.createSpy()
|
|
184
184
|
errback: (f) ->
|
|
185
185
|
f('error')
|
|
186
|
-
pub.fayeClient = {subscribe: jasmine.createSpy().
|
|
186
|
+
pub.fayeClient = {subscribe: jasmine.createSpy().and.returnValue(sub)}
|
|
187
187
|
erroSpy = jasmine.createSpy()
|
|
188
188
|
options = {server: "server", channel: 'somechannel'}
|
|
189
189
|
pub.sign(options)
|
|
@@ -192,7 +192,7 @@ describe "Danthes", ->
|
|
|
192
192
|
|
|
193
193
|
it "removes subscription to the channel", ->
|
|
194
194
|
sub = {callback: jasmine.createSpy(), errback: jasmine.createSpy(), cancel: jasmine.createSpy()}
|
|
195
|
-
pub.fayeClient = {subscribe: jasmine.createSpy().
|
|
195
|
+
pub.fayeClient = {subscribe: jasmine.createSpy().and.returnValue(sub)}
|
|
196
196
|
options = {server: "server", channel: 'somechannel'}
|
|
197
197
|
pub.sign(options)
|
|
198
198
|
pub.subscribe('somechannel', jasmine.createSpy())
|
|
@@ -202,7 +202,7 @@ describe "Danthes", ->
|
|
|
202
202
|
|
|
203
203
|
it "removes all subscription to the channels", ->
|
|
204
204
|
sub = {callback: jasmine.createSpy(), errback: jasmine.createSpy(), cancel: jasmine.createSpy()}
|
|
205
|
-
pub.fayeClient = {subscribe: jasmine.createSpy().
|
|
205
|
+
pub.fayeClient = {subscribe: jasmine.createSpy().and.returnValue(sub)}
|
|
206
206
|
options = {server: "server", channel: 'somechannel'}
|
|
207
207
|
pub.sign(options)
|
|
208
208
|
pub.subscribe "somechannel", jasmine.createSpy()
|
data/spec/danthes_spec.rb
CHANGED
|
@@ -17,7 +17,7 @@ describe Danthes do
|
|
|
17
17
|
|
|
18
18
|
it "defaults subscription timestamp to current time in milliseconds" do
|
|
19
19
|
time = Time.now
|
|
20
|
-
Time.stub
|
|
20
|
+
Time.stub(:now).and_return(time)
|
|
21
21
|
Danthes.subscription[:timestamp].should eq((time.to_f * 1000).round)
|
|
22
22
|
end
|
|
23
23
|
|
|
@@ -30,6 +30,13 @@ describe Danthes do
|
|
|
30
30
|
config[:adapter].should eq('thin')
|
|
31
31
|
end
|
|
32
32
|
|
|
33
|
+
it "loads configuration file with erb via load_config" do
|
|
34
|
+
ENV['DANTHES_SERVER'] = "http://example.com"
|
|
35
|
+
Danthes.env = 'production'
|
|
36
|
+
Danthes.load_config("spec/fixtures/danthes_with_erb.yml")
|
|
37
|
+
config[:server].should eq("http://example.com")
|
|
38
|
+
end
|
|
39
|
+
|
|
33
40
|
context "when redis config exists" do
|
|
34
41
|
before do
|
|
35
42
|
Danthes.env = 'test'
|
|
@@ -130,7 +137,7 @@ describe Danthes do
|
|
|
130
137
|
it "it should use HTTPS if the server URL says so" do
|
|
131
138
|
Danthes.config[:server] = "https://localhost"
|
|
132
139
|
Danthes.config[:mount] = '/faye/path'
|
|
133
|
-
http =
|
|
140
|
+
http = double(:http).as_null_object
|
|
134
141
|
|
|
135
142
|
Net::HTTP.should_receive(:new).and_return(http)
|
|
136
143
|
http.should_receive(:use_ssl=).with(true)
|
|
@@ -140,7 +147,7 @@ describe Danthes do
|
|
|
140
147
|
|
|
141
148
|
it "it should not use HTTPS if the server URL says not to" do
|
|
142
149
|
Danthes.config[:server] = "http://localhost"
|
|
143
|
-
http =
|
|
150
|
+
http = double(:http).as_null_object
|
|
144
151
|
|
|
145
152
|
Net::HTTP.should_receive(:new).and_return(http)
|
|
146
153
|
http.should_receive(:use_ssl=).with(false)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
development:
|
|
2
|
+
adapter: thin
|
|
3
|
+
server: http://dev.local:9292/faye
|
|
4
|
+
secret_token: DEVELOPMENT_SECRET_TOKEN
|
|
5
|
+
signature_expiration: 600
|
|
6
|
+
production:
|
|
7
|
+
adapter: thin
|
|
8
|
+
server: <%= ENV['DANTHES_SERVER'] %>
|
|
9
|
+
secret_token: PRODUCTION_SECRET_TOKEN
|
|
10
|
+
signature_expiration: 600
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#Use this file to set/override Jasmine configuration options
|
|
2
|
+
#You can remove it if you don't need it.
|
|
3
|
+
#This file is loaded *after* jasmine.yml is interpreted.
|
|
4
|
+
#
|
|
5
|
+
#Example: using a different boot file.
|
|
6
|
+
Jasmine.configure do |config|
|
|
7
|
+
config.ci_port = 8888
|
|
8
|
+
# config.boot_dir = '/absolute/path/to/boot_dir'
|
|
9
|
+
# config.boot_files = lambda { ['/absolute/path/to/boot_dir/file.js'] }
|
|
10
|
+
end
|
|
11
|
+
#
|
|
12
|
+
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,32 +1,43 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: danthes
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.0.5
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Alexander Simonov
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2014-05-19 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: faye
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
|
-
- -
|
|
17
|
+
- - '>='
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 0.
|
|
19
|
+
version: 1.0.1
|
|
22
20
|
type: :runtime
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
|
-
- -
|
|
24
|
+
- - '>='
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: 0.
|
|
26
|
+
version: 1.0.1
|
|
27
|
+
- !ruby/object:Gem::Dependency
|
|
28
|
+
name: yajl-ruby
|
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ~>
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: 1.2.0
|
|
34
|
+
type: :runtime
|
|
35
|
+
prerelease: false
|
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
37
|
+
requirements:
|
|
38
|
+
- - ~>
|
|
39
|
+
- !ruby/object:Gem::Version
|
|
40
|
+
version: 1.2.0
|
|
30
41
|
description: Private pub/sub messaging in Rails through Faye. More Faye features supported.
|
|
31
42
|
Based on PrivatePub.
|
|
32
43
|
email:
|
|
@@ -37,7 +48,8 @@ extra_rdoc_files: []
|
|
|
37
48
|
files:
|
|
38
49
|
- .gitignore
|
|
39
50
|
- .rspec
|
|
40
|
-
- .
|
|
51
|
+
- .ruby-gemset
|
|
52
|
+
- .ruby-version
|
|
41
53
|
- .travis.yml
|
|
42
54
|
- CHANGELOG.md
|
|
43
55
|
- Gemfile
|
|
@@ -58,46 +70,45 @@ files:
|
|
|
58
70
|
- lib/generators/templates/danthes.ru
|
|
59
71
|
- lib/generators/templates/danthes.yml
|
|
60
72
|
- lib/generators/templates/danthes_redis.yml
|
|
61
|
-
- spec/coffeescripts/
|
|
73
|
+
- spec/coffeescripts/danthesSpec.js.coffee
|
|
62
74
|
- spec/danthes/faye_extension_spec.rb
|
|
63
75
|
- spec/danthes_spec.rb
|
|
64
76
|
- spec/fixtures/danthes.yml
|
|
65
77
|
- spec/fixtures/danthes_redis.yml
|
|
78
|
+
- spec/fixtures/danthes_with_erb.yml
|
|
66
79
|
- spec/javascripts/support/jasmine.yml
|
|
67
|
-
- spec/javascripts/support/
|
|
68
|
-
- spec/javascripts/support/jasmine_runner.rb
|
|
80
|
+
- spec/javascripts/support/jasmine_helper.rb
|
|
69
81
|
- spec/spec_helper.rb
|
|
70
82
|
homepage: http://github.com/phenomena/danthes
|
|
71
83
|
licenses: []
|
|
84
|
+
metadata: {}
|
|
72
85
|
post_install_message:
|
|
73
86
|
rdoc_options: []
|
|
74
87
|
require_paths:
|
|
75
88
|
- lib
|
|
76
89
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
77
|
-
none: false
|
|
78
90
|
requirements:
|
|
79
|
-
- -
|
|
91
|
+
- - '>='
|
|
80
92
|
- !ruby/object:Gem::Version
|
|
81
93
|
version: '0'
|
|
82
94
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
83
|
-
none: false
|
|
84
95
|
requirements:
|
|
85
|
-
- -
|
|
96
|
+
- - '>='
|
|
86
97
|
- !ruby/object:Gem::Version
|
|
87
98
|
version: '0'
|
|
88
99
|
requirements: []
|
|
89
100
|
rubyforge_project:
|
|
90
|
-
rubygems_version:
|
|
101
|
+
rubygems_version: 2.2.2
|
|
91
102
|
signing_key:
|
|
92
|
-
specification_version:
|
|
103
|
+
specification_version: 4
|
|
93
104
|
summary: Private pub/sub messaging through Faye.
|
|
94
105
|
test_files:
|
|
95
|
-
- spec/coffeescripts/
|
|
106
|
+
- spec/coffeescripts/danthesSpec.js.coffee
|
|
96
107
|
- spec/danthes/faye_extension_spec.rb
|
|
97
108
|
- spec/danthes_spec.rb
|
|
98
109
|
- spec/fixtures/danthes.yml
|
|
99
110
|
- spec/fixtures/danthes_redis.yml
|
|
111
|
+
- spec/fixtures/danthes_with_erb.yml
|
|
100
112
|
- spec/javascripts/support/jasmine.yml
|
|
101
|
-
- spec/javascripts/support/
|
|
102
|
-
- spec/javascripts/support/jasmine_runner.rb
|
|
113
|
+
- spec/javascripts/support/jasmine_helper.rb
|
|
103
114
|
- spec/spec_helper.rb
|
data/.rvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rvm use 1.9.3@danthes --create
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
module Jasmine
|
|
2
|
-
require 'yaml'
|
|
3
|
-
class Config
|
|
4
|
-
|
|
5
|
-
# Add your overrides or custom config code here
|
|
6
|
-
|
|
7
|
-
end
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
# Note - this is necessary for rspec2, which has removed the backtrace
|
|
12
|
-
module Jasmine
|
|
13
|
-
class SpecBuilder
|
|
14
|
-
def declare_spec(parent, spec)
|
|
15
|
-
me = self
|
|
16
|
-
example_name = spec["name"]
|
|
17
|
-
@spec_ids << spec["id"]
|
|
18
|
-
backtrace = @example_locations[parent.description + " " + example_name]
|
|
19
|
-
parent.it example_name, {} do
|
|
20
|
-
me.report_spec(spec["id"])
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
$:.unshift(ENV['JASMINE_GEM_PATH']) if ENV['JASMINE_GEM_PATH'] # for gem testing purposes
|
|
2
|
-
|
|
3
|
-
require 'rubygems'
|
|
4
|
-
require 'yaml'
|
|
5
|
-
require 'jasmine'
|
|
6
|
-
jasmine_config_overrides = File.expand_path(File.join(File.dirname(__FILE__), 'jasmine_config.rb'))
|
|
7
|
-
require jasmine_config_overrides if File.exist?(jasmine_config_overrides)
|
|
8
|
-
if Jasmine::Dependencies.rspec2?
|
|
9
|
-
require 'rspec'
|
|
10
|
-
else
|
|
11
|
-
require 'spec'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
jasmine_config = Jasmine::Config.new
|
|
15
|
-
spec_builder = Jasmine::SpecBuilder.new(jasmine_config)
|
|
16
|
-
|
|
17
|
-
should_stop = false
|
|
18
|
-
|
|
19
|
-
if Jasmine::Dependencies.rspec2?
|
|
20
|
-
RSpec.configuration.after(:suite) do
|
|
21
|
-
spec_builder.stop if should_stop
|
|
22
|
-
end
|
|
23
|
-
else
|
|
24
|
-
Spec::Runner.configure do |config|
|
|
25
|
-
config.after(:suite) do
|
|
26
|
-
spec_builder.stop if should_stop
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
spec_builder.start
|
|
32
|
-
should_stop = true
|
|
33
|
-
spec_builder.declare_suites
|