evostream 0.0.7 → 0.0.8

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: 322f866b8910d149413d5b223ea6aa1cd0a41195
4
- data.tar.gz: 9627ba3119ad044cf30c9ad8595ede38e321a9f6
3
+ metadata.gz: 691b18e5956fbe15ec386296740bc4da5fa561ea
4
+ data.tar.gz: 092e0bb15101b4b4469a330732295d9bb77ecaf0
5
5
  SHA512:
6
- metadata.gz: 7f033c59c1664e5f5a662000487ff76842d2f66ff9d94aaff861ef02313b4bff4f1275224df8e505f3e413ac076f981a2ad1ecff336e4f9e8a87f4ab8b2cc110
7
- data.tar.gz: 3b6b872acd6a00f2cb45cfe87286cb4ff4bb98cc22ba2082343dcba39ba774f4249eb95410d62c41e1b82a0ac7a9240654b3c19c9fd39a7a78a6d203ac99ab72
6
+ metadata.gz: 5cfae522284c3d9869ed1a3893d82920e8a61f3fa81191058c4e6e88a308ef707f1a73fc786b78f07b0f3dd9d971871eaf14fca8c2a65cdf0ec3c3bea7667e94
7
+ data.tar.gz: 540a86b8f618438eb3fdf5c85aab2c14c0997604eb52147713e3a089d29ec3756e588ab65920bac2495edda68b4211b20665c0705ad6cdff64e7869f58597d7b
data/Dockerfile ADDED
@@ -0,0 +1,7 @@
1
+ FROM ruby:2.3
2
+
3
+ RUN mkdir -p /app
4
+ COPY . /app
5
+ WORKDIR /app
6
+
7
+ RUN bundle install
data/README.md CHANGED
@@ -37,6 +37,14 @@ Evostream.configure do |config|
37
37
  config.host = 'evostream.example.com'
38
38
  config.port = 80
39
39
  config.path_prefix = '/evo'
40
+
41
+ # Set the username and password when using http basic auth
42
+ # config.username = 'evostream'
43
+ # config.password = 'passw0rd'
44
+
45
+ # Set the protocol and port for using HTTPS
46
+ # config.protocol = 'https'
47
+ # config.port = 443
40
48
  end
41
49
 
42
50
  # elsewhere
@@ -45,6 +53,16 @@ client = Evostream::Client.new
45
53
  client.liststreams
46
54
  ```
47
55
 
56
+ ## Running tests
57
+
58
+ ### Local
59
+
60
+ $ bundle exec rake spec
61
+
62
+ ### Docker
63
+
64
+ $ docker-compose run --rm test
65
+
48
66
  ## Contributing
49
67
 
50
68
  1. Fork it
@@ -0,0 +1,15 @@
1
+ version: '2'
2
+ services:
3
+ base:
4
+ build: .
5
+ volumes:
6
+ - .:/app
7
+ test:
8
+ extends:
9
+ service: base
10
+ command: bundle exec rake spec
11
+
12
+ builder:
13
+ extends:
14
+ service: base
15
+ command: gem build evostream.gemspec
data/evostream.gemspec CHANGED
@@ -22,5 +22,9 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency "rake", "~> 10.3"
23
23
  spec.add_development_dependency "rspec", "~> 2.14"
24
24
  spec.add_development_dependency "webmock", "~> 1.13"
25
- spec.add_development_dependency "debugger", "~> 1.6"
25
+ if RUBY_VERSION >= '2.0'
26
+ spec.add_development_dependency "byebug", "~> 9.0"
27
+ else
28
+ spec.add_development_dependency "debugger", "~> 1.6"
29
+ end
26
30
  end
@@ -43,7 +43,10 @@ module Evostream
43
43
  http = Net::HTTP.new(uri.host, uri.port)
44
44
  http.read_timeout = @timeout
45
45
  http.open_timeout = @timeout
46
- http.request_get(uri.request_uri)
46
+ http.use_ssl = true if @protocol == "https"
47
+ request = Net::HTTP::Get.new(uri.request_uri)
48
+ request.basic_auth(@username, @password)
49
+ http.request(request)
47
50
  end
48
51
 
49
52
  def service_url(service, params)
@@ -56,7 +59,7 @@ module Evostream
56
59
  end
57
60
 
58
61
  def base_url
59
- "http://#{@host}:#{@port}#{@path_prefix}"
62
+ "#{@protocol}://#{@host}:#{@port}#{@path_prefix}"
60
63
  end
61
64
 
62
65
  def encode_params(params)
@@ -1,11 +1,16 @@
1
1
  # coding: utf-8
2
2
  module Evostream
3
3
  module Configuration
4
- VALID_CONFIG_KEYS = [:host, :port, :path_prefix, :timeout].freeze
4
+ VALID_CONFIG_KEYS = [
5
+ :host, :protocol, :port, :path_prefix, :timeout, :username, :password
6
+ ].freeze
5
7
  OPTIONAL_CONFIG_KEYS = VALID_CONFIG_KEYS - [:host]
6
8
 
9
+ DEFAULT_PROTOCOL = 'http'
7
10
  DEFAULT_PORT = 80
8
11
  DEFAULT_PATH_PREFIX = ''
12
+ DEFAULT_USERNAME = ''
13
+ DEFAULT_PASSWORD = ''
9
14
  DEFAULT_TIMEOUT = 5
10
15
 
11
16
  # Build accessor methods for every config options so we can do this, for example:
@@ -18,8 +23,11 @@ module Evostream
18
23
  end
19
24
 
20
25
  def reset
26
+ self.protocol = DEFAULT_PROTOCOL
21
27
  self.port = DEFAULT_PORT
22
28
  self.path_prefix = DEFAULT_PATH_PREFIX
29
+ self.username = DEFAULT_USERNAME
30
+ self.password = DEFAULT_PASSWORD
23
31
  self.timeout = DEFAULT_TIMEOUT
24
32
  end
25
33
 
@@ -27,8 +35,11 @@ module Evostream
27
35
  #
28
36
  # Evostream.configure do |config|
29
37
  # config.host = 'evostream.example.com'
38
+ # config.protocol = 'http'
30
39
  # config.port = 80
31
40
  # config.path_prefix = '/evo'
41
+ # config.username = 'evo'
42
+ # config.password = 'password'
32
43
  # end
33
44
  #
34
45
  # elsewhere
@@ -1,4 +1,4 @@
1
1
  # coding: utf-8
2
2
  module Evostream
3
- VERSION = "0.0.7"
3
+ VERSION = "0.0.8"
4
4
  end
data/spec/client_spec.rb CHANGED
@@ -70,6 +70,36 @@ describe Evostream::Client do
70
70
  WebMock.should have_requested(:get, "http://somehost:80/some_path/some_service?params=Zmlyc3RfcGFyYW09eHh4IHNlY29uZF9wYXJhbT14eHggdGhpcmRfcGFyYW09eHh4")
71
71
  end
72
72
 
73
+ describe "https" do
74
+ it "should be able to specify https as protocol" do
75
+ auth_evo = Evostream::Client.new({
76
+ :host => 'somehost',
77
+ :path_prefix => '/some_path',
78
+ :protocol => 'https',
79
+ :port => '443'
80
+ })
81
+ stub_request(:get, /.*some_service.*/).
82
+ to_return(status: 200, body: '{"data":null,"description":"","status":"SUCCESS"}')
83
+ auth_evo.some_service(:first_param => 'xxx', :second_param => 'xxx', :third_param => 'xxx')
84
+ WebMock.should have_requested(:get, "https://somehost:443/some_path/some_service?params=Zmlyc3RfcGFyYW09eHh4IHNlY29uZF9wYXJhbT14eHggdGhpcmRfcGFyYW09eHh4")
85
+ end
86
+ end
87
+
88
+ describe "basic auth" do
89
+ it "should encode the username and the password to support basic auth" do
90
+ auth_evo = Evostream::Client.new({
91
+ :host => 'somehost',
92
+ :path_prefix => '/some_path',
93
+ :username => 'user',
94
+ :password => 'password'
95
+ })
96
+ stub_request(:get, /.*some_service.*/).
97
+ to_return(status: 200, body: '{"data":null,"description":"","status":"SUCCESS"}')
98
+ auth_evo.some_service(:first_param => 'xxx', :second_param => 'xxx', :third_param => 'xxx')
99
+ WebMock.should have_requested(:get, "http://user:password@somehost:80/some_path/some_service?params=Zmlyc3RfcGFyYW09eHh4IHNlY29uZF9wYXJhbT14eHggdGhpcmRfcGFyYW09eHh4")
100
+ end
101
+ end
102
+
73
103
  describe "timeout" do
74
104
  before do
75
105
  WebMock.allow_net_connect!
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: evostream
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Mundim
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-12 00:00:00.000000000 Z
11
+ date: 2016-07-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -67,19 +67,19 @@ dependencies:
67
67
  - !ruby/object:Gem::Version
68
68
  version: '1.13'
69
69
  - !ruby/object:Gem::Dependency
70
- name: debugger
70
+ name: byebug
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '1.6'
75
+ version: '9.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '1.6'
82
+ version: '9.0'
83
83
  description: Ruby wrapper for the Evostream API
84
84
  email:
85
85
  - lucas.mundim@corp.globo.com
@@ -92,10 +92,12 @@ files:
92
92
  - ".ruby-gemset"
93
93
  - ".ruby-version"
94
94
  - ".travis.yml"
95
+ - Dockerfile
95
96
  - Gemfile
96
97
  - LICENSE.txt
97
98
  - README.md
98
99
  - Rakefile
100
+ - docker-compose.yml
99
101
  - evostream.gemspec
100
102
  - lib/evostream.rb
101
103
  - lib/evostream/client.rb
@@ -125,7 +127,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
125
127
  version: '0'
126
128
  requirements: []
127
129
  rubyforge_project:
128
- rubygems_version: 2.2.2
130
+ rubygems_version: 2.6.6
129
131
  signing_key:
130
132
  specification_version: 4
131
133
  summary: Ruby wrapper for the Evostream API