activestorage-nft 0.0.2 → 0.0.6

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
  SHA256:
3
- metadata.gz: 7dda2bcfde58be6c1c02fb5f86399ff9d511e450a425627aeafc3c55365e3916
4
- data.tar.gz: 46ef8a1d47ab0d6fcc960ef949fc126fd5b1cc620029d1815ef98ceda973e0fe
3
+ metadata.gz: ab1a36e3bb148bc264d1dd3ab814b245bd3a384af71ac177b2198a037cd53358
4
+ data.tar.gz: 9261e5eaa8b46e8b482ab6dd2cd3c07bf57c0de1d1844526b221b60355a785f0
5
5
  SHA512:
6
- metadata.gz: 3aab4924b91d8e53c5abb59babf7d477b799eb75ae074b4d10ed1f883a45a616be7dc898888335c298101be8a72288b3266cc4ec643fa4ad21cd5deadc5a6654
7
- data.tar.gz: 27f4f2744a24b2b63d89617e5bd9d872b9a8f38c587ca4c7b05c1925c5d1e155efaf650a851f1a31f6fd4a9dba5ceaea31379407453f62ed0204cff656fc6bc5
6
+ metadata.gz: 87af091394323642b27b47c5de5a1e03243a337b1417ed2b9ec1c9bd6601c3de56d4c26368cb8cf90abb5ba082e87afee3b1de00c48c79d06111c85fb21ffe44
7
+ data.tar.gz: 564d0deae594ad96c8b46d02ef446e2379fa86b5a63a62dbabecbff6f691489164ff8f6db455d2ec8bb5f9de195a02182b047e213681eec4093c340d1d1a47e4
data/Gemfile.lock CHANGED
@@ -1,9 +1,8 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- activestorage-nft (0.0.2)
4
+ activestorage-nft (0.0.6)
5
5
  http (~> 4.3)
6
- nft_storage (~> 1.0.0)
7
6
 
8
7
  GEM
9
8
  remote: https://rubygems.org/
@@ -13,8 +12,6 @@ GEM
13
12
  diff-lcs (1.3)
14
13
  domain_name (0.5.20190701)
15
14
  unf (>= 0.0.5, < 1.0.0)
16
- ethon (0.15.0)
17
- ffi (>= 1.15.0)
18
15
  ffi (1.15.4)
19
16
  ffi-compiler (1.0.1)
20
17
  ffi (>= 1.0.0)
@@ -29,8 +26,6 @@ GEM
29
26
  http-form_data (2.3.0)
30
27
  http-parser (1.2.3)
31
28
  ffi-compiler (>= 1.0, < 2.0)
32
- nft_storage (1.0.0)
33
- typhoeus (~> 1.0, >= 1.0.1)
34
29
  public_suffix (4.0.6)
35
30
  rake (12.3.3)
36
31
  rspec (3.9.0)
@@ -46,8 +41,6 @@ GEM
46
41
  diff-lcs (>= 1.2.0, < 2.0)
47
42
  rspec-support (~> 3.9.0)
48
43
  rspec-support (3.9.3)
49
- typhoeus (1.4.0)
50
- ethon (>= 0.9.0)
51
44
  unf (0.1.4)
52
45
  unf_ext
53
46
  unf_ext (0.0.8)
data/README.md CHANGED
@@ -1,9 +1,12 @@
1
1
  # Activestorage::Nft
2
2
 
3
- This gem extends the ActiveStorage::Service with an implementation for
4
- [NFT.storage](https://nft.storage).
3
+ ActiveStorage adapter for [NFT.storage](https://nft.storage).
5
4
 
6
- We use [gateway.pinata.cloud](https://pinata.cloud) as IPFS gateway, because NFT.storage automatically pins all uploads to the pinata.cloud pinning service.
5
+ Uploaded files are automatically pinned on the pinata.cloud IPFS pinning service, courtesey of [Protocol Labs](https://protocol.ai).
6
+
7
+ ## Note on uniqueness
8
+
9
+ When uploading a file that already exists (same content hash), an `ActiveRecord::RecordNotUnique` exception will be raised.
7
10
 
8
11
  ## Installation
9
12
 
@@ -29,5 +29,4 @@ Gem::Specification.new do |spec|
29
29
  spec.require_paths = ["lib"]
30
30
 
31
31
  spec.add_dependency 'http', '~> 4.3'
32
- spec.add_dependency 'nft_storage', '~> 1.0.0'
33
32
  end
@@ -14,8 +14,7 @@ module ActiveStorage
14
14
  def upload(key, io, checksum: nil, **)
15
15
  instrument :upload, key: key, checksum: checksum do
16
16
  cid_key = @client.add io.path
17
-
18
- Blob.find_by_key(key).update key: cid_key
17
+ blob = Blob.find_by_key(key).update!(key: cid_key)
19
18
  end
20
19
  end
21
20
 
@@ -37,6 +36,14 @@ module ActiveStorage
37
36
  end
38
37
  end
39
38
 
39
+ def delete_prefixed(key)
40
+ # haha, no
41
+ end
42
+
43
+ def delete(key)
44
+ # nope
45
+ end
46
+
40
47
  def url(key, content_type: nil, filename: nil, expires_in: nil, disposition: nil)
41
48
  instrument :url, key: key do
42
49
  @client.build_file_url key, filename.to_s
@@ -1,5 +1,5 @@
1
1
  module ActiveStorage
2
2
  module NftService
3
- VERSION = '0.0.2'.freeze
3
+ VERSION = '0.0.6'.freeze
4
4
  end
5
5
  end
data/lib/nft/client.rb CHANGED
@@ -40,6 +40,10 @@ module Nft
40
40
  end
41
41
  end
42
42
 
43
+ def delete(key)
44
+ # haha, no.
45
+ end
46
+
43
47
  def file_exists?(cid)
44
48
  res = @http_client.auth("Bearer #{@api_key}").get(
45
49
  "https://api.nft.storage/check/#{cid}"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: activestorage-nft
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stefan Buhrmester
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-11-13 00:00:00.000000000 Z
11
+ date: 2021-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: http
@@ -24,20 +24,6 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.3'
27
- - !ruby/object:Gem::Dependency
28
- name: nft_storage
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: 1.0.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: 1.0.0
41
27
  description: A ActiveStorage Service
42
28
  email:
43
29
  - stefan@moogical.dev