qeweney 0.7.4 → 0.7.5

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: a7beaa70b4d37af5b9bb46aa06bcd78e6d9353eada5715e28d22bc8b5fac61a4
4
- data.tar.gz: 030c6f1fb05fde6ae12c2bb61844c98b9e821b4f7e21f1e7d51fa934814bc3b1
3
+ metadata.gz: c4a3ab1651dedfc78d9d35aa048db2d77e3eb8873d2cbd81d2944746b07ecee8
4
+ data.tar.gz: f75a0a000b4c1f690885deb9b163baf9ead6d285ab2c58366821c26e995342d4
5
5
  SHA512:
6
- metadata.gz: 82b3104f93f3ac826f2c4319fb4c9c324efbb490983af4b8035f402fcb04c13f8f8f28dd2443764dcff26e9d7e33f0eb071c3ec0005acefd4fe27cbd13d314e4
7
- data.tar.gz: 9629ed95b4b7397fc8c15ef1b10b8948d31fc047e913c5aab9b7450eaa4ff31cbf7dde4b027870757eb02c0d72e00d8f766c57871aca9fc6948a75ed90adb769
6
+ metadata.gz: e6aa575224a992f928fd42bec42979798e6656841eb676ca43996776ede7e24b303982a69376f735be0a5ec2ce02ced79b573a10353cd5b5d7097e168f4ce625
7
+ data.tar.gz: 3870128bb83a47be1fee088bd128e8701098b92f301cc515e863da462001ea65af51018ab3e1ae0e9c2dfd7250fad310690917d47fa2afa8b3fd88c5b2cbb381
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.7.5 2021-03-08
2
+
3
+ - Set content-type header in
4
+
1
5
  ## 0.7.4 2021-03-07
2
6
 
3
7
  - Add `Request#cookies`
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- qeweney (0.7.4)
4
+ qeweney (0.7.5)
5
5
  escape_utils (~> 1.2.1)
6
6
 
7
7
  GEM
@@ -7,7 +7,7 @@ module Qeweney
7
7
  'html' => 'text/html',
8
8
  'css' => 'text/css',
9
9
  'js' => 'application/javascript',
10
- 'txt' => 'text/plain'
10
+ 'txt' => 'text/plain',
11
11
 
12
12
  'gif' => 'image/gif',
13
13
  'jpg' => 'image/jpeg',
@@ -19,7 +19,7 @@ module Qeweney
19
19
  'json' => 'application/json',
20
20
  }.freeze
21
21
 
22
- def [](ref)
22
+ def self.[](ref)
23
23
  case ref
24
24
  when Symbol
25
25
  TYPES[ref.to_s]
@@ -87,6 +87,8 @@ module Qeweney
87
87
  SEMICOLON = ';'
88
88
 
89
89
  def parse_cookies(cookies)
90
+ return {} unless cookies
91
+
90
92
  cookies.split(SEMICOLON).each_with_object({}) do |c, h|
91
93
  raise BadRequestError, 'Invalid cookie format' unless c.strip =~ COOKIE_RE
92
94
 
@@ -6,6 +6,7 @@ require 'stringio'
6
6
  require 'digest/sha1'
7
7
 
8
8
  require_relative 'status'
9
+ require_relative 'mime_types'
9
10
 
10
11
  module Qeweney
11
12
  module StaticFileCaching
@@ -59,7 +60,7 @@ module Qeweney
59
60
  redirect(secure_uri, status)
60
61
  end
61
62
 
62
- def serve_file(path, opts)
63
+ def serve_file(path, opts = {})
63
64
  full_path = file_full_path(path, opts)
64
65
  stat = File.stat(full_path)
65
66
  etag = StaticFileCaching.file_stat_to_etag(stat)
@@ -72,17 +73,25 @@ module Qeweney
72
73
  })
73
74
  end
74
75
 
76
+ mime_type = Qeweney::MimeTypes[File.extname(path)]
77
+ (opts[:headers] ||= {})['Content-Type'] ||= mime_type if mime_type
78
+
75
79
  respond_with_static_file(full_path, etag, last_modified, opts)
76
80
  rescue Errno::ENOENT => e
77
81
  respond(nil, ':status' => Status::NOT_FOUND)
78
82
  end
79
83
 
80
84
  def respond_with_static_file(path, etag, last_modified, opts)
85
+ cache_headers = {
86
+ 'etag' => etag,
87
+ 'last-modified' => last_modified,
88
+ }
81
89
  File.open(path, 'r') do |f|
82
- opts = opts.merge(headers: {
83
- 'etag' => etag,
84
- 'last-modified' => last_modified,
85
- })
90
+ if opts[:headers]
91
+ opts[:headers].merge!(cache_headers)
92
+ else
93
+ opts[:headers] = cache_headers
94
+ end
86
95
 
87
96
  # accept_encoding should return encodings in client's order of preference
88
97
  accept_encoding.each do |encoding|
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Qeweney
4
- VERSION = '0.7.4'
4
+ VERSION = '0.7.5'
5
5
  end
@@ -32,6 +32,10 @@ class RequestInfoTest < MiniTest::Test
32
32
  end
33
33
 
34
34
  def test_cookies
35
+ r = Qeweney.mock
36
+
37
+ assert_equal({}, r.cookies)
38
+
35
39
  r = Qeweney.mock(
36
40
  'cookie' => 'uaid=a%2Fb; lastLocus=settings; signin_ref=/'
37
41
  )
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qeweney
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.4
4
+ version: 0.7.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-07 00:00:00.000000000 Z
11
+ date: 2021-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: escape_utils