effective_resources 1.8.35 → 1.9.0

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: 889c24801967683844b62d1e659862a39e47bfc99cf184ff77b9ecb9f0dbc16a
4
- data.tar.gz: a39a146b713bc41482f35df016f3309c8afedef75531c5066479fe8d3ca6100c
3
+ metadata.gz: e170a1dbe4e16bf76c3048540a98601f3944fb624ba7f6dc50a25d31d0c6b528
4
+ data.tar.gz: 3e0c48d4caa389595a6b77f7ab7f6ad00c469d397e0962d443ec04a8129d73cb
5
5
  SHA512:
6
- metadata.gz: ac2de13588b807efd3fb9c048c0e180701d9b0dff54bf4ff1c44a86eb211b4ab9fc17da5fbea84725ce4c6cdc17fc9d242e749d257dd778209a7127655cc22bc
7
- data.tar.gz: a7dd80308162e111383edb92c5964e32c7397116b574df8c20460e9571a705985f3b1d8ef6be28b9d743c08a89500fd34f2a830fa37751452db058fc34918c88
6
+ metadata.gz: ea9eefce2138894165ba88a81f5fbefa0edd500046aed321bd11ad6b93181b5cc9a36ba51668d869b59043e629c71577e026a97dd9667117f864db7b3199eaa9
7
+ data.tar.gz: f01e4bcef353c0fd5865b4cb046eb3814acf7172c357b8f2b6b7a9f9456f3209d1a13f0931ed67bb7804e891e6a79aab7ef774b85996d7f07e5872e0b84069db
@@ -12,7 +12,13 @@ module Effective
12
12
  @skip_to ||= skip_to_step(resource)
13
13
  @redirect_to ||= resource_wizard_path(resource, @skip_to) if was_new_record
14
14
 
15
- redirect_to(@redirect_to || wizard_path(@skip_to))
15
+ if @redirect_to
16
+ redirect_to(@redirect_to)
17
+ elsif @skip_to
18
+ redirect_to(wizard_path(@skip_to))
19
+ else
20
+ redirect_to_finish_wizard(options, params)
21
+ end
16
22
  else
17
23
  flash.now[:danger] = options.delete(:error) || resource_flash(:danger, resource, action)
18
24
  render_step(wizard_value(step), options)
@@ -8,22 +8,23 @@ module EffectiveGem
8
8
 
9
9
  config_keys.each do |key|
10
10
  self.singleton_class.define_method(key) { config()[key] }
11
+ self.singleton_class.define_method("#{key}=") { |value| config()[key] = value }
11
12
  end
12
13
  end
13
14
 
14
15
  module ClassMethods
15
16
  def config(namespace = nil)
16
17
  namespace ||= Tenant.current if defined?(Tenant)
17
- @config.dig(namespace) || @config
18
+ @config.dig(namespace) || @config.dig(:effective)
18
19
  end
19
20
 
20
21
  def setup(namespace = nil, &block)
21
22
  @config ||= ActiveSupport::OrderedOptions.new
23
+
22
24
  namespace ||= Tenant.current if defined?(Tenant)
25
+ namespace ||= :effective
23
26
 
24
- if namespace
25
- @config[namespace] ||= ActiveSupport::OrderedOptions.new
26
- end
27
+ @config[namespace] ||= ActiveSupport::OrderedOptions.new
27
28
 
28
29
  yield(config(namespace))
29
30
 
@@ -1,3 +1,3 @@
1
1
  module EffectiveResources
2
- VERSION = '1.8.35'.freeze
2
+ VERSION = '1.9.0'.freeze
3
3
  end
@@ -64,4 +64,36 @@ module EffectiveResources
64
64
  date.wday != 0 && date.wday != 6 && Holidays.on(date, *holidays).blank?
65
65
  end
66
66
 
67
+ # https://stackoverflow.com/questions/66103388/attach-activestorage-blob-with-a-different-filename
68
+ def self.clone_blob(blob, options = {})
69
+ raise('expected an ActiveStorage::Blob') unless blob.kind_of?(ActiveStorage::Blob)
70
+
71
+ atts = {
72
+ filename: blob.filename,
73
+ byte_size: blob.byte_size,
74
+ checksum: blob.checksum,
75
+ content_type: blob.content_type,
76
+ metadata: blob.metadata,
77
+ }.merge(options)
78
+
79
+ service = blob.service
80
+ duplicate = ActiveStorage::Blob.create_before_direct_upload!(**atts)
81
+
82
+ case service.class.name
83
+ when 'ActiveStorage::Service::S3Service'
84
+ bucket = service.bucket
85
+ object = bucket.object(blob.key)
86
+ object.copy_to(bucket.object(duplicate.key))
87
+ when 'ActiveStorage::Service::DiskService'
88
+ path = service.path_for(blob.key)
89
+ duplicate_path = service.path_for(duplicate.key)
90
+ FileUtils.mkdir_p(File.dirname(duplicate_path))
91
+ FileUtils.ln(path, duplicate_path) if File.exists?(path)
92
+ else
93
+ raise "unknown storage service #{service.class.name}"
94
+ end
95
+
96
+ duplicate
97
+ end
98
+
67
99
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: effective_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.8.35
4
+ version: 1.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Code and Effect
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-07 00:00:00.000000000 Z
11
+ date: 2021-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails