Module: Feedx::Format
- Defined in:
- lib/feedx/format.rb
Defined Under Namespace
Classes: Abstract, JSON, Protobuf
Class Method Summary
collapse
Class Method Details
.detect(path) ⇒ Object
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/feedx/format.rb', line 18
def detect(path)
base = File.basename(path)
loop do
ext = File.extname(base)
raise ArgumentError, 'unable to detect format' if ext.empty?
kind = _resolve(ext[1..-1]) || _resolve(ext[1..-2])
return kind if kind
base = base[0..-ext.size - 1]
end
end
|
.register(ext, kind) ⇒ Object
8
9
10
11
12
|
# File 'lib/feedx/format.rb', line 8
def register(ext, kind)
raise ArgumentError, "#{kind} is not a subclass of Feedx::Format::Abstract" unless kind.is_a?(Class) && kind < Abstract
registry[ext.to_s] = kind
end
|
.resolve(name) ⇒ Object
14
15
16
|
# File 'lib/feedx/format.rb', line 14
def resolve(name)
_resolve(name) || raise(ArgumentError, "invalid format #{name}")
end
|