pressure 0.1.0 → 0.1.1

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 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