Class: Pod::Specification::Linter
- Inherits:
-
Object
- Object
- Pod::Specification::Linter
- Defined in:
- lib/cocoapods-core/specification/linter.rb
Overview
The Linter check specifications for errors and warnings.
It is designed not only to guarantee the formal functionality of a specification, but also to support the maintenance of sources.
Defined Under Namespace
Classes: Result
Instance Attribute Summary collapse
-
#file ⇒ Pathname
readonly
The path of the ‘podspec` file where #spec is defined.
-
#results ⇒ Array<Result>
readonly
All the results generated by the Linter.
-
#spec ⇒ Specification
readonly
The specification to lint.
Instance Method Summary collapse
-
#errors ⇒ Array<Result>
All the errors generated by the Linter.
-
#initialize(spec_or_path) ⇒ Linter
constructor
A new instance of Linter.
- #lint ⇒ Bool
-
#warnings ⇒ Array<Result>
All the warnings generated by the Linter.
Constructor Details
#initialize(spec_or_path) ⇒ Linter
Returns a new instance of Linter.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/cocoapods-core/specification/linter.rb', line 23 def initialize(spec_or_path) if spec_or_path.is_a?(Specification) @spec = spec_or_path @file = @spec.defined_in_file else @file = Pathname.new(spec_or_path) begin @spec = Specification.from_file(@file) rescue Exception => e @spec = nil @raise_message = e. end end end |
Instance Attribute Details
#file ⇒ Pathname (readonly)
Returns the path of the ‘podspec` file where #spec is defined.
18 19 20 |
# File 'lib/cocoapods-core/specification/linter.rb', line 18 def file @file end |
#results ⇒ Array<Result> (readonly)
Returns all the results generated by the Linter.
65 66 67 |
# File 'lib/cocoapods-core/specification/linter.rb', line 65 def results @results end |
#spec ⇒ Specification (readonly)
Returns the specification to lint.
13 14 15 |
# File 'lib/cocoapods-core/specification/linter.rb', line 13 def spec @spec end |
Instance Method Details
#errors ⇒ Array<Result>
Returns all the errors generated by the Linter.
69 70 71 |
# File 'lib/cocoapods-core/specification/linter.rb', line 69 def errors @errors ||= results.select { |r| r.type == :error } end |
#lint ⇒ Bool
43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/cocoapods-core/specification/linter.rb', line 43 def lint @results = [] if spec perform_textual_analysis check_required_root_attributes run_root_validation_hooks perform_all_specs_analysis else error "The specification defined in `#{file}` could not be loaded." \ "\n\n#{@raise_message}" end results.empty? end |
#warnings ⇒ Array<Result>
Returns all the warnings generated by the Linter.
75 76 77 |
# File 'lib/cocoapods-core/specification/linter.rb', line 75 def warnings @warnings ||= results.select { |r| r.type == :warning } end |