Sha256: 56291b0c54d1236831881224d2ce7b5cb8ccd6cfea52347b161c666ecbd62d31

Contents?: true

Size: 841 Bytes

Versions: 2

Compression:

Stored size: 841 Bytes

Contents

# frozen_string_literal: true

require_relative "path_parser"
require_relative "data_traverser"
require_relative "key_handler"
require_relative "errors"

module DevSuite
  module Utils
    module Data
      module PathAccess
        module PathAccessor
          extend self

          # Get value from nested data
          def get(data, path)
            keys = PathParser.parse(path)
            DataTraverser.fetch(data, keys)
          end

          # Set value in nested data
          def set(data, path, value)
            keys = PathParser.parse(path)
            DataTraverser.assign(data, keys, value)
          end

          # Delete key in nested data
          def delete(data, path)
            keys = PathParser.parse(path)
            DataTraverser.remove(data, keys)
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
dev_suite-0.2.13 lib/dev_suite/utils/data/path_access/path_accessor.rb
dev_suite-0.2.12 lib/dev_suite/utils/data/path_access/path_accessor.rb