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



12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/feedx/format.rb', line 12

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

.resolve(name) ⇒ Object



8
9
10
# File 'lib/feedx/format.rb', line 8

def resolve(name)
  _resolve(name) || raise(ArgumentError, "invalid format #{name}")
end