Class: Hashira::Pipeline
- Inherits:
-
Object
- Object
- Hashira::Pipeline
- Defined in:
- lib/hashira/pipeline.rb
Constant Summary collapse
- ANALYZERS =
%i[coupling complexity duplication smells].freeze
- STRUCTURAL =
Hashira::Coupling::Report::RULES.map { it::KIND }.freeze
- SMELLS =
Hashira::Smells::Report::CHECKS.map(&:kind).sort.freeze
Instance Attribute Summary collapse
-
#project ⇒ Object
readonly
Returns the value of attribute project.
Instance Method Summary collapse
- #churn ⇒ Object
- #complexity ⇒ Object
- #duplication ⇒ Object
- #enabled?(analyzer) ⇒ Boolean
- #findings ⇒ Object
- #graph ⇒ Object
- #hotspots ⇒ Object
-
#initialize(project, enabled: ANALYZERS, packaging: :auto) ⇒ Pipeline
constructor
A new instance of Pipeline.
- #smells ⇒ Object
Constructor Details
#initialize(project, enabled: ANALYZERS, packaging: :auto) ⇒ Pipeline
Returns a new instance of Pipeline.
14 15 16 17 18 19 |
# File 'lib/hashira/pipeline.rb', line 14 def initialize(project, enabled: ANALYZERS, packaging: :auto) @project = project @enabled = enabled @trees = project.files.to_h { [it, parse(it)] } @coupling = Hashira::Coupling::Report.new(project, @trees, packaging: settle(packaging)) end |
Instance Attribute Details
#project ⇒ Object (readonly)
Returns the value of attribute project.
21 22 23 |
# File 'lib/hashira/pipeline.rb', line 21 def project @project end |
Instance Method Details
#churn ⇒ Object
41 |
# File 'lib/hashira/pipeline.rb', line 41 def churn = @churn ||= Hashira::Churn.scan |
#complexity ⇒ Object
25 26 27 |
# File 'lib/hashira/pipeline.rb', line 25 def complexity @complexity ||= Hashira::Complexity::Scores.new(@project, @trees) if enabled?(:complexity) end |
#duplication ⇒ Object
29 30 31 |
# File 'lib/hashira/pipeline.rb', line 29 def duplication @duplication ||= Hashira::Duplication::Clones.new(@project, @trees, churn) if enabled?(:duplication) end |
#enabled?(analyzer) ⇒ Boolean
43 |
# File 'lib/hashira/pipeline.rb', line 43 def enabled?(analyzer) = @enabled.include?(analyzer) |
#findings ⇒ Object
45 |
# File 'lib/hashira/pipeline.rb', line 45 def findings = structural + listed(complexity) + listed(duplication) + listed(smells) |
#graph ⇒ Object
23 |
# File 'lib/hashira/pipeline.rb', line 23 def graph = @coupling.graph |