net-hippie 0.1.6 → 0.1.7

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
  SHA256:
3
- metadata.gz: 4c5d155f5448e9f33bc6c2bef4af075a3804929a7eace6664f4e88b6e7b79d12
4
- data.tar.gz: da74b837e82a4daa13b208b3692ec48c15f5610f2d5176d345f7f2bc9fdfee0d
3
+ metadata.gz: 7fb567c350ee5a904c269d615b327d61dd48da0f61909f7b8ec32d653e936a76
4
+ data.tar.gz: 8e693ab4ecae19e859375f6f13d01243e82878cb30d6406ca2c143f3af241215
5
5
  SHA512:
6
- metadata.gz: 86c640e0a1f436386e52b10115435bc71d7ef4b267fe84d61cfd00554dc2b9239f82aeec46f2b52090127c21b1faea953d9e27c6aae3b84244b61e5b434c26d4
7
- data.tar.gz: 4076fb61f5c81ab74dd9e22e94d10a7756d93316550cb842c9b32a2a5f32703ed3f86ffa00b8a0ba1adbd4b32a0bedefb2511b7fda145fadbdac5c8544b28c21
6
+ metadata.gz: 448a565bcba1d90d841673cb9a41b749e82d630d21fa2f76c3111a398421b3b0ae21d9ed3e58edc16dc4cf4bfa1859adaf106cdaa7dd0bea47e7aab4c4f825b2
7
+ data.tar.gz: 2b2e3d9d579240a594ba3a8f84b6ab221693a5814ff9a872c5cdb3634d11b989964cf0570546d9bdae39aae75bbd69032766b46cfec82f127d3eefdd704b1dba
@@ -0,0 +1,8 @@
1
+ AllCops:
2
+ Exclude:
3
+ - 'coverage/**/*'
4
+ - 'pkg/**/*'
5
+ - 'test/**/*'
6
+ - 'tmp/**/*'
7
+ - 'vendor/**/*'
8
+ TargetRubyVersion: 2.5
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rake/testtask'
3
5
  require 'rubocop/rake_task'
@@ -0,0 +1,10 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ cd "$(dirname "$0")/.."
6
+
7
+ [ -z "$DEBUG" ] || set -x
8
+
9
+ bin/cibuild
10
+ bundle exec rake release
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
4
  require 'net/hippie'
4
5
 
@@ -1,10 +1,12 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require 'logger'
3
5
  require 'net/http'
4
6
  require 'openssl'
5
7
 
6
8
  require 'net/hippie/version'
7
- require 'net/hippie/json_mapper'
9
+ require 'net/hippie/content_type_mapper'
8
10
  require 'net/hippie/client'
9
11
  require 'net/hippie/api'
10
12
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Net
2
4
  module Hippie
3
5
  # A no nonsense class to perform HTTP requests.
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Net
2
4
  module Hippie
3
5
  # A simple client for connecting with http resources.
@@ -20,7 +22,7 @@ module Net
20
22
  @certificate = certificate
21
23
  @default_headers = headers
22
24
  @key = key
23
- @mapper = JsonMapper.new
25
+ @mapper = ContentTypeMapper.new
24
26
  @passphrase = passphrase
25
27
  @verify_mode = verify_mode
26
28
  end
@@ -50,6 +52,12 @@ module Net
50
52
  execute(uri, request, &block)
51
53
  end
52
54
 
55
+ def delete(uri, headers: {}, body: {}, &block)
56
+ type = Net::HTTP::Delete
57
+ request = request_for(type, uri, headers: headers, body: body)
58
+ execute(uri, request, &block)
59
+ end
60
+
53
61
  private
54
62
 
55
63
  attr_reader :default_headers
@@ -62,16 +70,14 @@ module Net
62
70
  http.use_ssl = uri.is_a?(URI::HTTPS)
63
71
  http.verify_mode = verify_mode
64
72
  http.set_debug_output(Net::Hippie.logger)
65
- if certificate && key
66
- http.cert = OpenSSL::X509::Certificate.new(certificate) if certificate
67
- http.key = private_key
68
- end
73
+ apply_client_tls_to(http)
69
74
  http
70
75
  end
71
76
 
72
77
  def request_for(type, uri, headers: {}, body: {})
73
- type.new(uri, default_headers.merge(headers)).tap do |x|
74
- x.body = mapper.map_from(body) unless body.empty?
78
+ final_headers = default_headers.merge(headers)
79
+ type.new(uri, final_headers).tap do |x|
80
+ x.body = mapper.map_from(final_headers, body) unless body.empty?
75
81
  end
76
82
  end
77
83
 
@@ -79,12 +85,15 @@ module Net
79
85
  uri.is_a?(URI) ? uri : URI.parse(uri)
80
86
  end
81
87
 
82
- def private_key
83
- if passphrase
84
- OpenSSL::PKey::RSA.new(key, passphrase)
85
- else
86
- OpenSSL::PKey::RSA.new(key)
87
- end
88
+ def private_key(type = OpenSSL::PKey::RSA)
89
+ passphrase ? type.new(key, passphrase) : type.new(key)
90
+ end
91
+
92
+ def apply_client_tls_to(http)
93
+ return if certificate.nil? || key.nil?
94
+
95
+ http.cert = OpenSSL::X509::Certificate.new(certificate)
96
+ http.key = private_key
88
97
  end
89
98
  end
90
99
  end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Net
4
+ module Hippie
5
+ # Converts a ruby hash into a JSON string
6
+ class ContentTypeMapper
7
+ def map_from(headers, body)
8
+ content_type = headers['Content-Type'] || ''
9
+ return JSON.generate(body) if content_type.include?('json')
10
+ body
11
+ end
12
+ end
13
+ end
14
+ end
@@ -1,5 +1,7 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Net
2
4
  module Hippie
3
- VERSION = '0.1.6'.freeze
5
+ VERSION = '0.1.7'
4
6
  end
5
7
  end
@@ -1,4 +1,6 @@
1
1
 
2
+ # frozen_string_literal: true
3
+
2
4
  lib = File.expand_path('lib', __dir__)
3
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
6
  require 'net/hippie/version'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-hippie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-09 00:00:00.000000000 Z
11
+ date: 2018-05-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -104,6 +104,7 @@ extra_rdoc_files: []
104
104
  files:
105
105
  - ".gitignore"
106
106
  - ".gitlab-ci.yml"
107
+ - ".rubocop.yml"
107
108
  - ".travis.yml"
108
109
  - Gemfile
109
110
  - LICENSE.txt
@@ -113,12 +114,13 @@ files:
113
114
  - bin/console
114
115
  - bin/lint
115
116
  - bin/setup
117
+ - bin/shipit
116
118
  - bin/test
117
119
  - exe/net-hippie
118
120
  - lib/net/hippie.rb
119
121
  - lib/net/hippie/api.rb
120
122
  - lib/net/hippie/client.rb
121
- - lib/net/hippie/json_mapper.rb
123
+ - lib/net/hippie/content_type_mapper.rb
122
124
  - lib/net/hippie/version.rb
123
125
  - net-hippie.gemspec
124
126
  homepage: https://www.mokhan.ca/
@@ -1,10 +0,0 @@
1
- module Net
2
- module Hippie
3
- # Converts a ruby hash into a JSON string
4
- class JsonMapper
5
- def map_from(hash)
6
- JSON.generate(hash)
7
- end
8
- end
9
- end
10
- end