net-hippie 0.1.6 → 0.1.7

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