activestorage-nft 0.0.2 → 0.0.6

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
  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