Class: Yoda::Store::Query::FindConstant
- Inherits:
-
Base
- Object
- Base
- Yoda::Store::Query::FindConstant
show all
- Defined in:
- lib/yoda/store/query/find_constant.rb
Instance Attribute Summary
Attributes inherited from Base
#registry
Instance Method Summary
collapse
Methods inherited from Base
#initialize
Instance Method Details
7
8
9
10
11
12
13
|
# File 'lib/yoda/store/query/find_constant.rb', line 7
def find(path)
lexical_scope_paths = lexical_scopes_of(path)
base_name, *constant_names = path_of(path).split
base_namespace = select_base_namespace(base_name, lexical_scope_paths).first
find_constant(constant_names.join('::'), base_namespace)
end
|
#select_with_prefix(path) ⇒ Array<Objects::Base>
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/yoda/store/query/find_constant.rb', line 17
def select_with_prefix(path)
lexical_scope_paths = lexical_scopes_of(path)
base_name, *constant_names, bottom_name = path_of(path).split
if constant_names.empty? && !bottom_name
select_base_namespace(/\A#{Regexp.escape(base_name || '')}/, lexical_scope_paths).to_a.uniq
else
base_namespace = select_base_namespace(base_name, lexical_scope_paths).first
scope = find_constant(constant_names.join('::'), base_namespace)
return [] unless scope
select_constants_from_ancestors(scope, /\A#{bottom_name}/).to_a
end
end
|