Sha256: 4ca7dddcdf28cc104381fa55d591844f3d8441d0cfd886086ed2c0ca4cec4542

Contents?: true

Size: 1.75 KB

Versions: 4

Compression:

Stored size: 1.75 KB

Contents

module Yoda
  module Store
    module Objects
      VALUE_REGEXP = /\A[0-9a-z]/
      MODULE_TAIL_PATTERN = /(?:::(\w+)|^(\w+))$/

      require 'yoda/store/objects/serializable'
      require 'yoda/store/objects/addressable'
      require 'yoda/store/objects/patchable'
      require 'yoda/store/objects/base'
      require 'yoda/store/objects/connected_delegation'
      require 'yoda/store/objects/namespace_object'
      require 'yoda/store/objects/class_object'
      require 'yoda/store/objects/value_object'
      require 'yoda/store/objects/overload'
      require 'yoda/store/objects/meta_class_object'
      require 'yoda/store/objects/method_object'
      require 'yoda/store/objects/merger'
      require 'yoda/store/objects/module_object'
      require 'yoda/store/objects/patch'
      require 'yoda/store/objects/patch_set'
      require 'yoda/store/objects/tag'
      require 'yoda/store/objects/libraries_status'
      require 'yoda/store/objects/library'
      require 'yoda/store/objects/serializable_set'
      require 'yoda/store/objects/map'

      class << self
        # @param hsh [Hash]
        # @param [Addressable, nil]
        def deserialize(hsh)
          case hsh[:type].to_sym
          when :class
            ClassObject.new(hsh)
          when :module
            ModuleObject.new(hsh)
          when :meta_class
            MetaClassObject.new(hsh)
          when :value
            ValueObject.new(hsh)
          when :method
            MethodObject.new(hsh)
          end
        end

        # @param path [Model::Path, String]
        # @return [Array<Path>]
        def lexical_scopes_of(path)
          Model::Path.build(path).parent_paths.map { |name| Model::Path.build(name) } + [Model::Path.new('Object')]
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
yoda-language-server-0.10.1 lib/yoda/store/objects.rb
yoda-language-server-0.10.0 lib/yoda/store/objects.rb
yoda-language-server-0.9.0 lib/yoda/store/objects.rb
yoda-language-server-0.8.0 lib/yoda/store/objects.rb