impression 0.16 → 0.18

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: 5bffd1fd2193a7ece32fa7cfa6b90a709a3fd54ed3f92d9ff93314fd565ba9c2
4
- data.tar.gz: 198b729951f6a0202eb53e6c7703ec7459e22f6bd011de67d408c7258efe6740
3
+ metadata.gz: 21cbdbcabed8fc3f6fb8c84c40845fab6e8b8dfbe3c4d72b99aa22183b1e054e
4
+ data.tar.gz: d1ea4c3d1c57a87e3a77a1ead41c7b9e7e62e36de10554b844e42595e1266966
5
5
  SHA512:
6
- metadata.gz: 9102da1086ce2158a9cd423f6d32bca80f9f2e85f5a64a271c54f373dfba207ad96eec4fa62f5e7dc2ecb5e9d3e16758f2c90885ae02d030219206340e2fddfd
7
- data.tar.gz: 95b007b04f7937763ab5f5f4c827cf48b4670afc2e91ae1caf3bdbba09288ce90251fb4f501f46d201412df4972452eebf7b58f9893c591c97b7fa8ba60317f7
6
+ metadata.gz: 1452a646d9707f65ae1d3ae23dfb41718de01b5483f141db83f515a260a34409a4fec8e5f36ddc8ee8e14eb5761142fc61e02d3cee995f76922c8652b1a37831
7
+ data.tar.gz: 952cbbe582f0f6426a81404fbcab10629eaa4f48be477ddce5af5f0e1470ee148f47b84f2ed95a5f428568d292923c6e57abd1bbe672a786ef47e98e70ddfb8b
@@ -8,7 +8,7 @@ jobs:
8
8
  fail-fast: false
9
9
  matrix:
10
10
  os: [ubuntu-latest, macos-latest]
11
- ruby: ['2.7', '3.0', '3.1', 'head']
11
+ ruby: ['3.2', '3.3', '3.4']
12
12
 
13
13
  name: >-
14
14
  ${{matrix.os}}, ${{matrix.ruby}}
data/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## 0.18 2025-06-15
2
+
3
+ - Fix behaviour of App resource for not found paths
4
+
5
+ ## 0.17 2025-01-09
6
+
7
+ - Update deps, cleanup tests
8
+
1
9
  ## 0.14 2024-12-11
2
10
 
3
11
  - Remove Polyphony, Tipi deps
data/Gemfile.lock CHANGED
@@ -1,40 +1,40 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- impression (0.16)
5
- papercraft (~> 1.3)
6
- qeweney (~> 0.20)
4
+ impression (0.17)
5
+ papercraft (~> 1.4)
6
+ qeweney (~> 0.21)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
11
  docile (1.4.1)
12
12
  escape_utils (1.3.0)
13
- json (2.9.0)
14
13
  kramdown (2.5.1)
15
14
  rexml (>= 3.3.9)
16
15
  kramdown-parser-gfm (1.1.0)
17
16
  kramdown (~> 2.0)
18
- minitest (5.11.3)
17
+ minitest (5.25.5)
19
18
  modulation (1.2)
20
- papercraft (1.3)
19
+ papercraft (1.4)
21
20
  escape_utils (~> 1.3.0)
22
21
  kramdown (~> 2.5.1)
23
22
  kramdown-parser-gfm (~> 1.1.0)
24
23
  rouge (~> 4.5.1)
25
- sirop (~> 0.4)
24
+ sirop (~> 0.5)
26
25
  prism (0.27.0)
27
- qeweney (0.20)
28
- escape_utils (~> 1.3.0)
29
- rake (12.3.3)
30
- rexml (3.4.0)
31
- rouge (4.5.1)
32
- simplecov (0.17.1)
26
+ qeweney (0.21)
27
+ escape_utils (= 1.3.0)
28
+ rake (13.2.1)
29
+ rexml (3.4.1)
30
+ rouge (4.5.2)
31
+ simplecov (0.22.0)
33
32
  docile (~> 1.1)
34
- json (>= 1.8, < 3)
35
- simplecov-html (~> 0.10.0)
36
- simplecov-html (0.10.2)
37
- sirop (0.4)
33
+ simplecov-html (~> 0.11)
34
+ simplecov_json_formatter (~> 0.1)
35
+ simplecov-html (0.13.1)
36
+ simplecov_json_formatter (0.1.4)
37
+ sirop (0.5)
38
38
  prism (~> 0.27.0)
39
39
 
40
40
  PLATFORMS
@@ -43,10 +43,10 @@ PLATFORMS
43
43
 
44
44
  DEPENDENCIES
45
45
  impression!
46
- minitest (~> 5.11.3)
47
- modulation (~> 1.1)
48
- rake (~> 12.3.3)
49
- simplecov (~> 0.17.1)
46
+ minitest (~> 5.25.4)
47
+ modulation (~> 1.2)
48
+ rake (~> 13.2.1)
49
+ simplecov (~> 0.22.0)
50
50
 
51
51
  BUNDLED WITH
52
52
  2.5.22
data/impression.gemspec CHANGED
@@ -18,15 +18,13 @@ Gem::Specification.new do |s|
18
18
  s.rdoc_options = ["--title", "impression", "--main", "README.md"]
19
19
  s.extra_rdoc_files = ["README.md"]
20
20
  s.require_paths = ["lib"]
21
- s.required_ruby_version = '>= 2.6'
21
+ s.required_ruby_version = '>= 3.3'
22
22
 
23
- # s.add_runtime_dependency 'polyphony', '~>0.93'
24
- # s.add_runtime_dependency 'tipi', '~>0.52'
25
- s.add_runtime_dependency 'qeweney', '~>0.20'
26
- s.add_runtime_dependency 'papercraft', '~>1.3'
27
-
28
- s.add_development_dependency 'modulation', '~>1.1'
29
- s.add_development_dependency 'rake', '~>12.3.3'
30
- s.add_development_dependency 'minitest', '~>5.11.3'
31
- s.add_development_dependency 'simplecov', '~>0.17.1'
23
+ s.add_runtime_dependency 'qeweney', '~>0.21'
24
+ s.add_runtime_dependency 'papercraft', '~>1.4'
25
+
26
+ s.add_development_dependency 'modulation', '~>1.2'
27
+ s.add_development_dependency 'rake', '~>13.2.1'
28
+ s.add_development_dependency 'minitest', '~>5.25.4'
29
+ s.add_development_dependency 'simplecov', '~>0.22.0'
32
30
  end
@@ -145,12 +145,7 @@ module Impression
145
145
  def render_from_path_info(req, path_info)
146
146
  case (kind = path_info[:kind])
147
147
  when :not_found
148
- mod_path_info = up_tree_resource_module_path_info(req, path_info)
149
- if mod_path_info
150
- render_module(req, mod_path_info)
151
- else
152
- req.respond(nil, ':status' => Qeweney::Status::NOT_FOUND)
153
- end
148
+ req.respond(nil, ':status' => Qeweney::Status::NOT_FOUND)
154
149
  when :module
155
150
  render_module(req, path_info)
156
151
  when :markdown
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'fileutils'
4
- # require 'tipi'
5
4
  require_relative './resource'
6
5
 
7
6
  module Impression
@@ -14,7 +13,7 @@ module Impression
14
13
  # We pass nil as the block, otherwise the block will pass to
15
14
  # Resource#initialize, which will cause #call to be overidden.
16
15
  super(**props, &nil)
17
- @handler = Tipi::RackAdapter.run(app || block)
16
+ @handler = RackAdapter.run(app || block)
18
17
  end
19
18
 
20
19
  def call(req)
@@ -24,4 +23,35 @@ module Impression
24
23
  @handler.(req)
25
24
  end
26
25
  end
26
+
27
+ module RackAdapter
28
+ class << self
29
+ def run(app)
30
+ ->(req) { respond(req, app.(env(req))) }
31
+ end
32
+
33
+ def load(path)
34
+ src = IO.read(path)
35
+ instance_eval(src, path, 1)
36
+ end
37
+
38
+ def env(request)
39
+ Qeweney.rack_env_from_request(request)
40
+ end
41
+
42
+ def respond(request, (status_code, headers, body))
43
+ headers[':status'] = status_code.to_s
44
+
45
+ content =
46
+ if body.respond_to?(:to_path)
47
+ File.open(body.to_path, 'rb') { |f| f.read }
48
+ else
49
+ body.first
50
+ end
51
+
52
+ request.respond(content, headers)
53
+ end
54
+ end
55
+ end
56
+
27
57
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Impression
4
- VERSION = '0.16'
4
+ VERSION = '0.18'
5
5
  end
data/test/helper.rb CHANGED
@@ -4,12 +4,12 @@ require 'bundler/setup'
4
4
  require_relative './coverage' if ENV['COVERAGE']
5
5
  require 'minitest/autorun'
6
6
  require 'impression'
7
- require 'qeweney/test_adapter'
7
+ require 'qeweney/mock_adapter'
8
8
  require 'modulation'
9
9
 
10
10
  module Kernel
11
11
  def mock_req(**args)
12
- Qeweney::TestAdapter.mock(**args)
12
+ Qeweney::MockAdapter.mock(**args)
13
13
  end
14
14
 
15
15
  def capture_exception
@@ -46,7 +46,7 @@ module Minitest::Assertions
46
46
  msg = message(msg) { "Expected HTTP status 200 OK, but instead got #{status}" }
47
47
  assert_equal 200, status, msg
48
48
 
49
- actual = req.response_body
49
+ actual = req.adapter.body
50
50
  assert_equal exp_body.gsub("\n", ''), actual&.gsub("\n", '')
51
51
 
52
52
  return unless exp_content_type
@@ -83,10 +83,6 @@ class Qeweney::Request
83
83
  adapter.headers
84
84
  end
85
85
 
86
- def response_body
87
- adapter.body
88
- end
89
-
90
86
  def response_status
91
87
  adapter.status
92
88
  end
data/test/test_app.rb CHANGED
@@ -1,9 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'helper'
4
- require 'qeweney/test_adapter'
5
4
 
6
- class AppTest < MiniTest::Test
5
+ class AppTest < Minitest::Test
7
6
  APP_PATH = File.join(__dir__, 'app')
8
7
 
9
8
  def setup
@@ -323,9 +322,9 @@ class AppTest < MiniTest::Test
323
322
  @app.route_and_call(req)
324
323
  assert_response 'Hello, world!', :text, req
325
324
 
326
- req = mock_req(':method' => 'GET', ':path' => '/resources/recurse/resources/greeter?name=foo')
327
- @app.route_and_call(req)
328
- assert_response 'Hello, foo!', :text, req
325
+ # req = mock_req(':method' => 'GET', ':path' => '/resources/recurse/resources/greeter?name=foo')
326
+ # @app.route_and_call(req)
327
+ # assert_response 'Hello, foo!', :text, req
329
328
  end
330
329
 
331
330
  def test_recursive_resource_loading_on_non_root_app
@@ -339,9 +338,9 @@ class AppTest < MiniTest::Test
339
338
  app.route_and_call(req)
340
339
  assert_response 'Hello, world!', :text, req
341
340
 
342
- req = mock_req(':method' => 'GET', ':path' => '/foo/bar/resources/recurse/resources/greeter?name=foo')
343
- app.route_and_call(req)
344
- assert_response 'Hello, foo!', :text, req
341
+ # req = mock_req(':method' => 'GET', ':path' => '/foo/bar/resources/recurse/resources/greeter?name=foo')
342
+ # app.route_and_call(req)
343
+ # assert_response 'Hello, foo!', :text, req
345
344
 
346
345
  # req = mock_req(':method' => 'GET', ':path' => '/foo/bar/resources/recurse/bar')
347
346
  # @app.route_and_call(req)
@@ -349,7 +348,7 @@ class AppTest < MiniTest::Test
349
348
  end
350
349
  end
351
350
 
352
- class AbstractAppTest < MiniTest::Test
351
+ class AbstractAppTest < Minitest::Test
353
352
  def test_abstract_app_default_response
354
353
  app = Impression::App.new(path: '/')
355
354
  req = mock_req(':method' => 'GET', ':path' => '/')
@@ -1,9 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require_relative 'helper'
4
- require 'qeweney/test_adapter'
5
4
 
6
- class FileTreeTest < MiniTest::Test
5
+ class FileTreeTest < Minitest::Test
7
6
  STATIC_PATH = File.join(__dir__, 'static')
8
7
 
9
8
  def setup
@@ -166,7 +165,7 @@ class FileTreeTest < MiniTest::Test
166
165
  req = mock_req(':method' => 'GET', ':path' => '/foobar')
167
166
  @file_tree.route_and_call(req)
168
167
  assert_equal Qeweney::Status::OK, req.response_status
169
- assert_equal 'foobar', req.response_body
168
+ assert_equal 'foobar', req.adapter.body
170
169
  assert_equal 'bar', req.response_headers['Foo']
171
170
  end
172
171
  end
@@ -3,7 +3,7 @@
3
3
  require_relative 'helper'
4
4
  require 'fileutils'
5
5
 
6
- # class FileWatcherTest < MiniTest::Test
6
+ # class FileWatcherTest < Minitest::Test
7
7
  # def setup
8
8
  # @tmp_path = File.expand_path('../tmp', __dir__)
9
9
  # FileUtils.mkdir(@tmp_path)
@@ -2,7 +2,7 @@
2
2
 
3
3
  require_relative 'helper'
4
4
 
5
- class ImpressionModuleTest < MiniTest::Test
5
+ class ImpressionModuleTest < Minitest::Test
6
6
  def test_resource_method
7
7
  r1 = Impression.resource do |req|
8
8
  req.respond('foobar', ':status' => Qeweney::Status::TEAPOT)
@@ -10,7 +10,7 @@ class ImpressionModuleTest < MiniTest::Test
10
10
 
11
11
  req = mock_req(':method' => 'GET', ':path' => '/')
12
12
  r1.route_and_call(req)
13
- assert_equal 'foobar', req.response_body
13
+ assert_equal 'foobar', req.adapter.body
14
14
  assert_equal Qeweney::Status::TEAPOT, req.response_status
15
15
  end
16
16
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  require_relative 'helper'
4
4
 
5
- class RackAppTest < MiniTest::Test
5
+ class RackAppTest < Minitest::Test
6
6
  def test_basic_rack_app
7
7
  app = Impression.rack_app(path: '/etc/rack') { |env|
8
8
  [
@@ -19,7 +19,7 @@ class RackAppTest < MiniTest::Test
19
19
  app.route_and_call(req)
20
20
  assert_equal '200', req.response_status
21
21
  assert_equal 'text/plain', req.response_headers['Content-Type']
22
- assert_equal 'Hello, world!', req.response_body
22
+ assert_equal 'Hello, world!', req.adapter.body
23
23
  end
24
24
 
25
25
  def test_path_rewriting
@@ -29,7 +29,7 @@ class RackAppTest < MiniTest::Test
29
29
 
30
30
  req = mock_req(':method' => 'GET', ':path' => '/foo/bar')
31
31
  app.route_and_call(req)
32
- assert_equal 'path: /foo/bar', req.response_body
32
+ assert_equal 'path: /foo/bar', req.adapter.body
33
33
 
34
34
  ###
35
35
 
@@ -39,10 +39,10 @@ class RackAppTest < MiniTest::Test
39
39
 
40
40
  req = mock_req(':method' => 'GET', ':path' => '/etc/rack')
41
41
  app.route_and_call(req)
42
- assert_equal 'path: /', req.response_body
42
+ assert_equal 'path: /', req.adapter.body
43
43
 
44
44
  req = mock_req(':method' => 'GET', ':path' => '/etc/rack/foo/bar')
45
45
  app.route_and_call(req)
46
- assert_equal 'path: /foo/bar', req.response_body
46
+ assert_equal 'path: /foo/bar', req.adapter.body
47
47
  end
48
48
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require_relative 'helper'
4
4
 
5
- class ResourceTest < MiniTest::Test
5
+ class ResourceTest < Minitest::Test
6
6
  def test_absolute_path
7
7
  r1 = Impression::Resource.new(path: 'foo')
8
8
  assert_equal '/foo', r1.absolute_path
@@ -84,11 +84,11 @@ class ResourceTest < MiniTest::Test
84
84
 
85
85
  req = mock_req(':method' => 'GET', ':path' => '/foo/bar')
86
86
  r1.route_and_call(req)
87
- assert_equal '/foo/bar', req.response_body
87
+ assert_equal '/foo/bar', req.adapter.body
88
88
 
89
89
  req = mock_req(':method' => 'GET', ':path' => '/foo/baz')
90
90
  r1.route_and_call(req)
91
- assert_equal '/foo/baz', req.response_body
91
+ assert_equal '/foo/baz', req.adapter.body
92
92
 
93
93
  req = mock_req(':method' => 'GET', ':path' => '/foo/bbb')
94
94
  assert_equal r1, r1.route(req)
@@ -104,27 +104,27 @@ class ResourceTest < MiniTest::Test
104
104
 
105
105
  req = mock_req(':method' => 'GET', ':path' => '/foo')
106
106
  r1.route_and_call(req)
107
- assert_equal '/foo /', req.response_body
107
+ assert_equal '/foo /', req.adapter.body
108
108
 
109
109
  req = mock_req(':method' => 'GET', ':path' => '/foo/zzz')
110
110
  r1.route_and_call(req)
111
- assert_equal '/foo /zzz', req.response_body
111
+ assert_equal '/foo /zzz', req.adapter.body
112
112
 
113
113
  req = mock_req(':method' => 'GET', ':path' => '/foo/bar')
114
114
  r1.route_and_call(req)
115
- assert_equal '/foo/bar /', req.response_body
115
+ assert_equal '/foo/bar /', req.adapter.body
116
116
 
117
117
  req = mock_req(':method' => 'GET', ':path' => '/foo/bar/zzz')
118
118
  r1.route_and_call(req)
119
- assert_equal '/foo/bar /zzz', req.response_body
119
+ assert_equal '/foo/bar /zzz', req.adapter.body
120
120
 
121
121
  req = mock_req(':method' => 'GET', ':path' => '/foo/baz')
122
122
  r1.route_and_call(req)
123
- assert_equal '/foo/baz /', req.response_body
123
+ assert_equal '/foo/baz /', req.adapter.body
124
124
 
125
125
  req = mock_req(':method' => 'GET', ':path' => '/foo/baz/xxx/yyy')
126
126
  r1.route_and_call(req)
127
- assert_equal '/foo/baz /xxx/yyy', req.response_body
127
+ assert_equal '/foo/baz /xxx/yyy', req.adapter.body
128
128
  end
129
129
 
130
130
  class CallableResource < Impression::Resource
@@ -144,7 +144,7 @@ class ResourceTest < MiniTest::Test
144
144
 
145
145
  req = mock_req(':method' => 'GET', ':path' => '/foo/bar')
146
146
  r1.route_and_call(req)
147
- assert_equal 'hi', req.response_body
147
+ assert_equal 'hi', req.adapter.body
148
148
  end
149
149
 
150
150
  class CallableRouteResource < Impression::Resource
@@ -164,7 +164,7 @@ class ResourceTest < MiniTest::Test
164
164
 
165
165
  req = mock_req(':method' => 'GET', ':path' => '/foo/bar')
166
166
  r1.route_and_call(req)
167
- assert_equal 'bye', req.response_body
167
+ assert_equal 'bye', req.adapter.body
168
168
  end
169
169
 
170
170
  def test_text_response
@@ -185,17 +185,17 @@ class ResourceTest < MiniTest::Test
185
185
 
186
186
  req = mock_req(':method' => 'GET', ':path' => '/text')
187
187
  r.route_and_call(req)
188
- assert_equal 'foo', req.response_body
188
+ assert_equal 'foo', req.adapter.body
189
189
  assert_equal 'text/plain', req.response_content_type
190
190
 
191
191
  req = mock_req(':method' => 'GET', ':path' => '/html')
192
192
  r.route_and_call(req)
193
- assert_equal 'bar', req.response_body
193
+ assert_equal 'bar', req.adapter.body
194
194
  assert_equal 'text/html', req.response_content_type
195
195
 
196
196
  req = mock_req(':method' => 'GET', ':path' => '/json')
197
197
  r.route_and_call(req)
198
- assert_equal '{"baz":123}', req.response_body
198
+ assert_equal '{"baz":123}', req.adapter.body
199
199
  assert_equal 'application/json', req.response_content_type
200
200
  end
201
201
 
@@ -206,7 +206,7 @@ class ResourceTest < MiniTest::Test
206
206
 
207
207
  req = mock_req(':method' => 'GET', ':path' => '/')
208
208
  r1.route_and_call(req)
209
- assert_equal 'foobar', req.response_body
209
+ assert_equal 'foobar', req.adapter.body
210
210
  assert_equal Qeweney::Status::TEAPOT, req.response_status
211
211
  end
212
212
  end
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: impression
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.16'
4
+ version: '0.18'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2024-12-16 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: qeweney
@@ -16,85 +15,84 @@ dependencies:
16
15
  requirements:
17
16
  - - "~>"
18
17
  - !ruby/object:Gem::Version
19
- version: '0.20'
18
+ version: '0.21'
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
23
  - - "~>"
25
24
  - !ruby/object:Gem::Version
26
- version: '0.20'
25
+ version: '0.21'
27
26
  - !ruby/object:Gem::Dependency
28
27
  name: papercraft
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '1.3'
32
+ version: '1.4'
34
33
  type: :runtime
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '1.3'
39
+ version: '1.4'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: modulation
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '1.1'
46
+ version: '1.2'
48
47
  type: :development
49
48
  prerelease: false
50
49
  version_requirements: !ruby/object:Gem::Requirement
51
50
  requirements:
52
51
  - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: '1.1'
53
+ version: '1.2'
55
54
  - !ruby/object:Gem::Dependency
56
55
  name: rake
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - "~>"
60
59
  - !ruby/object:Gem::Version
61
- version: 12.3.3
60
+ version: 13.2.1
62
61
  type: :development
63
62
  prerelease: false
64
63
  version_requirements: !ruby/object:Gem::Requirement
65
64
  requirements:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
- version: 12.3.3
67
+ version: 13.2.1
69
68
  - !ruby/object:Gem::Dependency
70
69
  name: minitest
71
70
  requirement: !ruby/object:Gem::Requirement
72
71
  requirements:
73
72
  - - "~>"
74
73
  - !ruby/object:Gem::Version
75
- version: 5.11.3
74
+ version: 5.25.4
76
75
  type: :development
77
76
  prerelease: false
78
77
  version_requirements: !ruby/object:Gem::Requirement
79
78
  requirements:
80
79
  - - "~>"
81
80
  - !ruby/object:Gem::Version
82
- version: 5.11.3
81
+ version: 5.25.4
83
82
  - !ruby/object:Gem::Dependency
84
83
  name: simplecov
85
84
  requirement: !ruby/object:Gem::Requirement
86
85
  requirements:
87
86
  - - "~>"
88
87
  - !ruby/object:Gem::Version
89
- version: 0.17.1
88
+ version: 0.22.0
90
89
  type: :development
91
90
  prerelease: false
92
91
  version_requirements: !ruby/object:Gem::Requirement
93
92
  requirements:
94
93
  - - "~>"
95
94
  - !ruby/object:Gem::Version
96
- version: 0.17.1
97
- description:
95
+ version: 0.22.0
98
96
  email: sharon@noteflakes.com
99
97
  executables: []
100
98
  extensions: []
@@ -161,7 +159,6 @@ metadata:
161
159
  documentation_uri: https://www.rubydoc.info/gems/impression
162
160
  homepage_uri: https://github.com/digital-fabric/impression
163
161
  changelog_uri: https://github.com/digital-fabric/impression/blob/master/CHANGELOG.md
164
- post_install_message:
165
162
  rdoc_options:
166
163
  - "--title"
167
164
  - impression
@@ -173,15 +170,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
173
170
  requirements:
174
171
  - - ">="
175
172
  - !ruby/object:Gem::Version
176
- version: '2.6'
173
+ version: '3.3'
177
174
  required_rubygems_version: !ruby/object:Gem::Requirement
178
175
  requirements:
179
176
  - - ">="
180
177
  - !ruby/object:Gem::Version
181
178
  version: '0'
182
179
  requirements: []
183
- rubygems_version: 3.5.16
184
- signing_key:
180
+ rubygems_version: 3.6.8
185
181
  specification_version: 4
186
182
  summary: Impression - a modern web framework for Ruby
187
183
  test_files: []