asset_sync 2.17.0 → 2.18.1

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: 30fcfd0667904cde532ba24578e9bbc15f33051d5bde3e345226915c7135ccde
4
- data.tar.gz: 67cff250568d8473c940733f182e425b811550be1c95e940498508fe5d81e656
3
+ metadata.gz: 1fb2743cc1cc656c27c392c0a4f6cd5cc07e57ed8dad28fc1ed9f01b268d6d42
4
+ data.tar.gz: 13067af05b7e16f1a12c62db2583f56ec5e995414d86e193110339efde7f8e16
5
5
  SHA512:
6
- metadata.gz: 6c2471c8dcad1fdd461fac5e7881723f012888e295e5f8bda6c13137ff1cb31f3aef2db669d71588a3a699dbd2d56366abacdf9ab0d0cae4b8e7b5dba2bff8f8
7
- data.tar.gz: 1c5fb8a038bc21c0f8218a1dd74ec6cff47df3b43588e0b9599032559a639564341814f1576faa5b6a9f9378ca2e37de1c08f219748999f0e7a437f48e96fe22
6
+ metadata.gz: 57189c1fb4dbd6edab1f5cc262f6ef420f144631adf69d03fc504218018de8765ce15e9d8e38e19eacf4eb825d3ec46b1311cf492939fc537c30554ba26dbd99
7
+ data.tar.gz: 56eba25178ac8ee2a51222bfbd46342dc8836e67d52ea255000a710a341b158bee5043969574d111779c589f9223137a2c9a4ed9a1a259adb595ddaa9fd87b40
data/CHANGELOG.md CHANGED
@@ -7,7 +7,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
7
7
 
8
8
  ### Added
9
9
 
10
- - Add `fog_options` configuration option.
10
+ - Nothing
11
11
 
12
12
  ### Changed
13
13
 
@@ -18,6 +18,22 @@ This project adheres to [Semantic Versioning](http://semver.org/).
18
18
  - Nothing
19
19
 
20
20
 
21
+ ## [2.18.1] - 2023-08-02
22
+
23
+ ### Changed
24
+
25
+ - Respect explicitly set `Rails.application.config.assets.manifest`
26
+ (https://github.com/AssetSync/asset_sync/pull/434)
27
+
28
+
29
+ ## [2.18.0] - 2023-01-30
30
+
31
+ ### Added
32
+
33
+ - Add `google_auth` configuration option
34
+ (https://github.com/AssetSync/asset_sync/pull/432)
35
+
36
+
21
37
  ## [2.17.0] - 2023-01-13
22
38
 
23
39
  ### Added
@@ -1070,7 +1086,9 @@ Changes:
1070
1086
  * Merge branch 'sinatra'
1071
1087
 
1072
1088
 
1073
- [Unreleased]: https://github.com/AssetSync/asset_sync/compare/v2.17.0...HEAD
1089
+ [Unreleased]: https://github.com/AssetSync/asset_sync/compare/v2.18.1...HEAD
1090
+ [2.18.1]: https://github.com/AssetSync/asset_sync/compare/v2.18.0...v2.18.1
1091
+ [2.18.0]: https://github.com/AssetSync/asset_sync/compare/v2.17.0...v2.18.0
1074
1092
  [2.17.0]: https://github.com/AssetSync/asset_sync/compare/v2.16.0...v2.17.0
1075
1093
  [2.16.0]: https://github.com/AssetSync/asset_sync/compare/v2.15.3...v2.16.0
1076
1094
  [2.15.3]: https://github.com/AssetSync/asset_sync/compare/v2.15.2...v2.15.3
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
 
2
2
  [![Gem Version](https://img.shields.io/gem/v/asset_sync.svg?style=flat-square)](http://badge.fury.io/rb/asset_sync)
3
- [![Tests](https://github.com/AssetSync/asset_sync/actions/workflows/tests.yaml/badge.svg)](https://github.com/AssetSync/asset_sync/actions/workflows/tests.yaml)
3
+ [![GitHub Build Status](https://img.shields.io/github/actions/workflow/status/AssetSync/asset_sync/tests.yaml?branch=master&style=flat-square)](https://github.com/AssetSync/asset_sync/actions/workflows/tests.yaml)
4
4
  [![Coverage Status](http://img.shields.io/coveralls/AssetSync/asset_sync.svg?style=flat-square)](https://coveralls.io/r/AssetSync/asset_sync)
5
5
 
6
6
 
@@ -56,6 +56,7 @@ module AssetSync
56
56
  attr_accessor :rackspace_username, :rackspace_api_key, :rackspace_auth_url
57
57
 
58
58
  # Google Storage
59
+ attr_accessor :google_auth # when using generic auth (like access tokens)
59
60
  attr_accessor :google_storage_secret_access_key, :google_storage_access_key_id # when using S3 interop
60
61
  attr_accessor :google_json_key_location # when using service accounts
61
62
  attr_accessor :google_json_key_string # when using service accounts
@@ -81,7 +82,7 @@ module AssetSync
81
82
  validates :rackspace_api_key, :presence => true, :if => :rackspace?
82
83
  validates :google_storage_secret_access_key, :presence => true, :if => :google_interop?
83
84
  validates :google_storage_access_key_id, :presence => true, :if => :google_interop?
84
- validates :google_project, :presence => true, :if => :google_service_account?
85
+ validates :google_project, :presence => true, :if => -> (c) { c.google_auth || c.google_service_account? }
85
86
  validate(:if => :google_service_account?) do
86
87
  unless google_json_key_location.present? || google_json_key_string.present?
87
88
  errors.add(:base, 'must provide either google_json_key_location or google_json_key_string if using Google service account')
@@ -116,9 +117,13 @@ module AssetSync
116
117
  end
117
118
 
118
119
  def manifest_path
119
- directory =
120
+ if defined?(ActionView) && ActionView::Base.respond_to?(:assets_manifest)
121
+ ::Rails.application.config.assets.manifest
122
+ else
123
+ directory =
120
124
  ::Rails.application.config.assets.manifest || default_manifest_directory
121
- File.join(directory, "manifest.yml")
125
+ File.join(directory, "manifest.yml")
126
+ end
122
127
  end
123
128
 
124
129
  def gzip?
@@ -162,7 +167,7 @@ module AssetSync
162
167
  end
163
168
 
164
169
  def google_interop?
165
- google? && google_json_key_location.nil? && google_json_key_string.nil?
170
+ google? && google_auth.nil? && google_json_key_location.nil? && google_json_key_string.nil?
166
171
  end
167
172
 
168
173
  def google_service_account?
@@ -310,7 +315,9 @@ module AssetSync
310
315
  options.merge!({ :rackspace_region => fog_region }) if fog_region
311
316
  options.merge!({ :rackspace_auth_url => rackspace_auth_url }) if rackspace_auth_url
312
317
  elsif google?
313
- if google_json_key_location
318
+ if google_auth
319
+ options.merge!({:google_auth => google_auth, :google_project => google_project})
320
+ elsif google_json_key_location
314
321
  options.merge!({:google_json_key_location => google_json_key_location, :google_project => google_project})
315
322
  elsif google_json_key_string
316
323
  options.merge!({:google_json_key_string => google_json_key_string, :google_project => google_project})
@@ -59,7 +59,7 @@ module AssetSync
59
59
  return [] unless self.config.include_manifest
60
60
 
61
61
  if ActionView::Base.respond_to?(:assets_manifest)
62
- manifest = Sprockets::Manifest.new(ActionView::Base.assets_manifest.environment, ActionView::Base.assets_manifest.dir)
62
+ manifest = Sprockets::Manifest.new(ActionView::Base.assets_manifest.environment, ActionView::Base.assets_manifest.dir, self.config.manifest_path)
63
63
  manifest_path = manifest.filename
64
64
  else
65
65
  manifest_path = self.config.manifest_path
@@ -139,7 +139,7 @@ module AssetSync
139
139
  if self.config.manifest
140
140
  if ActionView::Base.respond_to?(:assets_manifest)
141
141
  log "Using: Rails 4.0 manifest access"
142
- manifest = Sprockets::Manifest.new(ActionView::Base.assets_manifest.environment, ActionView::Base.assets_manifest.dir)
142
+ manifest = Sprockets::Manifest.new(ActionView::Base.assets_manifest.environment, ActionView::Base.assets_manifest.dir, self.config.manifest_path)
143
143
  return manifest.assets.values.map { |f| File.join(self.config.assets_prefix, f) }
144
144
  elsif File.exist?(self.config.manifest_path)
145
145
  log "Using: Manifest #{self.config.manifest_path}"
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AssetSync
4
- VERSION = "2.17.0"
4
+ VERSION = "2.18.1"
5
5
  end
@@ -258,6 +258,11 @@ describe AssetSync do
258
258
  Rails.application.config.assets.prefix = 'custom_assets'
259
259
  expect(AssetSync.config.manifest_path).to match(/public\/custom_assets\/manifest.yml/)
260
260
  end
261
+
262
+ it "config.manifest_path should point to explicit path" do
263
+ Rails.application.config.assets.manifest = 'config/manifest.json'
264
+ expect(AssetSync.config.manifest_path).to start_with('config/manifest.json')
265
+ end
261
266
  end
262
267
 
263
268
  describe 'with cache_asset_regexps' do
@@ -38,6 +38,30 @@ describe AssetSync do
38
38
  expect(AssetSync.config.manifest).to be_falsey
39
39
  end
40
40
 
41
+ describe "when using user-specified google credentials" do
42
+ before(:each) do
43
+ AssetSync.configure do |config|
44
+ config.google_auth = "access-token"
45
+ config.google_project = 'a-google-project-name'
46
+ end
47
+ end
48
+
49
+ it "should configure google_auth" do
50
+ expect(AssetSync.config.google_auth).to eq("access-token")
51
+ end
52
+
53
+ it "should return the correct fog_options" do
54
+ expected_fog_options = { google_auth: "access-token",
55
+ google_project: 'a-google-project-name',
56
+ provider: "Google"}
57
+ expect(AssetSync.config.fog_options).to eq(expected_fog_options)
58
+ end
59
+
60
+ it "should not require that other parameters be set" do
61
+ expect(AssetSync.config.valid?).to eq(true)
62
+ end
63
+ end
64
+
41
65
  describe "when using S3 interop API" do
42
66
  before(:each) do
43
67
  AssetSync.configure do |config|
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: asset_sync
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.17.0
4
+ version: 2.18.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simon Hamilton
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2023-01-13 00:00:00.000000000 Z
14
+ date: 2023-08-02 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: fog-core
@@ -288,7 +288,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
288
288
  - !ruby/object:Gem::Version
289
289
  version: '0'
290
290
  requirements: []
291
- rubygems_version: 3.4.3
291
+ rubygems_version: 3.4.17
292
292
  signing_key:
293
293
  specification_version: 4
294
294
  summary: Synchronises Assets in a Rails 3 application and Amazon S3/Cloudfront and