muxer 0.3.0 → 0.3.2

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: 5b6bf490074eecb77f38826926df3d98ed41c346
4
- data.tar.gz: 6aa3894bd41fd4e01b7ed9dc4873443f8c741196
3
+ metadata.gz: bc7cc45319827cb82a264fb61ceace6834dbf103
4
+ data.tar.gz: 2567b70818ccd266a4f100316babdc87d49bb843
5
5
  SHA512:
6
- metadata.gz: b816181726162c1b342811f43d8e4f8f23f9772cf69728a7e9621e0f7ecd90efb3adf2ad52c3f5c8039481bac9f3349706c55233c5f23347feab71f8ebb8ba3c
7
- data.tar.gz: 3375538c04cd1793dd4364a8def79be7689a241c14ba7dc2265ebe5d83348481c6371c7fe9b354665b7eb635fe014a0173322335c643363426a32286b419db73
6
+ metadata.gz: a112edcd51ef627151a7a912ca37cebfa147da872fba09100e057867b034e1e03fbbefefdeb3824c244ff6f62a63e619d935e926496eed4de92becd78e9d71bd
7
+ data.tar.gz: 35a7319003642836e744793143ec523dce07c15e7ef12eede6a0ecf61eca102adc22191427d9a6025e034af569ca5609a8c58422b3a7bc6627e020dc74bde53d
data/Guardfile ADDED
@@ -0,0 +1,13 @@
1
+ notification :gntp
2
+
3
+ guard :rspec, cmd: "bundle exec rspec" do
4
+ # watch /lib/ files
5
+ watch(%r{^lib/(.+).rb$}) do |m|
6
+ "spec/#{m[1]}_spec.rb"
7
+ end
8
+
9
+ # watch /spec/ files
10
+ watch(%r{^spec/(.+).rb$}) do |m|
11
+ "spec/#{m[1]}.rb"
12
+ end
13
+ end
data/README.md CHANGED
@@ -5,10 +5,10 @@
5
5
  [![Build](https://img.shields.io/travis-ci/ChrisMacNaughton/muxer.svg?style=flat-square)](https://travis-ci.org/ChrisMacNaughton/muxer)
6
6
  [![Dependencies](https://img.shields.io/gemnasium/ChrisMacNaughton/muxer.svg?style=flat-square)](https://gemnasium.com/ChrisMacNaughton/muxer)
7
7
  [![Docs](https://inch-ci.org/github/ChrisMacNaughton/muxer.svg?branch=master)](http://inch-ci.org/github/ChrisMacNaughton/muxer/branch/master)
8
+ [![Issues](https://img.shields.io/github/issues/ChrisMacNaughton/muxer.svg?style=flat-square)](https://github.com/ChrisMacNaughton/muxer/issues)
8
9
  [![Downloads](https://img.shields.io/gem/dtv/muxer.svg?style=flat-square)](https://rubygems.org/gems/muxer)
9
10
  [![Tags](https://img.shields.io/github/tag/ChrisMacNaughton/muxer.svg?style=flat-square)](https://github.com/ChrisMacNaughton/muxer/tags)
10
11
  [![Releases](https://img.shields.io/github/release/ChrisMacNaughton/muxer.svg?style=flat-square)](https://github.com/ChrisMacNaughton/muxer/releases)
11
- [![Issues](https://img.shields.io/github/issues/ChrisMacNaughton/muxer.svg?style=flat-square)](https://github.com/ChrisMacNaughton/muxer/issues)
12
12
  [![License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://opensource.org/licenses/MIT)
13
13
  [![Version](https://img.shields.io/gem/v/muxer.svg?style=flat-square)](https://rubygems.org/gems/muxer)
14
14
 
@@ -39,7 +39,7 @@ module Muxer
39
39
  options.keys.each do |key|
40
40
  options[key.to_sym] = options.delete(key)
41
41
  end
42
- options = {timeout: nil, method: :get, params: {}, redirects: nil}.merge(options)
42
+ options = {timeout: nil, method: :get, params: {}, redirects: nil, id: nil}.merge(options)
43
43
  timeout =
44
44
  request = Request.new
45
45
  request.url = url
@@ -72,7 +72,7 @@ module Muxer
72
72
  #
73
73
  # @return [Hash] Keys are :succeeded, :failed
74
74
  def execute
75
- @responses = {succeeded: [], failed: [], pending: []}
75
+ @responses = {succeeded: [], failed: [], pending: [], succeeded_by_id: {}}
76
76
  @start = Time.now
77
77
  EventMachine.run do
78
78
  requests.each do |request|
@@ -104,6 +104,9 @@ module Muxer
104
104
  @responses[:pending].delete(pending)
105
105
  if pending.error.nil?
106
106
  @responses[:succeeded] << pending
107
+ if pending.id
108
+ @responses[:succeeded_by_id][pending.id] = pending
109
+ end
107
110
  else
108
111
  @responses[:failed] << pending
109
112
  end
data/lib/muxer/request.rb CHANGED
@@ -18,8 +18,11 @@ module Muxer
18
18
  # @return [Boolean] Is the request completed
19
19
  # @!attribute error
20
20
  # @return [Boolean] Have we had an error?
21
+ # @!attribute id
22
+ # @return [Symbol] ID for this request, the ID is arbitrary and to
23
+ # be assigned by the user
21
24
  class Request
22
- attr_accessor :url, :timeout, :headers, :params, :redirects
25
+ attr_accessor :url, :timeout, :headers, :params, :redirects, :id
23
26
  attr_reader :method, :completed, :error
24
27
 
25
28
  alias_method :completed?, :completed
data/lib/muxer/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Muxer
2
- VERSION = '0.3.0'
2
+ VERSION = '0.3.2'
3
3
  end
data/muxer.gemspec CHANGED
@@ -27,5 +27,8 @@ Gem::Specification.new do |spec|
27
27
  spec.add_development_dependency "vcr", "~>2.9"
28
28
  spec.add_development_dependency "pry", "~>0.10"
29
29
  spec.add_development_dependency "webmock", "~>1.20"
30
+ spec.add_development_dependency "guard"
31
+ spec.add_development_dependency "guard-rspec"
32
+ spec.add_development_dependency "ruby_gntp"
30
33
  spec.add_development_dependency "codeclimate-test-reporter"
31
34
  end
@@ -22,6 +22,12 @@ RSpec.describe Muxer::Request do
22
22
  expect(request.headers).to eq({api_key: 'test1234'})
23
23
  end
24
24
 
25
+ it 'has an id' do
26
+ request.id = :test
27
+
28
+ expect(request.id).to eq(:test)
29
+ end
30
+
25
31
  describe :method do
26
32
  it 'has a valid method' do
27
33
  request.method = 'POST'
data/spec/muxer_spec.rb CHANGED
@@ -13,6 +13,17 @@ RSpec.describe Muxer, "execute" do
13
13
  end
14
14
  end
15
15
 
16
+ it 'can make a request with an id' do
17
+ VCR.use_cassette('muxer/makes_a_web_request') do
18
+ response = Muxer.execute do |muxer|
19
+ muxer.add_url "http://www.rubydoc.info", {id: :rubydoc}
20
+ end
21
+
22
+ expect(response[:succeeded_by_id]).to be_kind_of(Array)
23
+ expect(response[:succeeded_by_id][:rubydoc].url).to eq('http://www.rubydoc.info')
24
+ end
25
+ end
26
+
16
27
  it 'can make multiple web requests' do
17
28
  VCR.use_cassette('muxer/makes_multiple_web_requests') do
18
29
  response = Muxer.execute do |muxer|
@@ -109,5 +120,4 @@ RSpec.describe Muxer, "execute" do
109
120
  end
110
121
  end
111
122
 
112
-
113
123
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muxer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris MacNaughton
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-22 00:00:00.000000000 Z
11
+ date: 2015-04-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine
@@ -122,6 +122,48 @@ dependencies:
122
122
  - - ~>
123
123
  - !ruby/object:Gem::Version
124
124
  version: '1.20'
125
+ - !ruby/object:Gem::Dependency
126
+ name: guard
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: guard-rspec
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: ruby_gntp
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
125
167
  - !ruby/object:Gem::Dependency
126
168
  name: codeclimate-test-reporter
127
169
  requirement: !ruby/object:Gem::Requirement
@@ -148,6 +190,7 @@ files:
148
190
  - .rspec
149
191
  - .travis.yml
150
192
  - Gemfile
193
+ - Guardfile
151
194
  - LICENSE.txt
152
195
  - README.md
153
196
  - Rakefile