Skip to content

Commit 278f3f2

Browse files
committed
correct comportement when ActiveStorage::Attached::Many is given as paramter
1 parent 33b762a commit 278f3f2

File tree

6 files changed

+19
-9
lines changed

6 files changed

+19
-9
lines changed

CHANGELOG.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
0,3,1:
2+
- correct comportement when `ActiveStorage::Attached::Many` is given as paramter
13
0.3.0:
24
- correct subfolders creation (and break some methods signature)
35
0.2.0:

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@ git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
55
# Specify your gem's dependencies in active_storage-send_zip.gemspec
66
gemspec
77

8-
gem "rails", "~> 5.2"
8+
gem "rails", "> 5.2"
99

1010
gem "rubyzip", "~> 1.2"

Gemfile.lock

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
active_storage-send_zip (0.2.0)
4+
active_storage-send_zip (0.3.1)
55

66
GEM
77
remote: https://rubygems.org/
@@ -122,9 +122,9 @@ DEPENDENCIES
122122
active_storage-send_zip!
123123
bundler (~> 1.17)
124124
minitest (~> 5.0)
125-
rails (~> 5.2)
125+
rails (> 5.2)
126126
rake (~> 10.0)
127127
rubyzip (~> 1.2)
128128

129129
BUNDLED WITH
130-
1.17.1
130+
1.17.2
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module ActiveStorage
22
module SendZip
33
# The version of this gem
4-
VERSION = '0.3.0'.freeze
4+
VERSION = '0.3.1'.freeze
55
end
66
end

lib/active_storage/send_zip_helper.rb

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,14 @@ module ActiveStorage
99
module SendZipHelper
1010
# Download active storage files on server in a temporary folder
1111
#
12-
# @param files [ActiveStorage::Attached::Many] files to save
12+
# @param files [ActiveStorage::Attached::One|ActiveStorage::Attached::Many|Array|Hash] file(s) to save
1313
# @return [String] folder path of saved files
1414
def self.save_files_on_server(files)
1515
require 'zip'
1616
# get a temporary folder and create it
1717
temp_folder = Dir.mktmpdir 'active_storage-send_zip'
1818

19-
if files.is_a? Array
20-
files.each { |file| save_file_on_server(file, temp_folder) }
21-
elsif files.is_a? Hash
19+
if files.is_a? Hash
2220
filepaths = []
2321

2422
files.each do |subfolder, filesHash|
@@ -27,6 +25,10 @@ def self.save_files_on_server(files)
2725
filepaths << save_file_on_server(f, temp_folder, subfolder: subfolder.to_s)
2826
end
2927
end
28+
elsif files.respond_to? :each
29+
files.each { |file| save_file_on_server(file, temp_folder) }
30+
else
31+
raise ArgumentError, '`files` must be an hash or an iterable object'
3032
end
3133

3234
temp_folder

test/active_storage/send_zip_helper_test.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ def test_it_should_save_files_in_differents_folders
5454
assert_produce_nested_files files, folder_count: 2, files_count: 3
5555
end
5656

57+
def test_it_should_raise_an_exception
58+
assert_raises ArgumentError do
59+
ActiveStorage::SendZipHelper.save_files_on_server 'bad boi'
60+
end
61+
end
62+
5763
def test_it_should_save_files_in_differents_folders_with_root_files
5864
files = {
5965
'folder A' => [

0 commit comments

Comments
 (0)