bibliotech 0.2.7 → 0.2.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/bibliotech/builders/database.rb +1 -1
- data/lib/bibliotech/builders/file.rb +2 -7
- data/lib/bibliotech/builders.rb +42 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b70db645dc570547b493dda820ee2de92ea533f5
|
4
|
+
data.tar.gz: 0173bfc09213a275f488c02157b15a31eefec375
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9f20dfa5184e4e2e7c2858ce1f39eb74e3b4555f9b8d49b79be864a4fdbebb3a7e551874a1e00985584c9fdab8c9afee88a173bc7ee08d917c9830f8b8abb830
|
7
|
+
data.tar.gz: 1174441ee8b6f34103df557508bfe4b066a336553f8c3f9705fdd5ee1c57ec81a6e7f3ad9cf86a5e67fee667d1d35ac5719d9111715d0d4d05094cd2f0ce0282
|
@@ -4,7 +4,7 @@ module BiblioTech
|
|
4
4
|
module Builders
|
5
5
|
class Database < Base
|
6
6
|
def self.find_class(config)
|
7
|
-
adapter_registry.fetch(config.adapter) do
|
7
|
+
adapter_registry.fetch(config.adapter.to_s) do
|
8
8
|
raise "config.adapter is #{config.adapter.inspect} - supported adapters are #{supported_adapters.join(", ")}"
|
9
9
|
end
|
10
10
|
end
|
@@ -4,16 +4,11 @@ module BiblioTech
|
|
4
4
|
module Builders
|
5
5
|
class File < Base
|
6
6
|
def self.find_class(config)
|
7
|
-
file = config.backup_file
|
8
|
-
|
9
7
|
explicit = find_explicit(config)
|
10
8
|
return explicit unless explicit.nil?
|
11
9
|
|
12
|
-
|
13
|
-
|
14
|
-
file =~ pattern
|
15
|
-
}
|
16
|
-
klass || identity_adapter
|
10
|
+
file = config.backup_file
|
11
|
+
adapter_registry.fetch(file){ identity_adapter }
|
17
12
|
rescue Config::MissingConfig
|
18
13
|
return NullAdapter
|
19
14
|
end
|
data/lib/bibliotech/builders.rb
CHANGED
@@ -2,9 +2,49 @@ module BiblioTech
|
|
2
2
|
module Builders
|
3
3
|
class Base
|
4
4
|
include Caliph::CommandLineDSL
|
5
|
+
|
6
|
+
class AdapterRegistry
|
7
|
+
def initialize
|
8
|
+
@hash = {}
|
9
|
+
@has_regexp = false
|
10
|
+
end
|
11
|
+
|
12
|
+
def put(name, value)
|
13
|
+
if name.is_a?(Regexp)
|
14
|
+
@has_regexp = true
|
15
|
+
else
|
16
|
+
name = name.to_s
|
17
|
+
end
|
18
|
+
@hash[name] = value
|
19
|
+
end
|
20
|
+
|
21
|
+
def fetch(name)
|
22
|
+
@hash.fetch(name.to_s) do
|
23
|
+
klass = nil
|
24
|
+
if @has_regexp
|
25
|
+
_, klass = @hash.find{ |pattern, klass|
|
26
|
+
next unless pattern.is_a? Regexp
|
27
|
+
name =~ pattern
|
28
|
+
}
|
29
|
+
end
|
30
|
+
|
31
|
+
if klass.nil?
|
32
|
+
if block_given?
|
33
|
+
yield
|
34
|
+
else
|
35
|
+
raise KeyError, "No adapter registered for #{name} - try #{@hash.keys.join(", ")}"
|
36
|
+
end
|
37
|
+
else
|
38
|
+
klass
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
5
44
|
class << self
|
45
|
+
|
6
46
|
def register(adapter_name)
|
7
|
-
adapter_registry
|
47
|
+
adapter_registry.put(adapter_name, self)
|
8
48
|
end
|
9
49
|
|
10
50
|
def adapter_registry
|
@@ -12,7 +52,7 @@ module BiblioTech
|
|
12
52
|
end
|
13
53
|
|
14
54
|
def registry
|
15
|
-
@registry ||=
|
55
|
+
@registry ||= AdapterRegistry.new
|
16
56
|
end
|
17
57
|
|
18
58
|
def supported_adapters
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bibliotech
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Dorn
|
@@ -128,7 +128,7 @@ rdoc_options:
|
|
128
128
|
- --main
|
129
129
|
- doc/README
|
130
130
|
- --title
|
131
|
-
- bibliotech-0.2.
|
131
|
+
- bibliotech-0.2.8 Documentation
|
132
132
|
require_paths:
|
133
133
|
- lib/
|
134
134
|
required_ruby_version: !ruby/object:Gem::Requirement
|