net-hippie 0.1.4 → 0.1.5

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: 0e95eedcca8831b3fd8e8393aeccdb1a7ca72d8442a383b8a3ecc0391ebebc4c
4
- data.tar.gz: 047b6790c5bc1b968335839549ffc70237746f68bc471cac99ec16c4b6206834
3
+ metadata.gz: 12ccfad50c8db9e96df5f49a277ba31b2b039fcc685aed30a733b27a620d64ee
4
+ data.tar.gz: 85196d13bc7e652dc064ac73d639cb4c4f4c945ca6298bdf2425547b792fd7e5
5
5
  SHA512:
6
- metadata.gz: d5db2ef1505ecfd89d53f6cd288e964249cc4d2307be981be9a9b45ac1dd35622b63656731d043f1f11b944f90fff5044087f73f6311c1c412bed213589200de
7
- data.tar.gz: 0e244de752f8d531fdb4ddd2b83fb7c857875d1bb1ef0530b0ba41e992fd8165f4b07c28a0fc365dfd8071c480e15c33d0ef52165eef9156327996badc8516eb
6
+ metadata.gz: 8557e62376abba6c5edb1ebe2a44b490bf26ab93b0a766e0b3987c53c5a174b96f211d803e66b0634f74ef6f4d1b71c9764e9e422bbacbb449507b1fbf993792
7
+ data.tar.gz: af6365c53418c152c3cf26903eb053c7e89956e39c33d03a1cef1f84fe41a6a81135885adb57de110f0d4b0337d418ddff79485a9a719a2fbc0e68c27638888f
data/.gitlab-ci.yml ADDED
@@ -0,0 +1,12 @@
1
+ image: ruby:2.5
2
+
3
+ before_script:
4
+ - apt-get update && apt-get install -y locales
5
+ - echo "en_US.UTF-8 UTF-8" > /etc/locale.gen
6
+ - locale-gen
7
+ - export LC_ALL=en_US.UTF-8
8
+
9
+ ci:
10
+ script:
11
+ - bin/cibuild
12
+
data/.travis.yml CHANGED
@@ -1,5 +1,7 @@
1
1
  sudo: false
2
2
  language: ruby
3
+ cache: bundler
3
4
  rvm:
4
5
  - 2.5.1
5
- before_install: gem install bundler -v 1.16.1
6
+ script:
7
+ - bin/cibuild
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
- source "https://rubygems.org"
1
+ source 'https://rubygems.org'
2
2
 
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
3
+ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
5
  # Specify your gem's dependencies in net-hippie.gemspec
6
6
  gemspec
data/Rakefile CHANGED
@@ -1,10 +1,13 @@
1
- require "bundler/gem_tasks"
2
- require "rake/testtask"
1
+ require 'bundler/gem_tasks'
2
+ require 'rake/testtask'
3
+ require 'rubocop/rake_task'
3
4
 
4
5
  Rake::TestTask.new(:test) do |t|
5
- t.libs << "test"
6
- t.libs << "lib"
7
- t.test_files = FileList["test/**/*_test.rb"]
6
+ t.libs << 'test'
7
+ t.libs << 'lib'
8
+ t.test_files = FileList['test/**/*_test.rb']
8
9
  end
10
+ RuboCop::RakeTask.new(:rubocop)
9
11
 
10
- task :default => :test
12
+ task lint: [:rubocop]
13
+ task default: :test
data/bin/cibuild ADDED
@@ -0,0 +1,22 @@
1
+ #!/bin/sh
2
+
3
+ # script/cibuild: Setup environment for CI to run tests. This is primarily
4
+ # designed to run on the continuous integration server.
5
+
6
+ set -e
7
+
8
+ cd "$(dirname "$0")/.."
9
+
10
+ echo [$(date "+%H:%M:%S")] "==> Started at…"
11
+
12
+ # GC customizations
13
+ export RUBY_GC_MALLOC_LIMIT=79000000
14
+ export RUBY_GC_HEAP_INIT_SLOTS=800000
15
+ export RUBY_HEAP_FREE_MIN=100000
16
+ export RUBY_HEAP_SLOTS_INCREMENT=400000
17
+ export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1
18
+
19
+ ruby -v
20
+ gem install bundler --no-ri --no-rdoc --conservative
21
+ bin/test
22
+ bin/lint
data/bin/console CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "net/hippie"
4
+ require 'bundler/setup'
5
+ require 'net/hippie'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "net/hippie"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
data/bin/lint ADDED
@@ -0,0 +1,8 @@
1
+ #!/bin/sh
2
+
3
+ set -e
4
+
5
+ [ -z "$DEBUG" ] || set -x
6
+
7
+ echo [$(date "+%H:%M:%S")] "==> Running linters…"
8
+ bundle exec rake lint
data/bin/test ADDED
@@ -0,0 +1,17 @@
1
+ #!/bin/sh
2
+
3
+ # script/test: Run test suite for application. Optionally pass in a path to an
4
+ # individual test file to run a single test.
5
+
6
+
7
+ set -e
8
+
9
+ cd "$(dirname "$0")/.."
10
+
11
+ [ -z "$DEBUG" ] || set -x
12
+
13
+ echo [$(date "+%H:%M:%S")] "==> Running setup…"
14
+ bin/setup
15
+
16
+ echo [$(date "+%H:%M:%S")] "==> Running tests…"
17
+ bundle exec rake test
data/exe/net-hippie CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require "net/hippie"
3
+ require 'net/hippie'
4
4
 
5
- puts "☮️"
5
+ puts '☮️'
data/lib/net/hippie.rb CHANGED
@@ -1,13 +1,14 @@
1
- require "json"
2
- require "logger"
3
- require "net/http"
4
- require "openssl"
1
+ require 'json'
2
+ require 'logger'
3
+ require 'net/http'
4
+ require 'openssl'
5
5
 
6
- require "net/hippie/version"
7
- require "net/hippie/json_mapper"
8
- require "net/hippie/client"
6
+ require 'net/hippie/version'
7
+ require 'net/hippie/json_mapper'
8
+ require 'net/hippie/client'
9
9
 
10
10
  module Net
11
+ # net/http for hippies.
11
12
  module Hippie
12
13
  def self.logger
13
14
  @logger ||= Logger.new(STDOUT)
@@ -1,11 +1,12 @@
1
1
  module Net
2
2
  module Hippie
3
+ # A simple client for connecting with http resources.
3
4
  class Client
4
5
  DEFAULT_HEADERS = {
5
6
  'Accept' => 'application/json',
6
7
  'Content-Type' => 'application/json',
7
- 'User-Agent' => "net/hippie #{Net::Hippie::VERSION}",
8
- }
8
+ 'User-Agent' => "net/hippie #{Net::Hippie::VERSION}"
9
+ }.freeze
9
10
 
10
11
  def initialize(
11
12
  certificate: nil,
@@ -18,6 +19,7 @@ module Net
18
19
  @default_headers = headers
19
20
  @key = key
20
21
  @mapper = mapper
22
+ @passphrase = passphrase
21
23
  end
22
24
 
23
25
  def execute(uri, request)
@@ -35,7 +37,8 @@ module Net
35
37
  end
36
38
 
37
39
  def post(uri, headers: {}, body: {})
38
- request = request_for(Net::HTTP::Post, uri, headers: headers, body: body)
40
+ type = Net::HTTP::Post
41
+ request = request_for(type, uri, headers: headers, body: body)
39
42
  response = execute(uri, request)
40
43
  if block_given?
41
44
  yield request, response
@@ -66,13 +69,9 @@ module Net
66
69
  http.read_timeout = 30
67
70
  http.use_ssl = uri.is_a?(URI::HTTPS)
68
71
  http.set_debug_output(Net::Hippie.logger)
69
- http.cert = OpenSSL::X509::Certificate.new(certificate) if certificate
70
- if key
71
- if passphrase
72
- http.key = OpenSSL::PKey::RSA.new(key, passphrase)
73
- else
74
- http.key = OpenSSL::PKey::RSA.new(key)
75
- end
72
+ if certificate && key
73
+ http.cert = OpenSSL::X509::Certificate.new(certificate) if certificate
74
+ http.key = private_key
76
75
  end
77
76
  http
78
77
  end
@@ -86,6 +85,14 @@ module Net
86
85
  def normalize_uri(uri)
87
86
  uri.is_a?(URI) ? uri : URI.parse(uri)
88
87
  end
88
+
89
+ def private_key
90
+ if passphrase
91
+ OpenSSL::PKey::RSA.new(key, passphrase)
92
+ else
93
+ OpenSSL::PKey::RSA.new(key)
94
+ end
95
+ end
89
96
  end
90
97
  end
91
98
  end
@@ -1,5 +1,6 @@
1
1
  module Net
2
2
  module Hippie
3
+ # Converts a ruby hash into a JSON string
3
4
  class JsonMapper
4
5
  def map_from(hash)
5
6
  JSON.generate(hash)
@@ -1,5 +1,5 @@
1
1
  module Net
2
2
  module Hippie
3
- VERSION = "0.1.4"
3
+ VERSION = '0.1.5'.freeze
4
4
  end
5
5
  end
data/net-hippie.gemspec CHANGED
@@ -1,29 +1,30 @@
1
1
 
2
- lib = File.expand_path("../lib", __FILE__)
2
+ lib = File.expand_path('lib', __dir__)
3
3
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "net/hippie/version"
4
+ require 'net/hippie/version'
5
5
 
6
6
  Gem::Specification.new do |spec|
7
- spec.name = "net-hippie"
7
+ spec.name = 'net-hippie'
8
8
  spec.version = Net::Hippie::VERSION
9
- spec.authors = ["mo"]
10
- spec.email = ["mo@mokhan.ca"]
9
+ spec.authors = ['mo']
10
+ spec.email = ['mo@mokhan.ca']
11
11
 
12
- spec.summary = %q{net/http for hippies.}
13
- spec.description = %q{net/http for hippies.}
14
- spec.homepage = "https://www.mokhan.ca/"
15
- spec.license = "MIT"
12
+ spec.summary = 'net/http for hippies.'
13
+ spec.description = 'net/http for hippies.'
14
+ spec.homepage = 'https://www.mokhan.ca/'
15
+ spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
18
18
  f.match(%r{^(test|spec|features)/})
19
19
  end
20
- spec.bindir = "exe"
20
+ spec.bindir = 'exe'
21
21
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
- spec.require_paths = ["lib"]
22
+ spec.require_paths = ['lib']
23
23
 
24
- spec.add_development_dependency "bundler", "~> 1.16"
25
- spec.add_development_dependency "rake", "~> 10.0"
26
- spec.add_development_dependency "minitest", "~> 5.0"
27
- spec.add_development_dependency "vcr", "~> 4.0"
28
- spec.add_development_dependency "webmock", "~> 3.4"
24
+ spec.add_development_dependency 'bundler', '~> 1.16'
25
+ spec.add_development_dependency 'minitest', '~> 5.0'
26
+ spec.add_development_dependency 'rake', '~> 10.0'
27
+ spec.add_development_dependency 'rubocop', '~> 0.55'
28
+ spec.add_development_dependency 'vcr', '~> 4.0'
29
+ spec.add_development_dependency 'webmock', '~> 3.4'
29
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: net-hippie
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - mo
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '1.16'
27
+ - !ruby/object:Gem::Dependency
28
+ name: minitest
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '5.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '5.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -39,19 +53,19 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: '10.0'
41
55
  - !ruby/object:Gem::Dependency
42
- name: minitest
56
+ name: rubocop
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - "~>"
46
60
  - !ruby/object:Gem::Version
47
- version: '5.0'
61
+ version: '0.55'
48
62
  type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
- version: '5.0'
68
+ version: '0.55'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: vcr
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -89,13 +103,17 @@ extensions: []
89
103
  extra_rdoc_files: []
90
104
  files:
91
105
  - ".gitignore"
106
+ - ".gitlab-ci.yml"
92
107
  - ".travis.yml"
93
108
  - Gemfile
94
109
  - LICENSE.txt
95
110
  - README.md
96
111
  - Rakefile
112
+ - bin/cibuild
97
113
  - bin/console
114
+ - bin/lint
98
115
  - bin/setup
116
+ - bin/test
99
117
  - exe/net-hippie
100
118
  - lib/net/hippie.rb
101
119
  - lib/net/hippie/client.rb