alchemy-dragonfly-s3 5.1.5 → 5.2.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: ec1c13a542a1b63dd195077cd647d1e1bc0bdfaeae8a4eb51b702566d5202c12
4
- data.tar.gz: 646fe1fa7a99c9ee7cb68eb8cc1bbddbd78640624cfafb168f5fb9371239bce0
3
+ metadata.gz: f2741b9d0809ea0db39de700b0ca1b1181deec6d59606737c7620ec96faadf66
4
+ data.tar.gz: c8ce3d82fb9a790f2719ebeb39e69547602e68336e6ec345306b0c570c682aa5
5
5
  SHA512:
6
- metadata.gz: c16231755be826fc40a78542cfb864753a0403eed16feb51186d9e526c2c76dc450810a228105644a0233844fa97171e7a83d35bd52ecedcbdaf7205d639961a
7
- data.tar.gz: 946cf698073d4940257b251f8f53eb1ef189b53c4bf91ea081ff3142360cef5ef05cbf97631a5fad8c2c51cc58a98f1048b41e3c5e6093439ddc323786181f03
6
+ metadata.gz: dffd05e4c6da9a3ceb21895c71c042e07ded2a7a8bd6556bfefeffa40af34a9ece18017050755f435ce34d1ae354dbcfe6d77dc5153b0a5e91d381d886d49821
7
+ data.tar.gz: 80e574fdc5b74a76d1278bf9b809ceb56b19778e76acf485afc76a914c7e3559ab7ab81c447b0c0c6f985bc7fdfdc894fc612816df7932168a32d3a1e87e4dab
data/CHANGELOG.md ADDED
@@ -0,0 +1,33 @@
1
+ ## v5.2.1
2
+
3
+ - Fix race condition in CreatePictureThumb
4
+
5
+ ## v5.2.0
6
+
7
+ - Fix loading of Alchemy factories
8
+ - Allow Alchemy 6
9
+ - Use config.to_prepare as hook to register classes
10
+
11
+ ## v5.1.5
12
+
13
+ - Prevent db race conditions while creating thumbs
14
+
15
+ ## v5.1.4
16
+
17
+ - Include necessary files in gem package
18
+
19
+ ## v5.1.3
20
+
21
+ - Use Alchemy 5.1.0.alpha
22
+
23
+ ## v5.1.2
24
+
25
+ - Add support for file attachments stored on S3
26
+
27
+ ## v5.1.1
28
+
29
+ - Ensure to create new thumbs on in memory picture
30
+
31
+ ## v5.1.0
32
+
33
+ - Alchemy 5.1 support
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Build Status](https://travis-ci.com/AlchemyCMS/alchemy-dragonfly-s3.svg?branch=master)](https://travis-ci.com/AlchemyCMS/alchemy-dragonfly-s3)
1
+ [![Build Status](https://travis-ci.com/AlchemyCMS/alchemy-dragonfly-s3.svg?branch=main)](https://travis-ci.com/AlchemyCMS/alchemy-dragonfly-s3)
2
2
 
3
3
  # AlchemyCMS AWS S3
4
4
 
@@ -6,7 +6,7 @@ Provides classes for storing Alchemy pictures and file attachments on Amazon AWS
6
6
 
7
7
  ## Alchemy Version
8
8
 
9
- This branch works with Alchemy 5.1 only.
9
+ This branch works with Alchemy 5.1 and above.
10
10
 
11
11
  - For a Alchemy 5.0 compatible version use the `alchemy-5` branch.
12
12
  - For a Alchemy 4 compatible version use the `alchemy-4` branch.
@@ -20,27 +20,12 @@ Add this line to your application's Gemfile:
20
20
  gem 'alchemy-dragonfly-s3', github: 'AlchemyCMS/alchemy-dragonfly-s3'
21
21
  ```
22
22
 
23
- For now you also need the master branch of AlchemyCMS*
24
-
25
- ```ruby
26
- gem 'alchemy_cms', github: 'AlchemyCMS/alchemy_cms', branch: 'master'
27
- ```
28
-
29
- *only necessary until Alchemy 5.1 has been released.
30
-
31
23
  And then execute:
32
24
 
33
25
  ```
34
26
  $ bundle install
35
27
  ```
36
28
 
37
- Install the picture thumbs migration from Alchemy 5.1
38
-
39
- ```
40
- $ bin/rake alchemy:install:migrations
41
- $ bin/rake db:migrate
42
- ```
43
-
44
29
  ## Setup
45
30
 
46
31
  Configure a S3 datastore for Dragonfly
@@ -50,23 +35,17 @@ Configure a S3 datastore for Dragonfly
50
35
 
51
36
  require "dragonfly/s3_data_store"
52
37
 
53
- Dragonfly.app(:alchemy_pictures).configure do
54
- plugin :imagemagick
55
- plugin :svg
56
-
57
- datastore :s3,
58
- bucket_name: ENV.fetch("ALCHEMY_S3_BUCKET_NAME"),
59
- access_key_id: ENV.fetch("ALCHEMY_S3_ACCESS_KEY_ID"),
60
- secret_access_key: ENV.fetch("ALCHEMY_S3_SECRET_ACCESS_KEY"),
61
- region: ENV.fetch("ALCHEMY_S3_REGION")
62
- end
63
-
64
- Dragonfly.app(:alchemy_attachments).configure do
65
- datastore :s3,
66
- bucket_name: ENV.fetch("ALCHEMY_S3_BUCKET_NAME"),
67
- access_key_id: ENV.fetch("ALCHEMY_S3_ACCESS_KEY_ID"),
68
- secret_access_key: ENV.fetch("ALCHEMY_S3_SECRET_ACCESS_KEY"),
69
- region: ENV.fetch("ALCHEMY_S3_REGION")
38
+ Rails.application.credentials.aws.tap do |aws_config|
39
+ Dragonfly.app(:alchemy_pictures).configure do
40
+ plugin :imagemagick
41
+ plugin :svg
42
+ secret: Rails.application.credentials.secret_key_base
43
+ datastore :s3, aws_config
44
+ end
45
+
46
+ Dragonfly.app(:alchemy_attachments).configure do
47
+ datastore :s3, aws_config
48
+ end
70
49
  end
71
50
  ```
72
51
 
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ $:.push File.expand_path("lib", __dir__)
4
+
5
+ require "alchemy/dragonfly/s3/version"
6
+
7
+ # Describe your gem and declare its dependencies:
8
+ Gem::Specification.new do |s|
9
+ s.name = "alchemy-dragonfly-s3"
10
+ s.version = Alchemy::Dragonfly::S3::VERSION
11
+ s.authors = ["Thomas von Deyen"]
12
+ s.email = ["thomas@vondeyen.com"]
13
+ s.homepage = "https://alchemy-cms.com"
14
+ s.summary = "AlchemyCMS Dragonfly S3."
15
+ s.description = "AlchemyCMS Integration for the Dragonfly S3 datastore."
16
+ s.license = "MIT"
17
+
18
+ s.files = Dir[
19
+ "app/**/*",
20
+ "lib/**/*",
21
+ "alchemy-dragonfly-s3.gemspec",
22
+ "CHANGELOG.md",
23
+ "MIT-LICENSE",
24
+ "README.md",
25
+ ]
26
+
27
+ s.add_dependency "alchemy_cms", [">= 5.1.0", "< 6.1"]
28
+ s.add_dependency "dragonfly-s3_data_store", "~> 1.3"
29
+
30
+ s.add_development_dependency "rspec-rails", "~> 4.0"
31
+ s.add_development_dependency "factory_bot_rails", "~> 6.0"
32
+ s.add_development_dependency "simplecov", "~> 0.17"
33
+ end
@@ -5,22 +5,23 @@ module Alchemy
5
5
  module S3
6
6
  class CreatePictureThumb
7
7
  def self.call(variant, signature, uid)
8
+ return if !variant.picture.valid?
9
+
8
10
  # create the thumb before uploading
9
11
  # to prevent db race conditions
10
- thumb = variant.picture.thumbs.create!(
11
- picture: variant.picture,
12
- signature: signature,
13
- uid: uid,
14
- )
12
+ @thumb = Alchemy::PictureThumb.create_or_find_by!(signature: signature) do |thumb|
13
+ thumb.picture = variant.picture
14
+ thumb.uid = uid
15
+ end
15
16
  begin
16
17
  # fetch and process the image
17
18
  image = variant.image
18
19
  # upload the processed image
19
20
  image.store(path: uid)
20
21
  rescue RuntimeError, Excon::Error => e
21
- Rails.logger.warn(e)
22
+ ErrorTracking.notification_handler.call(e)
22
23
  # destroy the thumb if processing or upload fails
23
- thumb.destroy
24
+ @thumb&.destroy
24
25
  end
25
26
  end
26
27
  end
@@ -6,7 +6,7 @@ module Alchemy
6
6
  class Engine < ::Rails::Engine
7
7
  engine_name "alchemy_dragonfly_s3"
8
8
 
9
- config.after_initialize do
9
+ config.to_prepare do
10
10
  Alchemy::Attachment.url_class = Alchemy::Attachment::S3Url
11
11
  Alchemy::Picture.url_class = Alchemy::Picture::S3Url
12
12
  Alchemy::PictureThumb.generator_class = Alchemy::Dragonfly::S3::CreatePictureThumb
@@ -3,7 +3,7 @@
3
3
  module Alchemy
4
4
  module Dragonfly
5
5
  module S3
6
- VERSION = "5.1.5"
6
+ VERSION = "5.2.1"
7
7
  end
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: alchemy-dragonfly-s3
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.1.5
4
+ version: 5.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas von Deyen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-21 00:00:00.000000000 Z
11
+ date: 2023-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: alchemy_cms
@@ -16,20 +16,20 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.1.0.alpha
19
+ version: 5.1.0
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '6'
22
+ version: '6.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: 5.1.0.alpha
29
+ version: 5.1.0
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '6'
32
+ version: '6.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: dragonfly-s3_data_store
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -93,8 +93,10 @@ executables: []
93
93
  extensions: []
94
94
  extra_rdoc_files: []
95
95
  files:
96
+ - CHANGELOG.md
96
97
  - MIT-LICENSE
97
98
  - README.md
99
+ - alchemy-dragonfly-s3.gemspec
98
100
  - app/models/alchemy/attachment/s3_url.rb
99
101
  - app/models/alchemy/picture/s3_url.rb
100
102
  - lib/alchemy-dragonfly-s3.rb
@@ -120,7 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
120
122
  - !ruby/object:Gem::Version
121
123
  version: '0'
122
124
  requirements: []
123
- rubygems_version: 3.0.3
125
+ rubygems_version: 3.3.26
124
126
  signing_key:
125
127
  specification_version: 4
126
128
  summary: AlchemyCMS Dragonfly S3.