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) + [Hashira::Smells::BoundarySprawl::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.
16 17 18 19 20 21 |
# File 'lib/hashira/pipeline.rb', line 16 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.
23 24 25 |
# File 'lib/hashira/pipeline.rb', line 23 def project @project end |
Instance Method Details
#churn ⇒ Object
43 |
# File 'lib/hashira/pipeline.rb', line 43 def churn = @churn ||= Hashira::Churn.scan |
#complexity ⇒ Object
27 28 29 |
# File 'lib/hashira/pipeline.rb', line 27 def complexity @complexity ||= Hashira::Complexity::Scores.new(@project, @trees) if enabled?(:complexity) end |
#duplication ⇒ Object
31 32 33 |
# File 'lib/hashira/pipeline.rb', line 31 def duplication @duplication ||= Hashira::Duplication::Clones.new(@project, @trees, churn) if enabled?(:duplication) end |
#enabled?(analyzer) ⇒ Boolean
45 |
# File 'lib/hashira/pipeline.rb', line 45 def enabled?(analyzer) = @enabled.include?(analyzer) |
#findings ⇒ Object
47 |
# File 'lib/hashira/pipeline.rb', line 47 def findings = structural + listed(complexity) + listed(duplication) + listed(smells) |
#graph ⇒ Object
25 |
# File 'lib/hashira/pipeline.rb', line 25 def graph = @coupling.graph |