Module: Lowkey

Defined in:
lib/lowkey.rb,
lib/version.rb,
lib/models/source.rb,
lib/queries/query.rb,
lib/maps/parent_map.rb,
lib/interfaces/proxy.rb,
lib/visitors/visitor.rb,
lib/interfaces/adapter.rb,
lib/proxies/body_proxy.rb,
lib/proxies/file_proxy.rb,
lib/proxies/class_proxy.rb,
lib/proxies/param_proxy.rb,
lib/proxies/method_proxy.rb,
lib/proxies/module_proxy.rb,
lib/proxies/return_proxy.rb,
lib/visitors/class_visitor.rb,
lib/adapters/adapter_loader.rb,
lib/factories/proxy_factory.rb,
lib/visitors/module_visitor.rb,
lib/adapters/sinatra_adapter.rb,
lib/factories/source_factory.rb,
lib/visitors/method_def_visitor.rb,
lib/visitors/method_call_visitor.rb

Defined Under Namespace

Modules: Query Classes: Adapter, AdapterLoader, BodyProxy, ClassProxy, ClassVisitor, FileProxy, MethodCallVisitor, MethodDefVisitor, MethodProxy, ModuleProxy, ModuleVisitor, ParamProxy, ParentMap, Proxy, ProxyFactory, ReturnProxy, SinatraAdapter, Source, SourceFactory, Visitor, WriteError

Constant Summary collapse

VERSION =
'0.4.3'

Class Method Summary collapse

Class Method Details

.[](key) ⇒ Object



17
18
19
# File 'lib/lowkey.rb', line 17

def [](key)
  keys[key]
end

.clearObject



39
40
41
# File 'lib/lowkey.rb', line 39

def clear
  keys.clear
end

.configObject



43
44
45
46
# File 'lib/lowkey.rb', line 43

def config
  config = Struct.new(:cache)
  @config ||= config.new(true)
end

.configure {|config| ... } ⇒ Object

Yields:



48
49
50
# File 'lib/lowkey.rb', line 48

def configure
  yield(config)
end

.keysObject



13
14
15
# File 'lib/lowkey.rb', line 13

def keys
  @keys ||= {}
end

.load(file_path, cache: true) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/lowkey.rb', line 21

def load(file_path, cache: true)
  root_node = Prism.parse_file(file_path).value
  file_proxy = ProxyFactory.file_proxy(root_node:, file_path:)

  parent_map = ParentMap.new(root_node:)
  visitor = Visitor.new(file_proxy:, parent_map:)
  root_node.accept(visitor)

  AdapterLoader.load(file_proxy:)

  if Lowkey.config.cache && cache
    map_file_path(file_proxy:)
    map_definitions(file_proxy:)
  end

  file_proxy
end