activestorage-delayed 0.1.1 → 0.1.4

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: aaac3aa632c36357275cd927c68693bcdad31b86bd6f00189c651683f56fc2ae
4
- data.tar.gz: 43881344f8527dc24e3a536c7892c7c0f4886926c5045c4822e6a5c3427ab6a1
3
+ metadata.gz: 76f19f1856294d83f52a92dbbc1ea9eb52c216c021726437ff513727426c65e4
4
+ data.tar.gz: 923f537ec4dbbfd797c72157f46b58a1a1f20f04127f53034f444fd6a2cd8ac2
5
5
  SHA512:
6
- metadata.gz: 3af76bd8cacda9123509b9c81919a5a86ce38e7598b32332950484ec3930d6ecaccd59a01084c38e51702acf2eeb74155a271f5ad534bc122d13b5cca3ae80ab
7
- data.tar.gz: fc6c73a0b6fa5df9bcd01e948309a0ba7ee71c693f9646698cbfcbf10862eb9691b8c78915e0e1191d97abaaa3902e39c40ecb0dea6fdfe12070bc549ce39886
6
+ metadata.gz: ea37e642bef6ef9ba231b0bc0b2c8c1676b569679be5373bd45cd5f6cbd7f8aff4d1ac3642e1f6853fddf8e46f55f19293a38cf9fee4a60061b671c5cb27a3b0
7
+ data.tar.gz: 80d2123dec2953c7c8778e0f7fa9449e73b7f25625863e05f0edaf5c07e3c6782c3e4b44f824c14ab61bb3dc03a834ec94c6eebc340b298fb7061d11f02208fe
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activestorage-delayed (0.1.1)
4
+ activestorage-delayed (0.1.3)
5
5
  activestorage
6
6
  rails
7
7
 
data/README.md CHANGED
@@ -1,12 +1,19 @@
1
1
  # Activestorage Delayed
2
2
 
3
- ActiveStorage for Rails 6 and 7 does not support to upload files in background which in most cases delays the submit process and then making the visitor get bored or receive a timeout error.
4
- This is a Ruby on Rails gem to upload activestorage files in background by saving them as base64 encoded in the database and be processed later.
3
+ ActiveStorage in Rails 6 and 7 does not support to upload files in background which in most cases delays the submit process and then makes the visitor get bored or receive a timeout error.
4
+ This is a Ruby on Rails gem to upload activestorage files in background by saving them as base64 encoded in the database (important for apps hosted in kubernetes) and be processed later.
5
+
6
+ ## Features
7
+ - Upload files in background
8
+ - Ability to add new files instead of replacing the old ones when using using `has_many_attached`
9
+ - Ability to upload files with the original filename or a custom one
10
+ - Ability to preprocess the files before uploading them (Rails 7+)
11
+ Note: This gem assumes that the app has already configured activestorage.
5
12
 
6
13
  ## Installation
7
14
  - Add this line to your application's Gemfile:
8
15
  ```ruby
9
- gem 'activestorage-delayed'
16
+ gem 'activestorage-delayed', '>= 0.1.3'
10
17
  ```
11
18
  - And then execute: `bundle install`
12
19
  - Generate the migration: `rails g migration add_activestorage_delayed`
@@ -32,7 +39,7 @@ This is a Ruby on Rails gem to upload activestorage files in background by savin
32
39
  class User < ApplicationRecord
33
40
  include ActivestorageDelayed::DelayedConcern
34
41
 
35
- has_one_attached :photo, require: true, use_filename: true
42
+ has_one_attached :photo, required: true, use_filename: true
36
43
  delayed_attach :photo
37
44
 
38
45
  has_many_attached :certificates
@@ -41,7 +48,7 @@ end
41
48
 
42
49
  ```
43
50
  ### `delayed_attach` accepts an optional hash with the following options:
44
- - `require`: If set to `true`, the `photo` or the `photo_tmp` will be required before saving.
51
+ - `required`: If set to `true`, the `photo` or the `photo_tmp` will be required before saving.
45
52
  - `use_filename`: If set to `true`, the image filename will be used as the name of uploaded file instead of the hash-key used by `activestorage`
46
53
 
47
54
  ### Examples to upload files in background
@@ -6,12 +6,13 @@ module ActivetoragePreprocessDefaultVariation
6
6
  base.extend(ClassMethods)
7
7
  end
8
8
 
9
- def upload_without_unfurling(io)
9
+ def upload_without_unfurling(io) # rubocop:disable Metrics/MethodLength
10
10
  variant = attachments.first.try(:send, :variants)
11
11
  default_variant = variant ? variant[:default] : nil
12
12
  if default_variant && self.class.enabled_default_variant?
13
13
  ActiveStorage::Variation.wrap(default_variant).transform(io) do |output|
14
14
  unfurl output, identify: identify
15
+ save! if id.present? # update new unfurl information
15
16
  super(output)
16
17
  end
17
18
  else
@@ -13,8 +13,7 @@ module ActivestorageDelayed
13
13
  return unless delayed_upload
14
14
 
15
15
  remove_files
16
- upload_photos
17
- save_changes
16
+ save_changes if upload_photos
18
17
  end
19
18
 
20
19
  private
@@ -25,9 +24,11 @@ module ActivestorageDelayed
25
24
  tmp_files_data.each do |file_data|
26
25
  model.send(attr_name).attach(file_data.transform_keys(&:to_sym))
27
26
  end
27
+ true
28
28
  rescue => e # rubocop:disable Style/RescueStandardError
29
29
  Rails.logger.error("********* #{self.class.name} -> Failed uploading files: #{e.message}. #{e.backtrace[0..20]}")
30
30
  model.ast_delayed_on_error(attr_name, e)
31
+ false
31
32
  end
32
33
 
33
34
  def save_changes
@@ -10,7 +10,7 @@ module ActivestorageDelayed
10
10
  self.table_name = 'activestorage_delayed_uploads'
11
11
  attr_accessor :tmp_files
12
12
 
13
- belongs_to :uploadable, polymorphic: true
13
+ belongs_to :uploadable, polymorphic: true, touch: true
14
14
 
15
15
  before_save :parse_tmp_files
16
16
  after_create_commit do
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ActivestorageDelayed
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.4'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activestorage-delayed
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Owen Peredo Diaz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-04-25 00:00:00.000000000 Z
11
+ date: 2022-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activestorage