saviour 0.4.7 → 0.4.8

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
  SHA1:
3
- metadata.gz: 5936e61e689f63ba357bd92fc4b57e6d97cb48e8
4
- data.tar.gz: cad8d0487163dca1e329e4b0bfd902162d5eb234
3
+ metadata.gz: 709681c9a25bc91c834cdf0d2ad1027fbd64a458
4
+ data.tar.gz: 21ba25beeb98a5aa4ff061f96143896ec7006d5a
5
5
  SHA512:
6
- metadata.gz: ef0ef25467254b34eb00d0103567d469f43c8b72ebec94448b88543f9330999a829c0453f44aa8b1aabc47f220bc79a4e0f26577051c61bcd870d63fdc9773a4
7
- data.tar.gz: 70ec47375eafbf65a8b26fdc89c728aadaceed58e134a0967751592755da1b54bfbf0356743dc8656e8c5858982dcc1e0bf382b4ee17141e527088848687f4d7
6
+ metadata.gz: 4e2f3746a2455e442ae5920f65244eb8ba596ca6a77864e30d4bb24a388ee14fb2bf17c806112071f7c80310bcaee3fb05077484fb1bd97fd83ca6d2a2b95f0d
7
+ data.tar.gz: db8b60ee46c478b21faa237ed688c5a53a8526e022df2962cd8ad162948322ae3aa6c6850af5876d7c5fe4dcb01fe5f442559137a84e8f713bd5927a901b72fa
@@ -7,21 +7,22 @@ module Saviour
7
7
  def initialize(opts = {})
8
8
  @local_prefix = opts[:local_prefix]
9
9
  @public_url_prefix = opts[:public_url_prefix]
10
+ @permissions = opts.fetch(:permissions, 0644)
10
11
  end
11
12
 
12
13
  def write(contents, path)
13
14
  ensure_dir!(path)
14
15
 
15
- ::File.open(real_path(path), "w") do |f|
16
- f.binmode
17
- f.write(contents)
18
- end
16
+ ::File.write real_path(path), contents, mode: "wb"
17
+
18
+ ensure_file_permissions!(path)
19
19
  end
20
20
 
21
21
  def write_from_file(file, path)
22
22
  ensure_dir!(path)
23
23
 
24
24
  FileUtils.cp file.path, real_path(path)
25
+ ensure_file_permissions!(path)
25
26
  end
26
27
 
27
28
  def read_to_file(path, dest_file)
@@ -65,6 +66,10 @@ module Saviour
65
66
 
66
67
  private
67
68
 
69
+ def ensure_file_permissions!(path)
70
+ ::File.chmod @permissions, real_path(path)
71
+ end
72
+
68
73
  def ensure_dir!(path)
69
74
  dir = ::File.dirname(real_path(path))
70
75
  FileUtils.mkdir_p(dir) unless ::File.directory?(dir)
@@ -1,3 +1,3 @@
1
1
  module Saviour
2
- VERSION = "0.4.7"
2
+ VERSION = "0.4.8"
3
3
  end
@@ -36,6 +36,28 @@ describe Saviour::LocalStorage do
36
36
  expect(File.read(path)).to eq contents
37
37
  end
38
38
  end
39
+
40
+ describe "permissions" do
41
+ it "are 0644 by default" do
42
+ file_destination = File.join(@tmpdir, destination_path)
43
+ subject.write "Some contents", destination_path
44
+ expect(File.file?(file_destination)).to be_truthy
45
+
46
+ expect(File.stat(file_destination).mode.to_s(8)).to match /0644$/
47
+ end
48
+
49
+ context do
50
+ subject { Saviour::LocalStorage.new(local_prefix: @tmpdir, permissions: 0600) }
51
+
52
+ it "can be changed by config" do
53
+ file_destination = File.join(@tmpdir, destination_path)
54
+ subject.write "Some contents", destination_path
55
+ expect(File.file?(file_destination)).to be_truthy
56
+
57
+ expect(File.stat(file_destination).mode.to_s(8)).to match /0600$/
58
+ end
59
+ end
60
+ end
39
61
  end
40
62
 
41
63
  describe "#read" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: saviour
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
4
+ version: 0.4.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Roger Campos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-01-09 00:00:00.000000000 Z
11
+ date: 2018-01-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord