dragonfly-google_data_store 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 8337101571429c4c5ec1acc90112cfc87b6966df
4
- data.tar.gz: db0456da93fd94c9cbc1583fa62ef01991d1e256
3
+ metadata.gz: d75919d7b7789fc892325542559247c88865573b
4
+ data.tar.gz: 4b3739a31a44f24982d76b127e62b373d8c706ae
5
5
  SHA512:
6
- metadata.gz: 14ad7713b34bddbb0f58fad2e64c6d6afcb1f402b6fa13ca111ff87a1f3bcf979514ec4ad6591b34bb2bb58e2f08dc2982699a276e7b649bb00e6413170f6345
7
- data.tar.gz: '069fa9982ec35473ace079769f970eaab7fa86335948c21103590f9183a463cf50dcb0f4f14a423bf22d30dcd835ca6a41dc2f74d5d76dce48996d3d95b00eef'
6
+ metadata.gz: 1fb64ee97bd38e947c0e29894972abc4bb3aa9710809b94301199992bb213949d0c20c71f3bdbbc7e09c84995531daf7e8e50a4bda01898ad984537f7ce9cbec
7
+ data.tar.gz: 583f9fba8873961a29db743630e6b09a4067ac22b1f2e5682ede5981054bd13351fad955e3bf5bf7bd2ae766d50f4e7bc4c5cdb4764b6c4b3c0f928d18e713d8
data/README.md CHANGED
@@ -32,7 +32,8 @@ Dragonfly.app.configure do
32
32
  datastore :google,
33
33
  project: 'project-id-here',
34
34
  bucket: 'bucket-name-here',
35
- keyfile: 'path/to/your/key/file.json'
35
+ keyfile: 'path/to/your/key/file.json',
36
+ root_path: 'root/path'
36
37
  end
37
38
  ```
38
39
 
@@ -50,4 +51,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
50
51
  ## License
51
52
 
52
53
  The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
53
-
@@ -4,12 +4,13 @@ require 'google/cloud/storage'
4
4
 
5
5
  module Dragonfly
6
6
  class GoogleDataStore
7
- attr_reader :project, :keyfile, :bucket_name
7
+ attr_reader :project, :keyfile, :bucket_name, :root_path
8
8
 
9
9
  def initialize(opts)
10
10
  @project = opts[:project]
11
11
  @keyfile = opts[:keyfile]
12
12
  @bucket_name = opts[:bucket]
13
+ @root_path = opts[:root_path]
13
14
  end
14
15
 
15
16
  def write(object, opts = {})
@@ -17,26 +18,34 @@ module Dragonfly
17
18
 
18
19
  uid = opts[:path] || Dragonfly::GoogleDataStore.generate_uid
19
20
 
20
- bucket.create_file object.tempfile.path, uid, metadata: object.meta
21
+ bucket.create_file(
22
+ object.tempfile.path,
23
+ full_path(uid),
24
+ metadata: object.meta,
25
+ content_type: object.mime_type
26
+ )
21
27
 
22
28
  uid
23
29
  end
24
30
 
25
31
  def read(uid)
26
- file = bucket.file uid
32
+ file = bucket.file full_path(uid)
33
+
34
+ metadata = file.metadata.dup
35
+ metadata['name'] ||= File.basename(file.name)
36
+
27
37
  content = file.download
28
38
  content.rewind
29
- [
30
- content.read,
31
- file.metadata,
32
- ]
33
- rescue
39
+
40
+ [content.read, metadata]
41
+ rescue StandardError
34
42
  nil
35
43
  end
36
44
 
37
45
  def destroy(uid)
38
- bucket.file(uid).delete
39
- rescue
46
+ file = bucket.file full_path(uid)
47
+ file.delete
48
+ rescue StandardError
40
49
  nil
41
50
  end
42
51
 
@@ -46,6 +55,10 @@ module Dragonfly
46
55
 
47
56
  private
48
57
 
58
+ def full_path(uid)
59
+ File.join *[root_path, uid].compact
60
+ end
61
+
49
62
  def bucket
50
63
  @bucket ||= storage.bucket(bucket_name)
51
64
  end
@@ -1,5 +1,5 @@
1
1
  module Dragonfly
2
2
  class GoogleDataStore
3
- VERSION = "1.0.0"
3
+ VERSION = "1.1.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dragonfly-google_data_store
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Raffael Schmid
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-04-26 00:00:00.000000000 Z
11
+ date: 2019-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dragonfly
@@ -104,7 +104,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
104
104
  version: '0'
105
105
  requirements: []
106
106
  rubyforge_project:
107
- rubygems_version: 2.5.2
107
+ rubygems_version: 2.5.2.3
108
108
  signing_key:
109
109
  specification_version: 4
110
110
  summary: A data store for dragonfly using google cloud