Module: Klee
- Defined in:
- lib/klee.rb,
lib/klee/mcp.rb,
lib/klee/words.rb,
lib/klee/gestalt.rb,
lib/klee/profile.rb,
lib/klee/version.rb,
lib/klee/codebase.rb,
lib/klee/concepts.rb,
lib/klee/patterns.rb,
lib/klee/mcp/server.rb,
lib/klee/mcp/version.rb,
lib/klee/collaborators.rb,
lib/klee/concept_index.rb,
lib/klee/file_analyzer.rb,
lib/klee/collaborator_index.rb,
lib/klee/mcp/path_validator.rb,
lib/klee/mcp/tools/explore_concept.rb,
lib/klee/mcp/tools/codebase_summary.rb,
lib/klee/mcp/tools/find_collaborators.rb,
lib/klee/mcp/tools/discover_vocabulary.rb,
lib/klee/mcp/tools/find_concept_clusters.rb,
lib/klee/mcp/tools/check_naming_consistency.rb,
sig/klee.rbs
Defined Under Namespace
Modules: MCP, Words
Classes: Codebase, CollaboratorIndex, Collaborators, ConceptIndex, Concepts, Error, FileAnalyzer, Gestalt, Patterns, Profile
Constant Summary
collapse
- VERSION =
"1.0.0"
Class Method Summary
collapse
-
.[](object, threshold = 6, patterns: object.respond_to?(:klee_patterns) ? object.klee_patterns : raise(ArgumentError, "You must include patterns to match for #{object.inspect}"), ignored: Class.instance_methods) ⇒ Object
-
.collaborators(const) ⇒ Object
-
.concepts(*method_names, modifiers: []) ⇒ Object
-
.extended(base) ⇒ Object
-
.object_concepts(object, modifiers: []) ⇒ Object
def self.classifier @classifier ||= ClassifierReborn::Bayes.new "Interesting", "Uninteresting" end.
-
.patterns(&block) ⇒ Object
-
.scan(*patterns, ignore: [], threshold: 2, profile: nil) ⇒ Object
Instance Method Summary
collapse
Class Method Details
.[](object, threshold = 6, patterns: object.respond_to?(:klee_patterns) ? object.klee_patterns : raise(ArgumentError, "You must include patterns to match for #{object.inspect}"), ignored: Class.instance_methods) ⇒ Object
48
49
50
51
52
|
# File 'lib/klee.rb', line 48
def self.[](object, threshold = 6,
patterns: object.respond_to?(:klee_patterns) ? object.klee_patterns : raise(ArgumentError, "You must include patterns to match for #{object.inspect}"),
ignored: Class.instance_methods)
Gestalt.new(object, patterns: patterns, ignored: ignored).trace(threshold: threshold)
end
|
.collaborators(const) ⇒ Object
54
55
56
|
# File 'lib/klee.rb', line 54
def self.collaborators(const)
Klee::Collaborators.new(const)
end
|
.concepts(*method_names, modifiers: []) ⇒ Object
31
32
33
|
# File 'lib/klee.rb', line 31
def self.concepts(*method_names, modifiers: [])
Concepts.new(*method_names, modifiers: modifiers)
end
|
.extended(base) ⇒ Object
19
20
21
|
# File 'lib/klee.rb', line 19
def self.extended(base)
base.define_method(:klee_patterns) { self.class.klee_patterns }
end
|
.object_concepts(object, modifiers: []) ⇒ Object
def self.classifier
@classifier ||= ClassifierReborn::Bayes.new "Interesting", "Uninteresting"
end
39
40
41
42
43
44
45
46
|
# File 'lib/klee.rb', line 39
def self.object_concepts(object, modifiers: [])
names = if object.respond_to?(:public_instance_methods)
object.public_instance_methods(false)
else
object.public_methods(false)
end
concepts(*names, modifiers: modifiers)
end
|
.patterns(&block) ⇒ Object
27
28
29
|
# File 'lib/klee.rb', line 27
def self.patterns(&block)
Patterns.new(&block)
end
|
.scan(*patterns, ignore: [], threshold: 2, profile: nil) ⇒ Object
58
59
60
61
|
# File 'lib/klee.rb', line 58
def self.scan(*patterns, ignore: [], threshold: 2, profile: nil)
spec = Profile.resolve(profile, patterns: patterns, ignore: ignore, threshold: threshold)
Codebase.new(*spec[:patterns], ignore: spec[:ignore], threshold: spec[:threshold])
end
|
Instance Method Details
#klee_patterns(&block) ⇒ Object
23
24
25
|
# File 'lib/klee.rb', line 23
def klee_patterns(&block)
@klee_patterns ||= Klee.patterns(&block)
end
|