active_storage-postgresql 0.2.1 → 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: cf747808043e0bd24040e66f83ac859af66e0baeacc7b309ec58b5bd9f40a89c
4
- data.tar.gz: 5a9244336b37ecebe236c1f2fa02dc437ed01ebe489d01450cb97f4b692dc26f
3
+ metadata.gz: 02acf670378aa84368856711199795b7af498576ec9532dbbe16042d4e8ac470
4
+ data.tar.gz: 602293dce4f6ec595566c6ce67c997c54116d9dd4d1ac6294e8bdf3edd52364e
5
5
  SHA512:
6
- metadata.gz: 48c47b3da3d266d39552dab7c52b7f990046c2af696fa5f78e9d00528639dca8be27fea0779d028cdf3d0badc008ae8b84d1f3ab77a74a8d96c28d6f7e4d8cbf
7
- data.tar.gz: b2626b333f82f99199e41db2c549524b545ca455a153f436f3760e06690352447e1c773ea3bead8c63a83c03b6e9555ce00e1b1d60b96e780565ce942a014b35
6
+ metadata.gz: 551113a522736f182a02dce862bbc980eb0b244d757093ca67b27c7ccb3d66c580e47970b0fb3a95366c7a71cf2bdc9645f3bc09e9d4a5ea02b7e9c8967e4261
7
+ data.tar.gz: 3cddd9c9dbd5018c1efb06a72157bd2a0bc4c246a747fb6dd805882d95222e93969718e025892242cbb5ed5e6f94d50eb7ff2519c7a94de489dcc42b0553e71a
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # ActiveStorage::PostgreSQL
2
2
 
3
3
  [![Gem Version](https://badge.fury.io/rb/active_storage-postgresql.svg)](https://badge.fury.io/rb/active_storage-postgresql)
4
- [![Build Status](https://travis-ci.com/lsylvester/active_storage-postgresql.svg?branch=master)](https://travis-ci.com/lsylvester/active_storage-postgresql)
4
+ [![Build Status](https://travis-ci.com/lsylvester/active_storage-postgresql.svg?branch=main)](https://travis-ci.com/lsylvester/active_storage-postgresql)
5
5
 
6
6
  ActiveStorage Service to store files PostgeSQL.
7
7
 
@@ -51,4 +51,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
51
51
 
52
52
  ## Code of Conduct
53
53
 
54
- Everyone interacting in the ActiveStorage::PostgreSQL project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/lsylvester/active_storage-postgresql/blob/master/CODE_OF_CONDUCT.md).
54
+ Everyone interacting in the ActiveStorage::PostgreSQL project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/lsylvester/active_storage-postgresql/blob/main/CODE_OF_CONDUCT.md).
@@ -11,8 +11,8 @@ class ActiveStorage::PostgresqlController < ActiveStorage::BaseController
11
11
 
12
12
  def show
13
13
  if key = decode_verified_key
14
- response.headers["Content-Type"] = params[:content_type] || DEFAULT_SEND_FILE_TYPE
15
- response.headers["Content-Disposition"] = params[:disposition] || DEFAULT_SEND_FILE_DISPOSITION
14
+ response.headers["Content-Type"] = key[:content_type] || DEFAULT_SEND_FILE_TYPE
15
+ response.headers["Content-Disposition"] = key[:disposition] || DEFAULT_SEND_FILE_DISPOSITION
16
16
  size = ActiveStorage::PostgreSQL::File.open(key[:key], &:size)
17
17
 
18
18
  ranges = Rack::Utils.get_byte_ranges(request.get_header('HTTP_RANGE'), size)
@@ -1,5 +1,5 @@
1
1
  module ActiveStorage
2
2
  module PostgreSQL
3
- VERSION = '0.2.1'
3
+ VERSION = '0.3.1'
4
4
  end
5
5
  end
@@ -2,6 +2,9 @@ require "active_storage/postgresql/engine"
2
2
 
3
3
  module ActiveStorage
4
4
  module PostgreSQL
5
- # Your code goes here...
5
+ extend ActiveSupport::Autoload
6
+
7
+ autoload :File, "active_storage/postgresql/file"
8
+
6
9
  end
7
10
  end
@@ -1,12 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'active_storage/postgresql/file'
4
-
5
3
  module ActiveStorage
6
4
  # Wraps a PostgreSQL database as an Active Storage service. See ActiveStorage::Service for the generic API
7
5
  # documentation that applies to all services.
8
6
  class Service::PostgreSQLService < Service
9
- def initialize(**options)
7
+ def initialize(public: false, **options)
8
+ @public = public
10
9
  end
11
10
 
12
11
  def upload(key, io, checksum: nil, **)
@@ -62,7 +61,25 @@ module ActiveStorage
62
61
  end
63
62
  end
64
63
 
65
- def url(key, expires_in:, filename:, disposition:, content_type:)
64
+ def private_url(key, expires_in:, filename:, content_type:, disposition:, **)
65
+ generate_url(key, expires_in: expires_in, filename: filename, content_type: content_type, disposition: disposition)
66
+ end
67
+
68
+ def public_url(key, filename:, content_type: nil, disposition: :attachment, **)
69
+ generate_url(key, expires_in: nil, filename: filename, content_type: content_type, disposition: disposition)
70
+ end
71
+
72
+ def url(key, **options)
73
+ super
74
+ rescue NotImplementedError, ArgumentError
75
+ if @public
76
+ public_url(key, **options)
77
+ else
78
+ private_url(key, **options)
79
+ end
80
+ end
81
+
82
+ def generate_url(key, expires_in:, filename:, disposition:, content_type:)
66
83
  instrument :url, key: key do |payload|
67
84
  content_disposition = content_disposition_with(type: disposition, filename: filename)
68
85
  verified_key_with_expiration = ActiveStorage.verifier.generate(
@@ -71,12 +88,12 @@ module ActiveStorage
71
88
  disposition: content_disposition,
72
89
  content_type: content_type
73
90
  },
74
- { expires_in: expires_in,
75
- purpose: :blob_key }
91
+ expires_in: expires_in,
92
+ purpose: :blob_key
76
93
  )
77
94
 
78
95
  generated_url = url_helpers.rails_postgresql_service_url(verified_key_with_expiration,
79
- host: current_host,
96
+ **url_options,
80
97
  disposition: content_disposition,
81
98
  content_type: content_type,
82
99
  filename: filename
@@ -87,7 +104,7 @@ module ActiveStorage
87
104
  end
88
105
  end
89
106
 
90
- def url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:)
107
+ def url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:, custom_metadata: {})
91
108
  instrument :url, key: key do |payload|
92
109
  verified_token_with_expiration = ActiveStorage.verifier.generate(
93
110
  {
@@ -96,11 +113,11 @@ module ActiveStorage
96
113
  content_length: content_length,
97
114
  checksum: checksum
98
115
  },
99
- { expires_in: expires_in,
100
- purpose: :blob_token }
116
+ expires_in: expires_in,
117
+ purpose: :blob_token
101
118
  )
102
119
 
103
- generated_url = url_helpers.update_rails_postgresql_service_url(verified_token_with_expiration, host: current_host)
120
+ generated_url = url_helpers.update_rails_postgresql_service_url(verified_token_with_expiration, **url_options)
104
121
 
105
122
  payload[:url] = generated_url
106
123
 
@@ -118,8 +135,12 @@ module ActiveStorage
118
135
  @url_helpers ||= Rails.application.routes.url_helpers
119
136
  end
120
137
 
121
- def current_host
122
- ActiveStorage::Current.host
138
+ def url_options
139
+ if ActiveStorage::Current.respond_to?(:url_options)
140
+ ActiveStorage::Current.url_options
141
+ else
142
+ { host: ActiveStorage::Current.host }
143
+ end
123
144
  end
124
145
  end
125
146
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_storage-postgresql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lachlan Sylvester
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-31 00:00:00.000000000 Z
11
+ date: 2023-07-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '5.2'
19
+ version: '6.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: '5.2'
26
+ version: '6.0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pg
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -31,6 +31,45 @@ dependencies:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '1.0'
34
+ - - "!="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.3.0
37
+ - - "!="
38
+ - !ruby/object:Gem::Version
39
+ version: 1.3.1
40
+ - - "!="
41
+ - !ruby/object:Gem::Version
42
+ version: 1.3.2
43
+ - - "!="
44
+ - !ruby/object:Gem::Version
45
+ version: 1.3.3
46
+ - - "!="
47
+ - !ruby/object:Gem::Version
48
+ version: 1.3.4
49
+ - - "!="
50
+ - !ruby/object:Gem::Version
51
+ version: 1.3.5
52
+ - - "!="
53
+ - !ruby/object:Gem::Version
54
+ version: 1.4.0
55
+ - - "!="
56
+ - !ruby/object:Gem::Version
57
+ version: 1.4.1
58
+ - - "!="
59
+ - !ruby/object:Gem::Version
60
+ version: 1.4.2
61
+ - - "!="
62
+ - !ruby/object:Gem::Version
63
+ version: 1.4.3
64
+ - - "!="
65
+ - !ruby/object:Gem::Version
66
+ version: 1.4.4
67
+ - - "!="
68
+ - !ruby/object:Gem::Version
69
+ version: 1.4.5
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '2.0'
34
73
  type: :runtime
35
74
  prerelease: false
36
75
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +77,45 @@ dependencies:
38
77
  - - ">="
39
78
  - !ruby/object:Gem::Version
40
79
  version: '1.0'
80
+ - - "!="
81
+ - !ruby/object:Gem::Version
82
+ version: 1.3.0
83
+ - - "!="
84
+ - !ruby/object:Gem::Version
85
+ version: 1.3.1
86
+ - - "!="
87
+ - !ruby/object:Gem::Version
88
+ version: 1.3.2
89
+ - - "!="
90
+ - !ruby/object:Gem::Version
91
+ version: 1.3.3
92
+ - - "!="
93
+ - !ruby/object:Gem::Version
94
+ version: 1.3.4
95
+ - - "!="
96
+ - !ruby/object:Gem::Version
97
+ version: 1.3.5
98
+ - - "!="
99
+ - !ruby/object:Gem::Version
100
+ version: 1.4.0
101
+ - - "!="
102
+ - !ruby/object:Gem::Version
103
+ version: 1.4.1
104
+ - - "!="
105
+ - !ruby/object:Gem::Version
106
+ version: 1.4.2
107
+ - - "!="
108
+ - !ruby/object:Gem::Version
109
+ version: 1.4.3
110
+ - - "!="
111
+ - !ruby/object:Gem::Version
112
+ version: 1.4.4
113
+ - - "!="
114
+ - !ruby/object:Gem::Version
115
+ version: 1.4.5
116
+ - - "<"
117
+ - !ruby/object:Gem::Version
118
+ version: '2.0'
41
119
  - !ruby/object:Gem::Dependency
42
120
  name: pry
43
121
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +144,21 @@ dependencies:
66
144
  - - "~>"
67
145
  - !ruby/object:Gem::Version
68
146
  version: '1.7'
69
- description:
147
+ - !ruby/object:Gem::Dependency
148
+ name: appraisal
149
+ requirement: !ruby/object:Gem::Requirement
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ version: '0'
154
+ type: :development
155
+ prerelease: false
156
+ version_requirements: !ruby/object:Gem::Requirement
157
+ requirements:
158
+ - - ">="
159
+ - !ruby/object:Gem::Version
160
+ version: '0'
161
+ description:
70
162
  email:
71
163
  - lachlan.sylvester@hypothetical.com.au
72
164
  executables: []
@@ -90,7 +182,7 @@ homepage: https://github.com/lsylvester/active_storage-postgresql
90
182
  licenses:
91
183
  - MIT
92
184
  metadata: {}
93
- post_install_message:
185
+ post_install_message:
94
186
  rdoc_options: []
95
187
  require_paths:
96
188
  - lib
@@ -105,8 +197,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
197
  - !ruby/object:Gem::Version
106
198
  version: '0'
107
199
  requirements: []
108
- rubygems_version: 3.0.3
109
- signing_key:
200
+ rubygems_version: 3.0.1
201
+ signing_key:
110
202
  specification_version: 4
111
203
  summary: PostgreSQL Adapter for Active Storage
112
204
  test_files: []