pressure 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -1
- data/.yardopts +1 -0
- data/README.md +4 -0
- data/examples/demo.rb +7 -3
- data/lib/pressure/version.rb +1 -1
- data/lib/pressure.rb +8 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 775bae2a863792303d7952f3dfe74d32f9b8c018
|
4
|
+
data.tar.gz: f2ab633d2ffc408d87854db528ed601f473da24e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9005a729187061da7674695bbb0b61c6286d6c4671790c7aaff946fc2b81ab6a68cbe11086a3d5e75360f99769096077c59672bfc70cc194344c277d3cbb2fe
|
7
|
+
data.tar.gz: 12db8e810c45acc7cca444cb6ff7830966ba74f624521b3fac207ab5800e887823b0fbc5ca654a798293e81f49ba83407e98f5ae0c19d6301ca77989627fee07
|
data/.travis.yml
CHANGED
data/.yardopts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--markup markdown
|
data/README.md
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
# Pressure
|
2
2
|
|
3
|
+
[![Build Status](https://travis-ci.org/bsdavidson/pressure.svg?branch=master)](https://travis-ci.org/bsdavidson/pressure)
|
4
|
+
|
3
5
|
Multicast upstream data to downstream websocket clients.
|
4
6
|
|
7
|
+
Documentation is [available on RubyDoc.info](http://www.rubydoc.info/github/bsdavidson/pressure/).
|
8
|
+
|
5
9
|
## Installation
|
6
10
|
|
7
11
|
Add this line to your application's Gemfile:
|
data/examples/demo.rb
CHANGED
@@ -1,20 +1,24 @@
|
|
1
1
|
require 'sinatra'
|
2
2
|
require 'sinatra-websocket'
|
3
|
-
|
3
|
+
require_relative '../lib/pressure'
|
4
4
|
|
5
5
|
set :server, 'thin'
|
6
6
|
set :sockets, []
|
7
7
|
|
8
8
|
data = {}
|
9
9
|
|
10
|
+
def random_string
|
11
|
+
(0...8).map { (65 + rand(26)).chr }.join
|
12
|
+
end
|
13
|
+
|
10
14
|
Thread.new do
|
11
15
|
loop do
|
12
|
-
data =
|
16
|
+
data = [random_string, random_string, random_string, random_string]
|
13
17
|
sleep(1.0 / 0.2)
|
14
18
|
end
|
15
19
|
end
|
16
20
|
|
17
|
-
pressure = Pressure.new do
|
21
|
+
pressure = Pressure.new(no_wrap: false) do
|
18
22
|
data
|
19
23
|
end
|
20
24
|
|
data/lib/pressure/version.rb
CHANGED
data/lib/pressure.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
require_relative 'pressure/version'
|
2
2
|
require 'logger'
|
3
3
|
require 'time'
|
4
4
|
require 'json'
|
@@ -6,11 +6,13 @@ require 'json'
|
|
6
6
|
class Pressure
|
7
7
|
attr_accessor :wrapper_template
|
8
8
|
attr_reader :sockets
|
9
|
+
attr_reader :options
|
9
10
|
|
10
11
|
def initialize(options = {}, &data_source_block)
|
11
12
|
@wrapper_template = {}
|
12
13
|
@current_upstream = {}
|
13
14
|
@send_queue = Queue.new
|
15
|
+
@options = options
|
14
16
|
@sockets = []
|
15
17
|
@websocket_worker_delay = options[:websocket_worker_delay] || (1.0 / 20.0)
|
16
18
|
incoming_monitor(&data_source_block)
|
@@ -42,7 +44,11 @@ class Pressure
|
|
42
44
|
upstream_data = data_source_block.call
|
43
45
|
if data_changed?(data[:upstream_data], upstream_data)
|
44
46
|
data = wrap_data(upstream_data)
|
45
|
-
@
|
47
|
+
if @options[:no_wrap]
|
48
|
+
@send_queue << upstream_data
|
49
|
+
else
|
50
|
+
@send_queue << data
|
51
|
+
end
|
46
52
|
end
|
47
53
|
sleep(1.0 / 20.0)
|
48
54
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pressure
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Davidson
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -91,6 +91,7 @@ files:
|
|
91
91
|
- ".rspec"
|
92
92
|
- ".rubocop.yml"
|
93
93
|
- ".travis.yml"
|
94
|
+
- ".yardopts"
|
94
95
|
- CODE_OF_CONDUCT.md
|
95
96
|
- Gemfile
|
96
97
|
- LICENSE.txt
|