okay 8.0.0 → 12.0.0

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