openapi_blocks 0.3.0 → 0.3.1

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: c466c6845f12b5170db8082aab7e11146666fd06776e7026f29fb85ab2a9beb2
4
- data.tar.gz: 99c38fe1681484456900b72ce75def577a248865d885abd21bf0d4b462ed27ad
3
+ metadata.gz: a45ac9389f6202430fb9c21ded74a327d221a9925e5b6a9a3622ea712a216290
4
+ data.tar.gz: bc02bd7c04f7ab2e2c6981b23ca317c500b070bfddb4120808d1b801d300c679
5
5
  SHA512:
6
- metadata.gz: 8f016873a16d2066461ae29891de560c5c4bd5867ec26a00fb99dbc9c4ca2c73887f9aefd64e272a5ed2c111f2a29b71756809ba19beba3fb8e3dde4c5bd7bb2
7
- data.tar.gz: 70a4deb4c047856082593ada3c2c4476c5a5caf3aad08126d3505e35a233e8d12cc48ea49a95edfdc5ee47c70b870cfc0f87506f06a1e4dc31b1683e1f1df161
6
+ metadata.gz: 28ab89af18ab105d20c37ea9882239925d2afba4a8f644fb038d1d93c444fc29b94f4f117429a36e0d6442116fe984c48bafbb37fbef0ebd4131a994e2d04141
7
+ data.tar.gz: a679b294432e62db66c3e3e774d042319aaf4d9371a3e788bcbcedecc3f71906a7b924b04090196c79a608a177a245fb12f545ad272307882e3d3ed459079f67
data/CHANGELOG.md CHANGED
@@ -7,6 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.3.1] - 2026-06-02
11
+
12
+ ### Changed
13
+ - `OpenapiBlocks::Controller` now uses `controller` to specifies exact controller
14
+
10
15
  ## [0.3.0] - 2026-06-01
11
16
 
12
17
  ### Added
data/README.md CHANGED
@@ -150,6 +150,7 @@ end
150
150
  # app/openapi/user_openapi.rb
151
151
  class UserOpenapi < OpenapiBlocks::Controller
152
152
  resource UserResource
153
+ controller UsersController
153
154
 
154
155
  tags "Users"
155
156
 
data/README.pt-BR.md CHANGED
@@ -161,6 +161,7 @@ end
161
161
  # app/openapi/user_openapi.rb
162
162
  class UserOpenapi < OpenapiBlocks::Controller
163
163
  resource UserResource
164
+ controller UsersController
164
165
 
165
166
  tags "Users"
166
167
 
@@ -3,12 +3,16 @@
3
3
  module OpenapiBlocks
4
4
  class Controller # rubocop:disable Style/Documentation
5
5
  class << self
6
- attr_reader :_resource, :_operations, :_tags
6
+ attr_reader :_resource, :_operations, :_tags, :_controller_class
7
7
 
8
8
  def resource(klass)
9
9
  @_resource = klass
10
10
  end
11
11
 
12
+ def controller(klass)
13
+ @_controller_class = klass
14
+ end
15
+
12
16
  def model
13
17
  @_resource&.model
14
18
  end
@@ -180,7 +180,22 @@ module OpenapiBlocks
180
180
  openapi_name = "#{operation.schema_name}Openapi"
181
181
  Object.const_get(openapi_name)
182
182
  rescue NameError
183
- nil
183
+ openapi_classes.find do |klass|
184
+ klass.respond_to?(:_controller_class) && klass._controller_class.present? &&
185
+ controller_name_for(klass._controller_class) == operation.controller
186
+ end
187
+ end
188
+
189
+ def openapi_classes
190
+ ObjectSpace.each_object(Class).select do |klass|
191
+ name = Module.instance_method(:name).bind_call(klass)
192
+ name&.end_with?("Openapi") &&
193
+ (klass < OpenapiBlocks::Base || klass < OpenapiBlocks::Controller)
194
+ end
195
+ end
196
+
197
+ def controller_name_for(controller_class)
198
+ controller_class.to_s.delete_suffix("Controller").underscore
184
199
  end
185
200
  end
186
201
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module OpenapiBlocks
4
- VERSION = "0.3.0"
4
+ VERSION = "0.3.1"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openapi_blocks
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caio Santos