Method: JSI::Ptr.from_pointer
- Defined in:
- lib/jsi/ptr.rb
.from_pointer(pointer_string) ⇒ JSI::Ptr
parse a pointer string and instantiate as a JSI::Ptr
JSI::Ptr.from_pointer('/foo')
=> JSI::Ptr["foo"]
JSI::Ptr.from_pointer('/foo~0bar/baz~1qux')
=> JSI::Ptr["foo~bar", "baz/qux"]
88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/jsi/ptr.rb', line 88 def self.from_pointer(pointer_string) pointer_string = pointer_string.to_str if pointer_string[0] == ?/ tokens = pointer_string.split('/', -1).map! do |piece| piece.gsub!('~1', '/') piece.gsub!('~0', '~') piece.freeze end tokens.shift new(tokens.freeze) elsif pointer_string.empty? EMPTY else raise(PointerSyntaxError, "Invalid pointer syntax in #{pointer_string.inspect}: pointer must begin with /") end end |