chickadeex 7.3.0 → 7.4.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: 85540edc5bc2f6ac410e1309b996747f1156c13ab59f9bde6cf96c1ce28945e0
4
- data.tar.gz: bca0dc8e4ef9abf0760d307352d2262534b7da9a3ddfd21876807899935ea6f5
3
+ metadata.gz: d51040ae985e4fb4c8a74844cb752b3d866d770d51514aa9c10e6e1526359c8d
4
+ data.tar.gz: 81322d83fa1757cd2c2912349b437c152b54172937da5fb49cc62df9fc6d5f2b
5
5
  SHA512:
6
- metadata.gz: 1c3eadb2109105e51f72839e837f6eaf011653a15232c35a9262b19c5877bbe4745f87daa4e436a2d931194cac50c134026b643851326c40c9c01f0066d61320
7
- data.tar.gz: 3d1a3b0b7b6844ec1e112acbe2fdb1a97530b0f9100aa7e22d04c15d8f63017989d31bf231af5c2731a7128595d401591d4cdd826b48ebe59e908fb87ba88f40
6
+ metadata.gz: a04e02682f6eb8ff7f26d86749f6155f8ebf3d3e6fd0bb9c768cfa04adb669944126201240c83597607f5018a470956b97bcd044fa338d589c7c0bba46e454df
7
+ data.tar.gz: 24cf37ed42b2ef97d11cdc720ac7cefe12140afa8c7d923011d107fbc4a3cca5b78c61d1c7b525195b760ed4b644ac6e1779caaedc920f8fe334ccee44c40ec3
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- ruby-2.6.6
1
+ ruby-3.1.3p185
@@ -4,6 +4,7 @@ require "rack/request"
4
4
  require "rack/response"
5
5
  require "rack/builder"
6
6
 
7
+
7
8
  module Chickadee
8
9
  class Application
9
10
  def initialize(request: Rack::Request, response: Rack::Response, builder: Rack::Builder, container: Container)
@@ -15,17 +16,17 @@ module Chickadee
15
16
  @register_cache = []
16
17
  end
17
18
 
18
- def register(*args, &block)
19
- @register_cache << [args, block]
19
+ def register(*args, **kwargs, &block)
20
+ @register_cache << [args, kwargs, block]
20
21
  end
21
22
 
22
- def use(*args, &block)
23
- @use_cache << [args, block]
23
+ def use(*args, **kwargs, &block)
24
+ @use_cache << [args, kwargs, block]
24
25
  end
25
26
 
26
27
  def service(name)
27
28
  builder = @builder_class.new
28
- @use_cache.each { |use| builder.use(*use[0], &use[1]) }
29
+ @use_cache.each { |use| builder.use(*use[0], **use[1], &use[2]) }
29
30
  builder.run(service_app(name))
30
31
  builder
31
32
  end
@@ -37,7 +38,7 @@ module Chickadee
37
38
  request = @request_class.new(env)
38
39
  response = @response_class.new
39
40
  container = @container_class.new
40
- @register_cache.each{ |r| container.register(*r[0], &r[1]) }
41
+ @register_cache.each{ |r| container.register(*r[0], **r[1], &r[2]) }
41
42
  container.resolve(name).call(request, response)
42
43
  end
43
44
  end
@@ -1,3 +1,3 @@
1
1
  module Chickadee
2
- VERSION = "7.3.0"
2
+ VERSION = "7.4.0"
3
3
  end
@@ -2,6 +2,18 @@ require "minitest"
2
2
  require "minitest/autorun"
3
3
  require "chickadee/application"
4
4
 
5
+ class TestMiddleware
6
+ def initialize(app, strategies: {}, message: "hello")
7
+ @app = app
8
+ @strategies = strategies
9
+ @message = message
10
+ end
11
+
12
+ def call(env)
13
+ @app.call(env)
14
+ end
15
+ end
16
+
5
17
  describe Chickadee::Application do
6
18
  describe "service" do
7
19
  it "returns callable object" do
@@ -15,4 +27,18 @@ describe Chickadee::Application do
15
27
  _(res).must_be_instance_of(Rack::Response)
16
28
  end
17
29
  end
30
+
31
+ describe "use" do
32
+ it "correctly delegates middleware arguments using ruby 3 args and kwargs" do
33
+ env = {}
34
+ service = Proc.new{ |req, res| [req, res] }
35
+ application = Chickadee::Application.new
36
+ application.use(TestMiddleware, :strategies => {:a => "a"})
37
+ application.register(:my_service){ service }
38
+ obj = application.service(:my_service)
39
+ req, res = obj.call(env)
40
+ _(req).must_be_instance_of(Rack::Request)
41
+ _(res).must_be_instance_of(Rack::Response)
42
+ end
43
+ end
18
44
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chickadeex
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.3.0
4
+ version: 7.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Erik Lott
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-03-07 00:00:00.000000000 Z
11
+ date: 2023-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: iocx