bfs 0.7.3 → 0.7.4

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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/bfs.rb +15 -0
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6195cd2787fbdb31ce0b8af2eb251effe1b7e3389f9932c5d33162b608b76d03
4
- data.tar.gz: 22e24de8c867056c68beb0d49672400915dd4247660430e0a21bdf5b132dbdbe
3
+ metadata.gz: c790272a036559149178dadb5932e424a90bbc535f842a298516457051912310
4
+ data.tar.gz: 9f673793872f84f34f4cd95fb396cac88d44d7fc338ac20888149303584790f1
5
5
  SHA512:
6
- metadata.gz: 17810380ac6d3452247c63057bc06e11c5d0e831afff661638c09be8f9ea0c3ec586b39d563b46a059d979c66a1752699f2633a01d2ea8ae47357c8fbd7d2f2a
7
- data.tar.gz: 9843329935c5561d2df1ac6e957168a68ce2d76033541e34288e7b6f7da898a1ca64da63508d3d79cfc9922d899958a86423056557c9159fde086cb003be5fd4
6
+ metadata.gz: 53547ee9f745695a72196d8eb3d9b09054ea2d6cc106993bce0fe22d563e31cb67f450edc28424de2d9aa6b7f72126235dcd5a31c179b5c15c27ed739da21214
7
+ data.tar.gz: b6e0927840f82b058d2662e8b29e33fe9a6697b4219cf451c0ce49cb778e79070ce684ab8bc37e4f9dd2756898275fa872cd29d3dd20e175487649a216794f5b
data/lib/bfs.rb CHANGED
@@ -4,6 +4,8 @@ require 'cgi'
4
4
  module BFS
5
5
  class FileInfo < Hash
6
6
  def initialize(**attrs)
7
+ super(nil)
8
+
7
9
  update(size: 0, mtime: Time.at(0), mode: 0, metadata: {})
8
10
  update(attrs)
9
11
  end
@@ -36,10 +38,23 @@ module BFS
36
38
  def self.register(*schemes, &resolver)
37
39
  @registry ||= {}
38
40
  schemes.each do |scheme|
41
+ scheme = scheme.to_s
42
+ raise(ArgumentError, "scheme #{scheme} is already registered") if @registry.key?(scheme)
43
+
39
44
  @registry[scheme] = resolver
40
45
  end
41
46
  end
42
47
 
48
+ def self.unregister(*schemes)
49
+ @registry ||= {}
50
+ schemes.each do |scheme|
51
+ scheme = scheme.to_s
52
+ raise(ArgumentError, "scheme #{scheme} is not registered") unless @registry.key?(scheme)
53
+
54
+ @registry.delete(scheme)
55
+ end
56
+ end
57
+
43
58
  def self.resolve(url, &block)
44
59
  url = url.is_a?(::URI) ? url.dup : URI.parse(url)
45
60
  rsl = @registry[url.scheme]
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bfs
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.3
4
+ version: 0.7.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dimitrij Denissenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-10 00:00:00.000000000 Z
11
+ date: 2020-10-26 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Minimalist abstraction for bucket storage
14
14
  email: dimitrij@blacksquaremedia.com
@@ -51,7 +51,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
51
51
  - !ruby/object:Gem::Version
52
52
  version: '0'
53
53
  requirements: []
54
- rubygems_version: 3.1.4
54
+ rubygems_version: 3.1.2
55
55
  signing_key:
56
56
  specification_version: 4
57
57
  summary: Multi-platform cloud bucket adapter