ghub 0.7.0 → 0.8.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/ghub.gemspec +3 -3
  4. data/lib/ghub/client.rb +10 -24
  5. data/lib/ghub/configuration/content.rb +1 -1
  6. data/lib/ghub/endpoints/branches/protection/models/show.rb +17 -14
  7. data/lib/ghub/endpoints/branches/signature/root.rb +2 -2
  8. data/lib/ghub/endpoints/organizations/members/actions/index.rb +1 -1
  9. data/lib/ghub/endpoints/pulls/actions/index.rb +1 -1
  10. data/lib/ghub/endpoints/pulls/models/show.rb +13 -12
  11. data/lib/ghub/endpoints/repositories/actions/index.rb +1 -1
  12. data/lib/ghub/endpoints/search/users/actions/index.rb +1 -1
  13. data/lib/ghub/endpoints/search/users/models/index.rb +4 -3
  14. data/lib/ghub/endpoints/users/actions/index.rb +1 -1
  15. data/lib/ghub/endpoints/users/actions/show.rb +1 -1
  16. data/lib/ghub/endpoints/users/models/index.rb +4 -3
  17. data/lib/ghub/endpoints/users/models/show.rb +4 -3
  18. data/lib/ghub/models/application.rb +8 -7
  19. data/lib/ghub/models/boolean_link.rb +4 -2
  20. data/lib/ghub/models/branch.rb +8 -6
  21. data/lib/ghub/models/check.rb +2 -6
  22. data/lib/ghub/models/dismissal_restriction.rb +10 -9
  23. data/lib/ghub/models/label.rb +2 -3
  24. data/lib/ghub/models/license.rb +2 -3
  25. data/lib/ghub/models/link.rb +2 -2
  26. data/lib/ghub/models/links.rb +5 -6
  27. data/lib/ghub/models/owner.rb +2 -3
  28. data/lib/ghub/models/permissions/branch.rb +2 -3
  29. data/lib/ghub/models/permissions/repository.rb +2 -3
  30. data/lib/ghub/models/repository.rb +11 -10
  31. data/lib/ghub/models/restriction.rb +10 -9
  32. data/lib/ghub/models/review.rb +8 -7
  33. data/lib/ghub/models/status_check.rb +6 -5
  34. data/lib/ghub/models/team.rb +2 -3
  35. data/lib/ghub/models/user.rb +4 -3
  36. data/lib/ghub.rb +3 -1
  37. data.tar.gz.sig +0 -0
  38. metadata +9 -6
  39. metadata.gz.sig +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ce5b37f7c61c21eeeff22b06117bee8ec9cf0c80bc119f82d92f8b8c7d2475c6
4
- data.tar.gz: 62cfd658f42a0b836869b212c13c9f5f6e6e2c9e86bc5d06da43367268f668c6
3
+ metadata.gz: cf1a081996d0da286e9d4e119a56ea35ea58a636018d09b0bdfcc67f02e62a5e
4
+ data.tar.gz: f88c2fb12172b4989c4def3d7c2ebe3995646dfa77883dc96d344c030c556277
5
5
  SHA512:
6
- metadata.gz: 8f5c9a045f4abfab759860eeefc8169f402fce8906f9471b4542880da9caae712816996be863f392723dbee49e6e2a2d59fd3373a0cef120ea852054a8043e0c
7
- data.tar.gz: b589f93696d26551cca0db2629c0551911b29dba3e4bcc59dc5e3c6857f29638bbde5758687a28be658876526b570b6adde3e1af14f775f3c565721aab06846a
6
+ metadata.gz: 82f73ed39a7a1c6749c6a012ceca3cab45ff38d3840576f85bede69444e1828a82332ab2ca77f35ef0abeb1b4920213e020c777f23e3cba82da677f1eaaabafd
7
+ data.tar.gz: d7993fb0d5a7829aa573b2ec3ef39a0997de41fbd499ebd300ddcb5571422e860655847f75fc6d58a73b4722c93f24db4e3b860fbfcdea6402e6114417d60c67
checksums.yaml.gz.sig CHANGED
Binary file
data/ghub.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "ghub"
5
- spec.version = "0.7.0"
5
+ spec.version = "0.8.1"
6
6
  spec.authors = ["Brooke Kuhlmann"]
7
7
  spec.email = ["brooke@alchemists.io"]
8
8
  spec.homepage = "https://alchemists.io/projects/ghub"
@@ -22,12 +22,12 @@ Gem::Specification.new do |spec|
22
22
  spec.signing_key = Gem.default_key_path
23
23
  spec.cert_chain = [Gem.default_cert_path]
24
24
 
25
- spec.required_ruby_version = "~> 3.2"
25
+ spec.required_ruby_version = [">= 3.2", "<= 3.3"]
26
26
  spec.add_dependency "dry-container", "~> 0.11"
27
27
  spec.add_dependency "dry-monads", "~> 1.6"
28
28
  spec.add_dependency "dry-schema", "~> 1.13"
29
29
  spec.add_dependency "http", "~> 5.1"
30
- spec.add_dependency "infusible", "~> 2.0"
30
+ spec.add_dependency "infusible", "~> 2.2"
31
31
  spec.add_dependency "refinements", "~> 11.0"
32
32
  spec.add_dependency "transactable", "~> 0.5"
33
33
  spec.add_dependency "zeitwerk", "~> 2.6"
data/lib/ghub/client.rb CHANGED
@@ -3,35 +3,21 @@
3
3
  module Ghub
4
4
  # The primary interface for making API requests.
5
5
  class Client
6
- include Import[:configuration]
6
+ include Endpoints::Import.public(
7
+ :branch_protection,
8
+ :branch_signature,
9
+ :organization_members,
10
+ :pulls,
11
+ :repositories,
12
+ :search_users,
13
+ :users
14
+ )
7
15
 
8
- include Endpoints::Import[
9
- branch_protection_endpoint: :branch_protection,
10
- branch_signature_endpoint: :branch_signature,
11
- organization_members_endpoint: :organization_members,
12
- pulls_endpoint: :pulls,
13
- repositories_endpoint: :repositories,
14
- search_users_endpoint: :search_users,
15
- users_endpoint: :users
16
- ]
16
+ include Import[:configuration]
17
17
 
18
18
  def initialize(**)
19
19
  super(**)
20
20
  yield configuration if block_given?
21
21
  end
22
-
23
- def branch_protection = branch_protection_endpoint
24
-
25
- def branch_signature = branch_signature_endpoint
26
-
27
- def organization_members = organization_members_endpoint
28
-
29
- def pulls = pulls_endpoint
30
-
31
- def repositories = repositories_endpoint
32
-
33
- def search_users = search_users_endpoint
34
-
35
- def users = users_endpoint
36
22
  end
37
23
  end
@@ -3,6 +3,6 @@
3
3
  module Ghub
4
4
  module Configuration
5
5
  # Defines the client configuration content for API requests.
6
- Content = Struct.new :accept, :paginate, :token, :url, keyword_init: true
6
+ Content = Struct.new :accept, :paginate, :token, :url
7
7
  end
8
8
  end
@@ -17,26 +17,29 @@ module Ghub
17
17
  :required_signatures,
18
18
  :required_status_checks,
19
19
  :restrictions,
20
- :url,
21
- keyword_init: true
20
+ :url
22
21
  ) do
23
22
  include Resultable
24
23
 
25
- def self.for attributes
26
- new attributes.merge(
27
- enforce_admins: Ghub::Models::BooleanLink[attributes[:enforce_admins]],
28
- required_signatures: Ghub::Models::BooleanLink[attributes[:required_signatures]],
29
- required_status_checks: Ghub::Models::StatusCheck.for(
30
- attributes[:required_status_checks]
31
- ),
32
- required_pull_request_reviews: Ghub::Models::Review.for(
33
- attributes[:required_pull_request_reviews]
34
- ),
35
- restrictions: Ghub::Models::Restriction.for(attributes[:restrictions])
24
+ def self.for(**attributes)
25
+ new(
26
+ **attributes.merge!(
27
+ enforce_admins: Ghub::Models::BooleanLink[**attributes[:enforce_admins]],
28
+ required_signatures: Ghub::Models::BooleanLink[
29
+ **Hash(attributes[:required_signatures])
30
+ ],
31
+ required_status_checks: Ghub::Models::StatusCheck.for(
32
+ **Hash(attributes[:required_status_checks])
33
+ ),
34
+ required_pull_request_reviews: Ghub::Models::Review.for(
35
+ **Hash(attributes[:required_pull_request_reviews])
36
+ ),
37
+ restrictions: Ghub::Models::Restriction.for(**Hash(attributes[:restrictions]))
38
+ )
36
39
  )
37
40
  end
38
41
 
39
- def initialize *arguments
42
+ def initialize(**)
40
43
  super
41
44
  freeze
42
45
  end
@@ -23,7 +23,7 @@ module Ghub
23
23
  to(client, :get),
24
24
  try(:parse, catch: JSON::ParserError),
25
25
  validate(response),
26
- to(model, :new)
26
+ to(model, :for)
27
27
  end
28
28
 
29
29
  def create owner, repository, branch
@@ -31,7 +31,7 @@ module Ghub
31
31
  to(client, :post),
32
32
  try(:parse, catch: JSON::ParserError),
33
33
  validate(response),
34
- to(model, :new)
34
+ to(model, :for)
35
35
  end
36
36
 
37
37
  def destroy owner, repository, branch
@@ -21,7 +21,7 @@ module Ghub
21
21
  fmap { |body| {body:} },
22
22
  validate(response),
23
23
  as(:fetch, :body),
24
- map { |item| model.new item }
24
+ map { |item| model.for(**item) }
25
25
  )
26
26
  end
27
27
  end
@@ -18,7 +18,7 @@ module Ghub
18
18
  fmap { |body| {body:} },
19
19
  validate(response),
20
20
  as(:fetch, :body),
21
- map { |item| model.for item }
21
+ map { |item| model.for(**item) }
22
22
  )
23
23
  end
24
24
  end
@@ -53,26 +53,27 @@ module Ghub
53
53
  :title,
54
54
  :updated_at,
55
55
  :url,
56
- :user,
57
- keyword_init: true
56
+ :user
58
57
  ) do
59
58
  include Resultable
60
59
 
61
- def self.for attributes
60
+ def self.for(**attributes)
62
61
  assignee = attributes[:assignee]
63
62
 
64
- new attributes.merge(
65
- _links: Ghub::Models::Links.for(attributes[:_links]),
66
- assignee: (Ghub::Models::User[assignee] if assignee),
67
- assignees: attributes[:assignees].map { |data| Ghub::Models::User[data] },
68
- base: Ghub::Models::Branch[attributes[:base]],
69
- head: Ghub::Models::Branch[attributes[:head]],
70
- labels: attributes[:labels].map { |data| Ghub::Models::Label[data] },
71
- user: Ghub::Models::User[attributes[:user]]
63
+ new(
64
+ **attributes.merge!(
65
+ _links: Ghub::Models::Links.for(**attributes[:_links]),
66
+ assignee: (Ghub::Models::User[**assignee] if assignee),
67
+ assignees: attributes[:assignees].map { |data| Ghub::Models::User[**data] },
68
+ base: Ghub::Models::Branch[**attributes[:base]],
69
+ head: Ghub::Models::Branch[**attributes[:head]],
70
+ labels: attributes[:labels].map { |data| Ghub::Models::Label[**data] },
71
+ user: Ghub::Models::User[**attributes[:user]]
72
+ )
72
73
  )
73
74
  end
74
75
 
75
- def initialize *arguments
76
+ def initialize(**)
76
77
  super
77
78
  freeze
78
79
  end
@@ -26,7 +26,7 @@ module Ghub
26
26
  fmap { |body| {body:} },
27
27
  validate(response),
28
28
  as(:fetch, :body),
29
- map { |item| model.for item }
29
+ map { |item| model.for(**item) }
30
30
  )
31
31
  end
32
32
  end
@@ -18,7 +18,7 @@ module Ghub
18
18
  try(:parse, catch: JSON::ParserError),
19
19
  validate(response),
20
20
  as(:fetch, :items),
21
- map { |item| model.new item.to_h }
21
+ map { |item| model.for(**item) }
22
22
  )
23
23
  end
24
24
  end
@@ -25,12 +25,13 @@ module Ghub
25
25
  :starred_url,
26
26
  :subscriptions_url,
27
27
  :type,
28
- :url,
29
- keyword_init: true
28
+ :url
30
29
  ) do
31
30
  include Resultable
32
31
 
33
- def initialize *arguments
32
+ def self.for(**) = new(**)
33
+
34
+ def initialize(**)
34
35
  super
35
36
  freeze
36
37
  end
@@ -18,7 +18,7 @@ module Ghub
18
18
  fmap { |body| {body:} },
19
19
  validate(response),
20
20
  as(:fetch, :body),
21
- map { |item| model.new item.to_h }
21
+ map { |item| model.for(**item) }
22
22
  )
23
23
  end
24
24
  end
@@ -15,7 +15,7 @@ module Ghub
15
15
  pipe client.get("users/#{id}", **parameters),
16
16
  try(:parse, catch: JSON::ParserError),
17
17
  validate(response),
18
- to(model, :new)
18
+ to(model, :for)
19
19
  end
20
20
  end
21
21
  end
@@ -23,12 +23,13 @@ module Ghub
23
23
  :starred_url,
24
24
  :subscriptions_url,
25
25
  :type,
26
- :url,
27
- keyword_init: true
26
+ :url
28
27
  ) do
29
28
  include Resultable
30
29
 
31
- def initialize *arguments
30
+ def self.for(**) = new(**)
31
+
32
+ def initialize(**)
32
33
  super
33
34
  freeze
34
35
  end
@@ -37,12 +37,13 @@ module Ghub
37
37
  :twitter_username,
38
38
  :type,
39
39
  :updated_at,
40
- :url,
41
- keyword_init: true
40
+ :url
42
41
  ) do
43
42
  include Resultable
44
43
 
45
- def initialize *arguments
44
+ def self.for(**) = new(**)
45
+
46
+ def initialize(**)
46
47
  super
47
48
  freeze
48
49
  end
@@ -15,17 +15,18 @@ module Ghub
15
15
  :owner,
16
16
  :permissions,
17
17
  :slug,
18
- :updated_at,
19
- keyword_init: true
18
+ :updated_at
20
19
  ) do
21
- def self.for attributes
22
- new attributes.merge(
23
- owner: Owner[attributes[:owner]],
24
- permissions: Permissions::Branch[attributes[:permissions]]
20
+ def self.for(**attributes)
21
+ new(
22
+ **attributes.merge!(
23
+ owner: Owner[**attributes[:owner]],
24
+ permissions: Permissions::Branch[**attributes[:permissions]]
25
+ )
25
26
  )
26
27
  end
27
28
 
28
- def initialize *arguments
29
+ def initialize(**)
29
30
  super
30
31
  freeze
31
32
  end
@@ -3,8 +3,10 @@
3
3
  module Ghub
4
4
  module Models
5
5
  # Defines a boolean link.
6
- BooleanLink = Struct.new :enabled, :url, keyword_init: true do
7
- def initialize *arguments
6
+ BooleanLink = Struct.new :enabled, :url do
7
+ def self.for(**) = new(**)
8
+
9
+ def initialize(**)
8
10
  super
9
11
  freeze
10
12
  end
@@ -3,15 +3,17 @@
3
3
  module Ghub
4
4
  module Models
5
5
  # Defines a branch.
6
- Branch = Struct.new :label, :ref, :repo, :sha, :user, keyword_init: true do
7
- def self.for attributes
8
- new attributes.merge(
9
- user: User[attributes[:user]],
10
- repo: Repository.for(attributes[:repo])
6
+ Branch = Struct.new :label, :ref, :repo, :sha, :user do
7
+ def self.for(**attributes)
8
+ new(
9
+ **attributes.merge!(
10
+ user: User[**attributes[:user]],
11
+ repo: Repository.for(**attributes[:repo])
12
+ )
11
13
  )
12
14
  end
13
15
 
14
- def initialize *arguments
16
+ def initialize(**)
15
17
  super
16
18
  freeze
17
19
  end
@@ -3,12 +3,8 @@
3
3
  module Ghub
4
4
  module Models
5
5
  # Defines a check.
6
- Check = Struct.new(
7
- :context,
8
- :app_id,
9
- keyword_init: true
10
- ) do
11
- def initialize *arguments
6
+ Check = Struct.new :context, :app_id do
7
+ def initialize(**)
12
8
  super
13
9
  freeze
14
10
  end
@@ -9,20 +9,21 @@ module Ghub
9
9
  :teams_url,
10
10
  :url,
11
11
  :users,
12
- :users_url,
13
- keyword_init: true
12
+ :users_url
14
13
  ) do
15
- def self.for attributes
16
- return new unless attributes
14
+ def self.for(**attributes)
15
+ return new if attributes.empty?
17
16
 
18
- new attributes.merge(
19
- apps: attributes[:apps].map { |arguments| Application[arguments] },
20
- teams: attributes[:teams].map { |arguments| Team[arguments] },
21
- users: attributes[:users].map { |arguments| User[arguments] }
17
+ new(
18
+ **attributes.merge!(
19
+ apps: attributes[:apps].map { |arguments| Application[**arguments] },
20
+ teams: attributes[:teams].map { |arguments| Team[**arguments] },
21
+ users: attributes[:users].map { |arguments| User[**arguments] }
22
+ )
22
23
  )
23
24
  end
24
25
 
25
- def initialize *arguments
26
+ def initialize(**)
26
27
  super
27
28
  freeze
28
29
  end
@@ -10,10 +10,9 @@ module Ghub
10
10
  :id,
11
11
  :name,
12
12
  :node_id,
13
- :url,
14
- keyword_init: true
13
+ :url
15
14
  ) do
16
- def initialize *arguments
15
+ def initialize(**)
17
16
  super
18
17
  freeze
19
18
  end
@@ -8,10 +8,9 @@ module Ghub
8
8
  :name,
9
9
  :node_id,
10
10
  :spdx_id,
11
- :url,
12
- keyword_init: true
11
+ :url
13
12
  ) do
14
- def initialize *arguments
13
+ def initialize(**)
15
14
  super
16
15
  freeze
17
16
  end
@@ -3,8 +3,8 @@
3
3
  module Ghub
4
4
  module Models
5
5
  # Defines a link.
6
- Link = Struct.new :href, keyword_init: true do
7
- def initialize *arguments
6
+ Link = Struct.new :href do
7
+ def initialize(**)
8
8
  super
9
9
  freeze
10
10
  end
@@ -11,15 +11,14 @@ module Ghub
11
11
  :review_comments,
12
12
  :review_comment,
13
13
  :commits,
14
- :statuses,
15
- keyword_init: true
14
+ :statuses
16
15
  ) do
17
- def self.for attributes
18
- attributes.reduce({}) { |collection, (key, value)| collection.merge key => Link[value] }
19
- .then { |updated_attributes| new updated_attributes }
16
+ def self.for(**attributes)
17
+ attributes.reduce({}) { |collection, (key, value)| collection.merge key => Link[**value] }
18
+ .then { |updates| new(**updates) }
20
19
  end
21
20
 
22
- def initialize *arguments
21
+ def initialize(**)
23
22
  super
24
23
  freeze
25
24
  end
@@ -15,10 +15,9 @@ module Ghub
15
15
  :members_url,
16
16
  :public_members_url,
17
17
  :avatar_url,
18
- :description,
19
- keyword_init: true
18
+ :description
20
19
  ) do
21
- def initialize *arguments
20
+ def initialize(**)
22
21
  super
23
22
  freeze
24
23
  end
@@ -8,10 +8,9 @@ module Ghub
8
8
  :contents,
9
9
  :issues,
10
10
  :metadata,
11
- :single_file,
12
- keyword_init: true
11
+ :single_file
13
12
  ) do
14
- def initialize *arguments
13
+ def initialize(**)
15
14
  super
16
15
  freeze
17
16
  end
@@ -9,10 +9,9 @@ module Ghub
9
9
  :maintain,
10
10
  :pull,
11
11
  :push,
12
- :triage,
13
- keyword_init: true
12
+ :triage
14
13
  ) do
15
- def initialize *arguments
14
+ def initialize(**)
16
15
  super
17
16
  freeze
18
17
  end
@@ -86,23 +86,24 @@ module Ghub
86
86
  :watchers,
87
87
  :watchers_count,
88
88
  :web_commit_signoff_required,
89
- :weight,
90
- keyword_init: true
89
+ :weight
91
90
  ) do
92
91
  include Resultable
93
92
 
94
- def self.for attributes
95
- new attributes.transform_keys(size: :weight).merge(
96
- license: (License[Hash(attributes[:license])] if attributes.key? :license),
97
- owner: User[attributes[:owner]],
98
- organization: (User[attributes[:organization]] if attributes.key? :organization),
99
- permissions: (
100
- Permissions::Repository[attributes[:permissions]] if attributes.key? :permissions
93
+ def self.for(**attributes)
94
+ new(
95
+ **attributes.transform_keys!(size: :weight).merge(
96
+ license: (License[**Hash(attributes[:license])] if attributes.key? :license),
97
+ owner: User[**attributes[:owner]],
98
+ organization: (User[**attributes[:organization]] if attributes.key? :organization),
99
+ permissions: (
100
+ Permissions::Repository[**attributes[:permissions]] if attributes.key? :permissions
101
+ )
101
102
  )
102
103
  )
103
104
  end
104
105
 
105
- def initialize *arguments
106
+ def initialize(**)
106
107
  super
107
108
  freeze
108
109
  end
@@ -10,20 +10,21 @@ module Ghub
10
10
  :teams_url,
11
11
  :url,
12
12
  :users,
13
- :users_url,
14
- keyword_init: true
13
+ :users_url
15
14
  ) do
16
- def self.for attributes
17
- return new unless attributes
15
+ def self.for(**attributes)
16
+ return new if attributes.empty?
18
17
 
19
- new attributes.merge(
20
- apps: attributes[:apps].map { |arguments| Application[arguments] },
21
- teams: attributes[:teams].map { |arguments| Team[arguments] },
22
- users: attributes[:users].map { |arguments| User[arguments] }
18
+ new(
19
+ **attributes.merge!(
20
+ apps: attributes[:apps].map { |arguments| Application[**arguments] },
21
+ teams: attributes[:teams].map { |arguments| Team[**arguments] },
22
+ users: attributes[:users].map { |arguments| User[**arguments] }
23
+ )
23
24
  )
24
25
  end
25
26
 
26
- def initialize *arguments
27
+ def initialize(**)
27
28
  super
28
29
  freeze
29
30
  end
@@ -8,18 +8,19 @@ module Ghub
8
8
  :require_code_owner_reviews,
9
9
  :required_approving_review_count,
10
10
  :url,
11
- :dismissal_restrictions,
12
- keyword_init: true
11
+ :dismissal_restrictions
13
12
  ) do
14
- def self.for attributes
15
- return new unless attributes
13
+ def self.for(**attributes)
14
+ return new if attributes.empty?
16
15
 
17
- new attributes.merge(
18
- dismissal_restrictions: DismissalRestriction.for(attributes[:dismissal_restrictions])
16
+ new(
17
+ **attributes.merge!(
18
+ dismissal_restrictions: DismissalRestriction.for(**attributes[:dismissal_restrictions])
19
+ )
19
20
  )
20
21
  end
21
22
 
22
- def initialize *arguments
23
+ def initialize(**)
23
24
  super
24
25
  freeze
25
26
  end
@@ -9,14 +9,15 @@ module Ghub
9
9
  :contexts,
10
10
  :contexts_url,
11
11
  :checks,
12
- :enforcement_level,
13
- keyword_init: true
12
+ :enforcement_level
14
13
  ) do
15
- def self.for attributes
16
- new attributes.merge(checks: attributes[:checks].map { |arguments| Check[arguments] })
14
+ def self.for(**attributes)
15
+ new(
16
+ **attributes.merge!(checks: attributes[:checks].map { |arguments| Check[**arguments] })
17
+ )
17
18
  end
18
19
 
19
- def initialize *arguments
20
+ def initialize(**)
20
21
  super
21
22
  freeze
22
23
  end
@@ -15,10 +15,9 @@ module Ghub
15
15
  :privacy,
16
16
  :repositories_url,
17
17
  :slug,
18
- :url,
19
- keyword_init: true
18
+ :url
20
19
  ) do
21
- def initialize *arguments
20
+ def initialize(**)
22
21
  super
23
22
  freeze
24
23
  end
@@ -21,10 +21,11 @@ module Ghub
21
21
  :starred_url,
22
22
  :subscriptions_url,
23
23
  :type,
24
- :url,
25
- keyword_init: true
24
+ :url
26
25
  ) do
27
- def initialize *arguments
26
+ def self.for(**) = new(**)
27
+
28
+ def initialize(**)
28
29
  super
29
30
  freeze
30
31
  end
data/lib/ghub.rb CHANGED
@@ -15,5 +15,7 @@ end
15
15
 
16
16
  # Main namespace.
17
17
  module Ghub
18
- def self.loader(registry = Zeitwerk::Registry) = registry.loader_for __FILE__
18
+ def self.loader registry = Zeitwerk::Registry
19
+ @loader ||= registry.loaders.find { |loader| loader.tag == File.basename(__FILE__, ".rb") }
20
+ end
19
21
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ghub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Brooke Kuhlmann
@@ -35,7 +35,7 @@ cert_chain:
35
35
  3n5C8/6Zh9DYTkpcwPSuIfAga6wf4nXc9m6JAw8AuMLaiWN/r/2s4zJsUHYERJEu
36
36
  gZGm4JqtuSg8pYjPeIJxS960owq+SfuC+jxqmRA54BisFCv/0VOJi7tiJVY=
37
37
  -----END CERTIFICATE-----
38
- date: 2023-10-01 00:00:00.000000000 Z
38
+ date: 2023-11-16 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: dry-container
@@ -99,14 +99,14 @@ dependencies:
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '2.0'
102
+ version: '2.2'
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
107
  - - "~>"
108
108
  - !ruby/object:Gem::Version
109
- version: '2.0'
109
+ version: '2.2'
110
110
  - !ruby/object:Gem::Dependency
111
111
  name: refinements
112
112
  requirement: !ruby/object:Gem::Requirement
@@ -273,16 +273,19 @@ require_paths:
273
273
  - lib
274
274
  required_ruby_version: !ruby/object:Gem::Requirement
275
275
  requirements:
276
- - - "~>"
276
+ - - ">="
277
277
  - !ruby/object:Gem::Version
278
278
  version: '3.2'
279
+ - - "<="
280
+ - !ruby/object:Gem::Version
281
+ version: '3.3'
279
282
  required_rubygems_version: !ruby/object:Gem::Requirement
280
283
  requirements:
281
284
  - - ">="
282
285
  - !ruby/object:Gem::Version
283
286
  version: '0'
284
287
  requirements: []
285
- rubygems_version: 3.4.20
288
+ rubygems_version: 3.4.22
286
289
  signing_key:
287
290
  specification_version: 4
288
291
  summary: A monadic GitHub API client.
metadata.gz.sig CHANGED
Binary file