carrierwave-fuzzy-storage 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 997499d85829b37f722e8778715cb6eaee13cb98
4
+ data.tar.gz: 3199f21cfa34d4acfc6f4e48e69d031a33c301dc
5
+ SHA512:
6
+ metadata.gz: 83bbdf93417a6818196f211e9a1cc6906f783db1adf542379f87efb2e835c97a41f8a11af88550aae2910dfab2f4fe42e893ddd05164702eeb8a4859ddf9ad18
7
+ data.tar.gz: 0ee3e9b2a898e8cdfcbafe104bad22a85c4880e80131c5d811b88cc10b245ca6e2e88928286e00abb7c16f748092a448fe66f18933757cd93dd6c1805d4025b3
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'carrierwave'
4
+
5
+ module CarrierWave::FuzzyStorage; end
6
+
7
+ require 'carrierwave/fuzzy_storage/version'
8
+ require 'carrierwave/fuzzy_storage/active_record_support'
9
+ require 'carrierwave/storage/fuzzy'
@@ -0,0 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CarrierWave
4
+ module FuzzyStorage
5
+ class ActiveRecordSupport < Module
6
+ def initialize(default_storage, *mounted_fields)
7
+ @default_storage = default_storage
8
+ @mounted_fields = mounted_fields.flatten.map(&:to_sym)
9
+ end
10
+
11
+ def included(base)
12
+ storage = @default_storage
13
+ mounted_fields = @mounted_fields
14
+
15
+ mounted_fields.each do |field|
16
+ base.send(:define_method, "#{field}_storage") do
17
+ super() || storage
18
+ end
19
+ end
20
+
21
+ base.before_create do
22
+ mounted_fields.each do |field|
23
+ public_send("#{field}_storage=", storage)
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CarrierWave
4
+ module FuzzyStorage
5
+ VERSION = '0.1.0'
6
+ end
7
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CarrierWave
4
+ module Storage
5
+ class Fuzzy
6
+
7
+ attr_reader :final_storage
8
+
9
+ def initialize(uploader)
10
+ storage = uploader.model.public_send("#{uploader.mounted_as}_storage")
11
+ storage_engine = uploader.storage_engines.fetch(storage.to_sym).constantize
12
+ @final_storage = storage_engine.new(uploader)
13
+ end
14
+
15
+ delegate \
16
+ :cache!,
17
+ :clean_cache!,
18
+ :delete_dir!,
19
+ :identifier,
20
+ :retrieve!,
21
+ :retrieve_from_cache,
22
+ :store!,
23
+ to: :final_storage
24
+ end
25
+ end
26
+ end
metadata ADDED
@@ -0,0 +1,62 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: carrierwave-fuzzy-storage
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Fjord Software
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-10-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: carrierwave
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 0.10.0
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: 0.10.0
27
+ description:
28
+ email:
29
+ - support@fjordsoftware.eu
30
+ executables: []
31
+ extensions: []
32
+ extra_rdoc_files: []
33
+ files:
34
+ - lib/carrierwave-fuzzy-storage.rb
35
+ - lib/carrierwave/fuzzy_storage/active_record_support.rb
36
+ - lib/carrierwave/fuzzy_storage/version.rb
37
+ - lib/carrierwave/storage/fuzzy.rb
38
+ homepage: https://github.com/FjordSoftware/carrierwave-fuzzy-storage
39
+ licenses:
40
+ - BSD-2-Clause
41
+ metadata: {}
42
+ post_install_message:
43
+ rdoc_options: []
44
+ require_paths:
45
+ - lib
46
+ required_ruby_version: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 2.2.2
51
+ required_rubygems_version: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ requirements: []
57
+ rubyforge_project:
58
+ rubygems_version: 2.5.2
59
+ signing_key:
60
+ specification_version: 4
61
+ summary: Fuzzy storage support for carrierwave
62
+ test_files: []