okay 8.0.0 → 12.0.0

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: 480936344226fb0983ee94c29f233d6a8b3c1c811e13f58430243b4d4cef27a7
4
- data.tar.gz: bd70ea5928905aa0123f45d3edb46ab41cc811c5bc8076a73a975d0ab8e967a1
3
+ metadata.gz: d440392d2c9d86cd93c694b618d46f18935339c70897e5b6869a8b556ed17953
4
+ data.tar.gz: 63cb6c74cacfa7985707ae8bae9213b680ec5b097c184d588199ed7b7f5d6a21
5
5
  SHA512:
6
- metadata.gz: a8c3331f360a7f716ed90c8d215c260e425a21c5ee29fec75dccc78180028459c6046f5c698a7e9310fc473cfa12b290112aaacf2a30caa313261af6f2745c9f
7
- data.tar.gz: c3123c13c16a882d17d655ef928d415fb7531ed657884ce72af709d347a9ab20a5f3d4f3bcb1d6c00b53e363ac766c49a6f304a02d36109824e186674d3a4834
6
+ metadata.gz: f45cc9fe3188a53c2492459b1e4c614ab0d7400a0b891a5b1324304b0d34c5650e9a6f048c71427c770bc7205fd283f167e537244efd31df299454445ddfb477
7
+ data.tar.gz: e6d44d3186e410d8e9f95050534c4e1f13f7c86a53d6b0e4eb6197d0e3e053ba7184251166d21495b537b86bde07ea757fc37d0f246950f4027a734a103467c8
data/.cirrus.yml ADDED
@@ -0,0 +1,23 @@
1
+ # Allow compute credits usage by collaborators and bors.
2
+ use_compute_credits: $CIRRUS_USER_COLLABORATOR == 'true' || $CIRRUS_BRANCH == 'master' || $CIRRUS_BRANCH == 'staging' || $CIRRUS_BRANCH == 'trying'
3
+
4
+ Linux_task:
5
+ container:
6
+ matrix:
7
+ - image: ruby:2.6-slim
8
+ - image: ruby:2.7-slim
9
+ - image: ruby:3.0-slim
10
+ install_script:
11
+ # git is installed since the gemspec uses it.
12
+ - apt-get update && apt-get install -y git
13
+ - gem install bundler
14
+ - bundle install
15
+ script:
16
+ - ruby --version
17
+ - bundle exec rake spec
18
+
19
+ task:
20
+ name: CI Success
21
+ container: {image: "busybox"}
22
+ depends_on:
23
+ - Linux
data/.gitignore CHANGED
@@ -1,6 +1,5 @@
1
1
  /.bundle/
2
2
  /.yardoc
3
- /Gemfile.lock
4
3
  /_yardoc/
5
4
  /coverage/
6
5
  /doc/
data/Gemfile CHANGED
@@ -1,4 +1,15 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source "https://rubygems.org"
2
4
 
5
+ # Okay only supports Ruby versions under "normal maintenance".
6
+ # This number should be updated when a Ruby version goes into security
7
+ # maintenance.
8
+ #
9
+ # Ruby maintenance info: https://www.ruby-lang.org/en/downloads/branches/
10
+ #
11
+ # NOTE: Update how_is.gemspec when this is updated!
12
+ ruby ">= 2.6"
13
+
3
14
  # Specify your gem's dependencies in okay.gemspec
4
15
  gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,40 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ okay (11.0.0)
5
+ cacert
6
+
7
+ GEM
8
+ remote: https://rubygems.org/
9
+ specs:
10
+ cacert (0.6.0)
11
+ diff-lcs (1.4.4)
12
+ rake (12.3.3)
13
+ rspec (3.10.0)
14
+ rspec-core (~> 3.10.0)
15
+ rspec-expectations (~> 3.10.0)
16
+ rspec-mocks (~> 3.10.0)
17
+ rspec-core (3.10.1)
18
+ rspec-support (~> 3.10.0)
19
+ rspec-expectations (3.10.1)
20
+ diff-lcs (>= 1.2.0, < 2.0)
21
+ rspec-support (~> 3.10.0)
22
+ rspec-mocks (3.10.2)
23
+ diff-lcs (>= 1.2.0, < 2.0)
24
+ rspec-support (~> 3.10.0)
25
+ rspec-support (3.10.2)
26
+
27
+ PLATFORMS
28
+ x86_64-freebsd-13
29
+
30
+ DEPENDENCIES
31
+ bundler (~> 2.0)
32
+ okay!
33
+ rake (~> 12.3)
34
+ rspec (~> 3.8)
35
+
36
+ RUBY VERSION
37
+ ruby 3.0.1p64
38
+
39
+ BUNDLED WITH
40
+ 2.2.15
data/README.md CHANGED
@@ -43,7 +43,7 @@ Or install it yourself as:
43
43
  ### HTTP
44
44
 
45
45
  * `GET` and `POST` requests supported.
46
- * TLS is supported, using [`openssl/better_defaults`](https://github.com/duckinator/openssl-better_defaults/) to improve security on old Ruby versions.
46
+ * TLS is used automatically for HTTPS URLs.
47
47
  * Does not handle HTTP 307 redirects correctly. (Because it changes it to a GET
48
48
  request.)
49
49
 
@@ -108,6 +108,26 @@ response.body.from_json
108
108
 
109
109
  ```
110
110
 
111
+ ### Template Engine
112
+
113
+ Okay also provides a basic templating engine.
114
+
115
+ It is literally just a wrapper around `Kernel.format()` and `Pathname`.
116
+
117
+ Assuming a `./templates/example.html` containing: `a %{foo} c %{bar} e`
118
+
119
+ ```ruby
120
+ require "okay/template"
121
+
122
+ template = Okay::Template.new("./templates/")
123
+ template.apply("example.html", {foo: "b", bar: "d"}) #=> "a b c d e"
124
+ ```
125
+
126
+ ### SimpleOpts (OptionParser improvements)
127
+
128
+ See the [example usage in
129
+ HowIs](https://github.com/how-is/how_is/blob/ad81620/lib/how_is/cli.rb#L39-L74).
130
+
111
131
  ## Development
112
132
 
113
133
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
4
  require "rspec/core/rake_task"
3
5
 
data/bin/httpbin ADDED
@@ -0,0 +1,3 @@
1
+ #!/bin/bash
2
+
3
+ docker run -p 80:80 kennethreitz/httpbin
data/bors.toml ADDED
@@ -0,0 +1,5 @@
1
+ status = ["CI Success"]
2
+
3
+ # Uncomment this to use a two hour timeout.
4
+ # The default is one hour.
5
+ #timeout_sec = 7200
data/lib/okay.rb CHANGED
@@ -1,5 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "okay/version"
2
4
 
5
+ ##
6
+ # A collection of classes/modules providing simple implementations of
7
+ # useful things.
3
8
  module Okay
4
9
  # Your code goes here...
5
10
  end
data/lib/okay/default.rb CHANGED
@@ -1,6 +1,10 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "okay/version"
2
4
 
5
+ # :nodoc:
3
6
  module Okay
7
+ # :nodoc:
4
8
  module DefaultValue
5
9
  def self.nil?
6
10
  true
data/lib/okay/graphql.rb CHANGED
@@ -1,8 +1,13 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "okay/version"
2
4
  require "okay/http"
3
5
  require "json"
4
6
 
5
7
  module Okay
8
+ ##
9
+ # A simple GraphQL client.
10
+ #
6
11
  # Example usage:
7
12
  #
8
13
  # require "okay/graphql"
@@ -12,7 +17,9 @@ module Okay
12
17
  # login
13
18
  # }
14
19
  # }
15
- # response = request.submit!(:github, {bearer_token: ENV["DEMO_GITHUB_TOKEN"]})
20
+ #
21
+ # token = ENV["DEMO_GITHUB_TOKEN"]
22
+ # response = request.submit!(:github, {bearer_token: token})
16
23
  # pp JSON.parse(response.body)
17
24
  class GraphQL
18
25
  Container = Struct.new(:value) do
@@ -21,6 +28,8 @@ module Okay
21
28
  end
22
29
  end
23
30
 
31
+ ##
32
+ # Implements the GraphQL DSL.
24
33
  class QueryDSL
25
34
  def initialize(indent = 0, &query)
26
35
  @query = ""
@@ -29,15 +38,16 @@ module Okay
29
38
  instance_exec(&query)
30
39
  end
31
40
 
41
+ # rubocop:disable Metrics/AbcSize
32
42
  def method_missing(name, *args, **kwargs, &block)
33
43
  query_part = @indent_str + name.to_s
34
- if args.length > 0 || kwargs.length > 0
44
+ if !args.empty? || !kwargs.empty?
35
45
  query_part += "("
36
46
 
37
47
  query_args = []
38
48
  query_args += args unless args.empty?
39
- query_args += kwargs.map { |k,v|
40
- [k,v.inspect].join(": ")
49
+ query_args += kwargs.map { |k, v|
50
+ [k, v.inspect].join(": ")
41
51
  }
42
52
  query_part += query_args.join(", ")
43
53
 
@@ -52,12 +62,15 @@ module Okay
52
62
 
53
63
  @query += "#{query_part}\n"
54
64
  end
65
+ # rubocop:enable Metrics/AbcSize
55
66
 
56
67
  def to_s
57
68
  @query
58
69
  end
59
70
  end
60
71
 
72
+ ##
73
+ # A class for submitting GraphQL queries.
61
74
  class Query
62
75
  def initialize(raw_query = nil, &query)
63
76
  @query = raw_query || QueryDSL.new(&query)
@@ -83,12 +96,13 @@ module Okay
83
96
  end
84
97
 
85
98
  data = {
86
- "query" => to_s
99
+ "query" => to_s,
87
100
  }.to_json
88
101
  Okay::HTTP.post(url, headers: headers, data: data)
89
102
  end
90
103
 
91
- private
104
+ private
105
+
92
106
  def default_github_headers(token)
93
107
  {
94
108
  "Accept" => "application/vnd.github.v4.idl",
@@ -103,6 +117,8 @@ module Okay
103
117
  end
104
118
  end
105
119
 
120
+ # :nodoc:
121
+ # rubocop:disable all
106
122
  class Object
107
123
  def self.const_missing(name)
108
124
  # HACK: if const_missing is called inside Okay::GraphQL#initialize,
@@ -122,3 +138,4 @@ class Object
122
138
  end
123
139
  end
124
140
  end
141
+ # rubocop:enable all
data/lib/okay/http.rb CHANGED
@@ -1,11 +1,14 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "okay/version"
2
- require "openssl/better_defaults"
3
4
  require "net/https"
4
5
  require "cacert"
5
6
 
6
7
  Cacert.set_in_env
7
8
 
9
+ # :nodoc:
8
10
  module Net
11
+ # :nodoc:
9
12
  class HTTPResponse
10
13
  # Returns false if the server encountered an error, true otherwise.
11
14
  def okay?
@@ -29,18 +32,18 @@ module Net
29
32
  #
30
33
  # Okay::HTTP.get("https://example.org/blah.json").or_raise!.from_json
31
34
  def from_json
35
+ return nil unless okay?
36
+
32
37
  require "json"
33
38
 
34
- if okay?
35
- JSON.parse(body)
36
- else
37
- nil
38
- end
39
+ JSON.parse(body)
39
40
  end
40
41
  end
41
42
  end
42
43
 
43
44
  module Okay
45
+ ##
46
+ # A wrapper around Net::HTTP, focused on ease of use and flexibility.
44
47
  module HTTP
45
48
  RedirectLimitError = Class.new(StandardError)
46
49
 
@@ -62,7 +65,8 @@ module Okay
62
65
  # were a form.
63
66
  def self.post(url, data: nil, form_data: nil, headers: {})
64
67
  if !data.nil? && !form_data.nil?
65
- raise ArgumentError, "cannot specify data and form_data arguments simultaneously."
68
+ raise ArgumentError,
69
+ "cannot specify data and form_data arguments simultaneously."
66
70
  end
67
71
 
68
72
  if form_data.nil?
@@ -74,6 +78,8 @@ module Okay
74
78
  send_request(:Post, url, nil, body, headers)
75
79
  end
76
80
 
81
+ # rubocop:disable Metrics/AbcSize
82
+
77
83
  # Helper method for actually creating a request.
78
84
  #
79
85
  # @param http_method [Symbol] A symbol representing the class name for
@@ -82,7 +88,8 @@ module Okay
82
88
  # @param parameters [Hash, nil] Request parameters (for the query string).
83
89
  # @param body [String, nil] Request body.
84
90
  # @param redirect_limit [Numeric] The maximum number of redirects allowed.
85
- def self.send_request(http_method, url, parameters, body, headers, redirect_limit = DEFAULT_REDIRECT_LIMIT)
91
+ def self.send_request(http_method, url, parameters, body, headers,
92
+ redirect_limit = DEFAULT_REDIRECT_LIMIT)
86
93
  if redirect_limit <= 0
87
94
  raise RedirectLimitError, "request exceeded redirect limit"
88
95
  end
@@ -91,11 +98,13 @@ module Okay
91
98
  uri = URI.parse(url)
92
99
 
93
100
  # Set the query string for the request.
94
- uri.query = URI.encode_www_form(parameters) unless parameters.nil?
101
+ unless parameters.nil? || parameters.empty?
102
+ uri.query = URI.encode_www_form(parameters)
103
+ end
95
104
 
96
105
  options = {
97
106
  # If the URI starts with "https://", enable SSL/TLS.
98
- use_ssl: (uri.scheme == "https")
107
+ use_ssl: (uri.scheme == "https"),
99
108
  }
100
109
 
101
110
  # Net::HTTP.start() keeps a connection to the host alive
@@ -106,7 +115,7 @@ module Okay
106
115
  request_class = Net::HTTP.const_get(http_method)
107
116
 
108
117
  # Create the request object, but don't send it.
109
- request = request_class.new(uri)
118
+ request = request_class.new(uri)
110
119
 
111
120
  headers.each do |k, v|
112
121
  request[k] = v
@@ -123,13 +132,26 @@ module Okay
123
132
  # Follow a redirect.
124
133
  # Decrements +redirect_limit+ while doing so, to avoid redirect loops.
125
134
  # NOTE: Does not handle HTTP 307. https://httpstatuses.com/307
126
- send_request(:Get, response["location"], parameters, body, headers, redirect_limit - 1)
135
+ new_url = response["location"]
136
+ if new_url.start_with?("/")
137
+ new_uri = uri.dup
138
+ new_uri.path = response["location"]
139
+ new_url = new_uri.to_s
140
+ elsif new_url.start_with?(".")
141
+ new_uri = uri.dup
142
+ new_uri.path += "/" + response["location"]
143
+ new_url = new_uri.to_s
144
+ end
145
+ send_request(:Get, new_url, parameters, body, headers,
146
+ redirect_limit - 1)
127
147
  else
128
148
  response
129
149
  end
130
150
  end
131
151
  end
132
152
 
153
+ # rubocop:enable Metrics/AbcSize
154
+
133
155
  # Make +send_request+ a private method.
134
156
  private_class_method :send_request
135
157
  end
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "okay/version"
4
+ require "optparse"
5
+
6
+ module Okay
7
+ ##
8
+ # An OptionParser wrapper providing a few convenience functions.
9
+ class SimpleOpts < OptionParser
10
+ def initialize(*args, defaults: nil)
11
+ super(*args)
12
+ @okay_options = defaults || {}
13
+ end
14
+
15
+ # simple(..., :a)
16
+ # simple(..., :b)
17
+ # ==
18
+ # options = {}
19
+ # on(...) { |val| options[:a] = val }
20
+ # on(...) { |val| options[:b] = val }
21
+ def simple(*args)
22
+ key = args.pop
23
+ on(*args) { |*x| @okay_options[key] = x[0] }
24
+ end
25
+
26
+ def parse(args)
27
+ parse!(args.dup)
28
+ @okay_options
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "okay/version"
4
+ require "okay/warning_helpers"
5
+ require "pathname"
6
+
7
+ module Okay
8
+ ##
9
+ # An extremely simple templating engine.
10
+ #
11
+ # General usage:
12
+ #
13
+ # template = Okay::Template.new("./templates")
14
+ # puts template.apply("some_template.html", {"some_key": "some value"})
15
+ # template.directory #=> "./templates"
16
+ class Template
17
+ include WarningHelpers
18
+
19
+ attr_reader :directory
20
+
21
+ ##
22
+ # Create an Okay::Templates object.
23
+ #
24
+ # @param directory [String] Path of the directory containing the templates.
25
+ def initialize(directory)
26
+ @directory = directory
27
+ end
28
+
29
+ ##
30
+ # Apply the template referenced by +template_name+ to +data+.
31
+ #
32
+ # @param template_name [String] Name of the template to use,
33
+ # relative to +@directory+ (as passed to +#initialize+).
34
+ # @param data [Hash] Data to apply the template to.
35
+ #
36
+ # @return [String] Result of applying the template to +data+.
37
+ def apply(template_name, data)
38
+ template_file = Pathname.new(@directory).join(template_name)
39
+ template = template_file.read
40
+
41
+ # Silence warnings while applying the template, since we don't
42
+ # generally care about unused keys.
43
+ silence_warnings { Kernel.format(template, data) }
44
+ end
45
+ end
46
+ end
data/lib/okay/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Okay
2
- VERSION = "8.0.0"
4
+ VERSION = "12.0.0"
3
5
  end
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "okay/version"
4
+
5
+ module Okay
6
+ ##
7
+ # Helper functions for suppressing warnings when we know it's okay.
8
+ module WarningHelpers
9
+ def silence_warnings(&block)
10
+ with_warnings(nil, &block)
11
+ end
12
+
13
+ def with_warnings(flag, &_block)
14
+ old_verbose = $VERBOSE
15
+ $VERBOSE = flag
16
+ yield
17
+ ensure
18
+ $VERBOSE = old_verbose
19
+ end
20
+ end
21
+ end
data/okay.gemspec CHANGED
@@ -1,4 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # coding: utf-8
3
+
2
4
  lib = File.expand_path("../lib", __FILE__)
3
5
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
6
  require "okay/version"
@@ -21,11 +23,18 @@ Gem::Specification.new do |spec|
21
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
22
24
  spec.require_paths = ["lib"]
23
25
 
24
- spec.add_runtime_dependency "openssl-better_defaults"
26
+ # Okay only supports Ruby versions under "normal maintenance".
27
+ # This number should be updated when a Ruby version goes into security
28
+ # maintenance.
29
+ #
30
+ # Ruby maintenance info: https://www.ruby-lang.org/en/downloads/branches/
31
+ #
32
+ # NOTE: Update Gemfile when this is updated!
33
+ spec.required_ruby_version = ">= 2.6"
34
+
25
35
  spec.add_runtime_dependency "cacert"
26
36
 
27
- spec.add_development_dependency "bundler", "~> 1.15"
28
- spec.add_development_dependency "rake", "~> 10.0"
29
- spec.add_development_dependency "rspec", "~> 3.0"
30
- spec.add_development_dependency "pry"
37
+ spec.add_development_dependency "bundler", "~> 2.0"
38
+ spec.add_development_dependency "rake", "~> 12.3"
39
+ spec.add_development_dependency "rspec", "~> 3.8"
31
40
  end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: okay
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.0.0
4
+ version: 12.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ellen Marie Dash
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-30 00:00:00.000000000 Z
11
+ date: 2021-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: openssl-better_defaults
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '0'
27
13
  - !ruby/object:Gem::Dependency
28
14
  name: cacert
29
15
  requirement: !ruby/object:Gem::Requirement
@@ -44,56 +30,42 @@ dependencies:
44
30
  requirements:
45
31
  - - "~>"
46
32
  - !ruby/object:Gem::Version
47
- version: '1.15'
33
+ version: '2.0'
48
34
  type: :development
49
35
  prerelease: false
50
36
  version_requirements: !ruby/object:Gem::Requirement
51
37
  requirements:
52
38
  - - "~>"
53
39
  - !ruby/object:Gem::Version
54
- version: '1.15'
40
+ version: '2.0'
55
41
  - !ruby/object:Gem::Dependency
56
42
  name: rake
57
43
  requirement: !ruby/object:Gem::Requirement
58
44
  requirements:
59
45
  - - "~>"
60
46
  - !ruby/object:Gem::Version
61
- version: '10.0'
47
+ version: '12.3'
62
48
  type: :development
63
49
  prerelease: false
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
51
  requirements:
66
52
  - - "~>"
67
53
  - !ruby/object:Gem::Version
68
- version: '10.0'
54
+ version: '12.3'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: rspec
71
57
  requirement: !ruby/object:Gem::Requirement
72
58
  requirements:
73
59
  - - "~>"
74
60
  - !ruby/object:Gem::Version
75
- version: '3.0'
61
+ version: '3.8'
76
62
  type: :development
77
63
  prerelease: false
78
64
  version_requirements: !ruby/object:Gem::Requirement
79
65
  requirements:
80
66
  - - "~>"
81
67
  - !ruby/object:Gem::Version
82
- version: '3.0'
83
- - !ruby/object:Gem::Dependency
84
- name: pry
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - ">="
88
- - !ruby/object:Gem::Version
89
- version: '0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - ">="
95
- - !ruby/object:Gem::Version
96
- version: '0'
68
+ version: '3.8'
97
69
  description: Okay, minimalist implementations of common utilities in Ruby. E.g., HTTP
98
70
  fetchers.
99
71
  email:
@@ -102,29 +74,35 @@ executables: []
102
74
  extensions: []
103
75
  extra_rdoc_files: []
104
76
  files:
77
+ - ".cirrus.yml"
105
78
  - ".gitignore"
106
79
  - ".rspec"
107
- - ".travis.yml"
108
80
  - CODE_OF_CONDUCT.md
109
81
  - Gemfile
82
+ - Gemfile.lock
110
83
  - LICENSE.txt
111
84
  - README.md
112
85
  - Rakefile
113
86
  - bin/console
87
+ - bin/httpbin
114
88
  - bin/setup
89
+ - bors.toml
115
90
  - examples/github-graphql-example.rb
116
91
  - examples/github-graphql-intentional-failure-example.rb
117
92
  - lib/okay.rb
118
93
  - lib/okay/default.rb
119
94
  - lib/okay/graphql.rb
120
95
  - lib/okay/http.rb
96
+ - lib/okay/simple_opts.rb
97
+ - lib/okay/template.rb
121
98
  - lib/okay/version.rb
99
+ - lib/okay/warning_helpers.rb
122
100
  - okay.gemspec
123
101
  homepage: https://github.com/duckinator/okay
124
102
  licenses:
125
103
  - MIT
126
104
  metadata: {}
127
- post_install_message:
105
+ post_install_message:
128
106
  rdoc_options: []
129
107
  require_paths:
130
108
  - lib
@@ -132,16 +110,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
132
110
  requirements:
133
111
  - - ">="
134
112
  - !ruby/object:Gem::Version
135
- version: '0'
113
+ version: '2.6'
136
114
  required_rubygems_version: !ruby/object:Gem::Requirement
137
115
  requirements:
138
116
  - - ">="
139
117
  - !ruby/object:Gem::Version
140
118
  version: '0'
141
119
  requirements: []
142
- rubyforge_project:
143
- rubygems_version: 2.7.6
144
- signing_key:
120
+ rubygems_version: 3.2.15
121
+ signing_key:
145
122
  specification_version: 4
146
123
  summary: Okay, minimalist implementations of common utilities.
147
124
  test_files: []
data/.travis.yml DELETED
@@ -1,5 +0,0 @@
1
- sudo: false
2
- language: ruby
3
- rvm:
4
- - 2.4.0
5
- before_install: gem install bundler -v 1.15.0