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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: b313cd4248c6fc51984e770ec69faca2306dc0d6
4
- data.tar.gz: 2465595bc00aa0ef952cee0c8058cd1573f4d10d
3
+ metadata.gz: 775bae2a863792303d7952f3dfe74d32f9b8c018
4
+ data.tar.gz: f2ab633d2ffc408d87854db528ed601f473da24e
5
5
  SHA512:
6
- metadata.gz: be64475b738ae0de55510eabc30cddcf56f68ed2e07db4a147d563a949543addc5a976e8ec740aacf02985c697801e0c1f6831e08c28f8f121802210825840a3
7
- data.tar.gz: bca07e33be85ebaf307a3b45fbcf1057a37f94408772c14fd8fc2d61369f894195e877ad21ed7711adf2ae40fb595059592f6183533e6c80f5f17148921e8f63
6
+ metadata.gz: a9005a729187061da7674695bbb0b61c6286d6c4671790c7aaff946fc2b81ab6a68cbe11086a3d5e75360f99769096077c59672bfc70cc194344c277d3cbb2fe
7
+ data.tar.gz: 12db8e810c45acc7cca444cb6ff7830966ba74f624521b3fac207ab5800e887823b0fbc5ca654a798293e81f49ba83407e98f5ae0c19d6301ca77989627fee07
data/.travis.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  language: ruby
2
2
  rvm:
3
- - 2.1.3
3
+ - 2.2.2
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
- require 'pressure'
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 = (0...8).map { (65 + rand(26)).chr }.join
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
 
@@ -1,3 +1,3 @@
1
1
  class Pressure
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
data/lib/pressure.rb CHANGED
@@ -1,4 +1,4 @@
1
- require 'pressure/version'
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
- @send_queue << data
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.0
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-25 00:00:00.000000000 Z
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