utopia 2.28.0 → 2.29.0

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: 120bb11cd46d779a0e8bdf7f5a70f07c4dde752524b3f74c8a06b7fdeb5c7bbc
4
- data.tar.gz: 8620b93060f672177388dce2d8fa3d4c9ea817b3abd6e50b00a9f01b255a340c
3
+ metadata.gz: 0d937ad3119c430d7176a16586dfecf3ab19f0cb8d2d70c69f50c18a360b8c37
4
+ data.tar.gz: a147415518db0cef9228839be5a175244dd796691ede91018c7db8027d123611
5
5
  SHA512:
6
- metadata.gz: 80cf5f92c1dd4eb2aed90db86edecac2b1036e5138054302a2d41ba73b57105f69dc60bd9efa8fef84b78849399eee672c5b3f4e4bbed15e40573a466db979ed
7
- data.tar.gz: 2d39940da4b8ae7719e72363a4bfb9466f013d78210687e2bfdafabc84d2534016cb945b8bee060c7c084d25738cdade2b2e85a32fc2ff12611256eb2b42b5e5
6
+ metadata.gz: b519b2fa1b49640fc564de7f8e500e52cf78d469b7989e6a6f697f206f3cdd2f73693db8ea217f15e56aa5811e5062107105bfbc301fbfef4cb1fe64f17229fa
7
+ data.tar.gz: 950946fe97760b4763288515a0fb3158f091b0059431fd210fcfc99359d399bed0fe9e9f2a6e73863076d9f5ad000783a405135724c612dc029feef9bef1a4a3
checksums.yaml.gz.sig CHANGED
Binary file
data/lib/utopia/static.rb CHANGED
@@ -57,6 +57,22 @@ module Utopia
57
57
  ETAG = "ETag".freeze
58
58
  ACCEPT_RANGES = "Accept-Ranges".freeze
59
59
 
60
+ def response_headers_for(file, content_type)
61
+ if @cache_control.respond_to?(:call)
62
+ cache_control = @cache_control.call(file)
63
+ else
64
+ cache_control = @cache_control
65
+ end
66
+
67
+ {
68
+ LAST_MODIFIED => file.mtime_date,
69
+ CONTENT_TYPE => content_type,
70
+ CACHE_CONTROL => cache_control,
71
+ ETAG => file.etag,
72
+ ACCEPT_RANGES => "bytes"
73
+ }
74
+ end
75
+
60
76
  def respond(env, path_info, extension)
61
77
  path = Path[path_info].simplify
62
78
 
@@ -65,13 +81,7 @@ module Utopia
65
81
  end
66
82
 
67
83
  if file = fetch_file(path)
68
- response_headers = {
69
- LAST_MODIFIED => file.mtime_date,
70
- CONTENT_TYPE => @extensions[extension],
71
- CACHE_CONTROL => @cache_control,
72
- ETAG => file.etag,
73
- ACCEPT_RANGES => "bytes"
74
- }
84
+ response_headers = self.response_headers_for(file, @extensions[extension])
75
85
 
76
86
  if file.modified?(env)
77
87
  return file.serve(env, response_headers)
@@ -4,5 +4,5 @@
4
4
  # Copyright, 2009-2024, by Samuel Williams.
5
5
 
6
6
  module Utopia
7
- VERSION = "2.28.0"
7
+ VERSION = "2.29.0"
8
8
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: utopia
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.28.0
4
+ version: 2.29.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
metadata.gz.sig CHANGED
Binary file