class Argo::Dereferencer
Public Class Methods
new(&block)
click to toggle source
# File lib/argo/dereferencer.rb, line 5 def initialize(&block) @block = block end
Public Instance Methods
dereference(hash)
click to toggle source
# File lib/argo/dereferencer.rb, line 9 def dereference(hash) path = hash.fetch('$ref') fragments = path.split(/\//) unless fragments[0] == '#' raise "Can't dereference non-root-anchored path '#{path}'" end DeferredObject.new { fragments.drop(1).inject(@block.call) { |schema, fragment| schema.schemas.fetch(fragment) } } end
reference?(hash)
click to toggle source
# File lib/argo/dereferencer.rb, line 22 def reference?(hash) hash.key?('$ref') end