asset_cloud 2.1.0 → 2.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.md +4 -0
- data/asset_cloud.gemspec +1 -1
- data/lib/asset_cloud/base.rb +19 -1
- data/spec/base_spec.rb +70 -0
- metadata +25 -3
- metadata.gz.sig +2 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e9519f3cbd8f6ae164aafbbb96052e36eddf225
|
4
|
+
data.tar.gz: 887d20cd493e498d371e51e827118daa19a01f0e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bdaa546e8d1bd72f68b16456aa490ab15acb166c0655c8f8d78748e4ba428029af55275e3bbbfdd689d21c5f12490e793d03d86c02a6d84fffcfb750ccf2f873
|
7
|
+
data.tar.gz: 48e53d85b4d4681524d98a6701b7a2420d316d25b925f42da7d29c6dfa52c2ad7725662e457a3c384bfb2bf28b84694d7340ed95d67f1285a7652f7f2d7a9402
|
checksums.yaml.gz.sig
ADDED
Binary file
|
data.tar.gz.sig
ADDED
Binary file
|
data/History.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
# Asset Cloud Version History
|
2
2
|
|
3
|
+
## Version 2.2.0, 2015-03-17
|
4
|
+
|
5
|
+
* Reduce the limitations on filenames so as not to catch valid filenames. (https://github.com/Shopify/asset_cloud/pull/12)
|
6
|
+
|
3
7
|
## Version 2.1.0, 2015-03-03
|
4
8
|
|
5
9
|
* Add support for S3 assests https://github.com/Shopify/asset_cloud/pull/7
|
data/asset_cloud.gemspec
CHANGED
data/lib/asset_cloud/base.rb
CHANGED
@@ -9,7 +9,25 @@ module AssetCloud
|
|
9
9
|
class Base
|
10
10
|
cattr_accessor :logger
|
11
11
|
|
12
|
-
VALID_PATHS = /\A
|
12
|
+
VALID_PATHS = /\A
|
13
|
+
(
|
14
|
+
(\w) #Filename can be a single letter or underscore
|
15
|
+
| #OR it is many and follows the below rules
|
16
|
+
(
|
17
|
+
(\.?[\w\[\]\(\)\-\@]) #It can start with a dot but it must have a following character
|
18
|
+
(
|
19
|
+
[\w\[\]\(\)\-\@] #You can have a letter without any following conditions
|
20
|
+
|
|
21
|
+
[\ ][\w\[\]\(\)\-\@\.] #If there is a space you need to have a normal letter afterward or a dot
|
22
|
+
|
|
23
|
+
[\/][\w\[\]\(\)\-\@] #If there is a slash you need to have a normal letter afterward
|
24
|
+
|
|
25
|
+
[\/][\.][\w\[\]\(\)\-\@] #Though a slash could be followed by a dot so long as there is a normal letter afterward
|
26
|
+
|
|
27
|
+
[\.]+[\w\[\]\(\)\-\@]+ #One or more dots must be followed by one (or more) normal letters
|
28
|
+
)* #Zero to many of these combinations.
|
29
|
+
)
|
30
|
+
)\z/x
|
13
31
|
MATCH_BUCKET = /^(\w+)(\/|$)/
|
14
32
|
|
15
33
|
attr_accessor :url, :root
|
data/spec/base_spec.rb
CHANGED
@@ -42,8 +42,78 @@ describe BasicCloud do
|
|
42
42
|
lambda { @fs['./test'] }.should raise_error(AssetCloud::IllegalPath)
|
43
43
|
end
|
44
44
|
|
45
|
+
it "should raise error when filename has trailing period" do
|
46
|
+
lambda { @fs['test.'] }.should raise_error(AssetCloud::IllegalPath)
|
47
|
+
lambda { @fs['/test/testfile.'] }.should raise_error(AssetCloud::IllegalPath)
|
48
|
+
lambda { @fs['test/directory/.'] }.should raise_error(AssetCloud::IllegalPath)
|
49
|
+
lambda { @fs['/test/testfile .'] }.should raise_error(AssetCloud::IllegalPath)
|
50
|
+
lambda { @fs['test/directory /.'] }.should raise_error(AssetCloud::IllegalPath)
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should raise error when filename ends with space" do
|
54
|
+
lambda { @fs['test '] }.should raise_error(AssetCloud::IllegalPath)
|
55
|
+
lambda { @fs['/test/testfile '] }.should raise_error(AssetCloud::IllegalPath)
|
56
|
+
lambda { @fs['test/directory/ '] }.should raise_error(AssetCloud::IllegalPath)
|
57
|
+
lambda { @fs['test. '] }.should raise_error(AssetCloud::IllegalPath)
|
58
|
+
lambda { @fs['/test/testfile. '] }.should raise_error(AssetCloud::IllegalPath)
|
59
|
+
lambda { @fs['test/directory/. '] }.should raise_error(AssetCloud::IllegalPath)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should raise error when filename ends with slash" do
|
63
|
+
lambda { @fs['test/'] }.should raise_error(AssetCloud::IllegalPath)
|
64
|
+
lambda { @fs['test/directory/'] }.should raise_error(AssetCloud::IllegalPath)
|
65
|
+
lambda { @fs['test /'] }.should raise_error(AssetCloud::IllegalPath)
|
66
|
+
lambda { @fs['/test/testfile /'] }.should raise_error(AssetCloud::IllegalPath)
|
67
|
+
lambda { @fs['test/directory//'] }.should raise_error(AssetCloud::IllegalPath)
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should raise error when using with minus relative even after another directory" do
|
71
|
+
lambda { @fs['test/../test'] }.should raise_error(AssetCloud::IllegalPath)
|
72
|
+
lambda { @fs['test/../../test'] }.should raise_error(AssetCloud::IllegalPath)
|
73
|
+
lambda { @fs['test/../../../test']}.should raise_error(AssetCloud::IllegalPath)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should raise an error when using names with combinations of '.' and ' '" do
|
77
|
+
lambda { @fs['test. . . .. ... .. . '] }.should raise_error(AssetCloud::IllegalPath)
|
78
|
+
lambda { @fs['test. .'] }.should raise_error(AssetCloud::IllegalPath)
|
79
|
+
lambda { @fs['test. .test2'] }.should raise_error(AssetCloud::IllegalPath)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should allow filenames with repeating dots" do
|
83
|
+
@fs['test..jpg']
|
84
|
+
@fs['assets/T.T..jpg']
|
85
|
+
@fs['test/assets/1234123412341234_obj_description..14...58......v8...._2134123412341234.jpg']
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should allow filenames with repeating underscores" do
|
89
|
+
@fs['test__jpg']
|
90
|
+
@fs['assets/T__T..jpg']
|
91
|
+
@fs['test/assets/1234123412341234_obj_description..14...58......v8...__2134123412341234.jpg']
|
92
|
+
end
|
93
|
+
|
94
|
+
it "should allow filenames with various bracket arragements" do
|
95
|
+
@fs['test[1].jpg']
|
96
|
+
@fs['test[1]']
|
97
|
+
@fs['[test].jpg']
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should not raise an error when using directory names with spaces" do
|
101
|
+
@fs['files/ass ets/.DS_Store']
|
102
|
+
end
|
103
|
+
|
104
|
+
it "should not raise_error when using unusual but valid filenames" do
|
105
|
+
@fs['.DS_Store']
|
106
|
+
@fs['photograph.g']
|
107
|
+
@fs['_testfilename']
|
108
|
+
@fs['assets/.DS_Store']
|
109
|
+
@fs['assets/photograph.g']
|
110
|
+
@fs['a/_testfilename']
|
111
|
+
@fs['a']
|
112
|
+
end
|
113
|
+
|
45
114
|
it "should allow sensible relative filenames" do
|
46
115
|
@fs['assets/rails_logo.gif']
|
116
|
+
@fs['assets/rails_logo']
|
47
117
|
@fs['assets/rails-2.gif']
|
48
118
|
@fs['assets/223434.gif']
|
49
119
|
@fs['files/1.JPG']
|
metadata
CHANGED
@@ -1,14 +1,36 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: asset_cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
|
10
|
+
cert_chain:
|
11
|
+
- |
|
12
|
+
-----BEGIN CERTIFICATE-----
|
13
|
+
MIIDcDCCAligAwIBAgIBATANBgkqhkiG9w0BAQUFADA/MQ8wDQYDVQQDDAZhZG1p
|
14
|
+
bnMxFzAVBgoJkiaJk/IsZAEZFgdzaG9waWZ5MRMwEQYKCZImiZPyLGQBGRYDY29t
|
15
|
+
MB4XDTE0MDUxNTIwMzM0OFoXDTE1MDUxNTIwMzM0OFowPzEPMA0GA1UEAwwGYWRt
|
16
|
+
aW5zMRcwFQYKCZImiZPyLGQBGRYHc2hvcGlmeTETMBEGCgmSJomT8ixkARkWA2Nv
|
17
|
+
bTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL0/81O3e1vh5smcwp2G
|
18
|
+
MpLQ6q0kejQLa65bPYPxdzWA1SYOKyGfw+yR9LdFzsuKpwWzKq6zX35lj1IckWS4
|
19
|
+
bNBEQzxmufUxU0XPM02haFB8fOfDJzdXsWte9Ge4IFwahwn68gpMqN+BvxL+KMYz
|
20
|
+
Iut9YmN44d4LZdsENEIO5vmybuG2vYDz7R56qB0PA+Q2P2CdhymsBad2DQs69FBo
|
21
|
+
uico9V6VMYYctL9lCYdzu9IXrOYNTt88suKIVzzAlHOKeN0Ng5qdztFoTR8sfxDr
|
22
|
+
Ydg3KHl5n47wlpgd8R0f/4b5gGxW+v9pyJCgQnLlRu7DedVSvv7+GMtj3g9r3nhJ
|
23
|
+
KqECAwEAAaN3MHUwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFI/o
|
24
|
+
maf34HXbUOQsdoLHacEKQgunMB0GA1UdEQQWMBSBEmFkbWluc0BzaG9waWZ5LmNv
|
25
|
+
bTAdBgNVHRIEFjAUgRJhZG1pbnNAc2hvcGlmeS5jb20wDQYJKoZIhvcNAQEFBQAD
|
26
|
+
ggEBADkK9aj5T0HPExsov4EoMWFnO+G7RQ28C30VAfKxnL2UxG6i4XMHVs6Xi94h
|
27
|
+
qXFw1ec9Y2eDUqaolT3bviOk9BB197+A8Vz/k7MC6ci2NE+yDDB7HAC8zU6LAx8Y
|
28
|
+
Iqvw7B/PSZ/pz4bUVFlTATif4mi1vO3lidRkdHRtM7UePSn2rUpOi0gtXBP3bLu5
|
29
|
+
YjHJN7wx5cugMEyroKITG5gL0Nxtu21qtOlHX4Hc4KdE2JqzCPOsS4zsZGhgwhPs
|
30
|
+
fl3hbtVFTqbOlwL9vy1fudXcolIE/ZTcxQ+er07ZFZdKCXayR9PPs64heamfn0fp
|
31
|
+
TConQSX2BnZdhIEYW+cKzEC/bLc=
|
32
|
+
-----END CERTIFICATE-----
|
33
|
+
date: 2015-03-17 00:00:00.000000000 Z
|
12
34
|
dependencies:
|
13
35
|
- !ruby/object:Gem::Dependency
|
14
36
|
name: activesupport
|
metadata.gz.sig
ADDED