Class: Licensed::Sources::Source
- Inherits:
-
Object
- Object
- Licensed::Sources::Source
- Defined in:
- lib/licensed/sources/source.rb
Direct Known Subclasses
Bower, Bundler, Cabal, Composer, Dep, GitSubmodule, Go, Gradle, Manifest, Mix, NPM, Pip, Pipenv
Defined Under Namespace
Classes: DependencyEnumerationNotImplementedError, Error
Class Attribute Summary collapse
-
.sources ⇒ Object
readonly
Returns the value of attribute sources.
Instance Attribute Summary collapse
-
#config ⇒ Object
all sources have a configuration.
Class Method Summary collapse
- .inherited(klass) ⇒ Object
-
.type ⇒ Object
Returns the source name as the snake cased class name.
Instance Method Summary collapse
-
#dependencies ⇒ Object
Returns all dependencies that should be evaluated.
-
#enabled? ⇒ Boolean
Returns whether a source is enabled based on the environment in which licensed is run Defaults to false.
-
#enumerate_dependencies ⇒ Object
Enumerate all source dependencies.
-
#ignored?(dependency) ⇒ Boolean
Returns whether a dependency is ignored in the configuration.
-
#initialize(configuration) ⇒ Source
constructor
A new instance of Source.
Constructor Details
#initialize(configuration) ⇒ Source
Returns a new instance of Source.
35 36 37 |
# File 'lib/licensed/sources/source.rb', line 35 def initialize(configuration) @config = configuration end |
Class Attribute Details
.sources ⇒ Object (readonly)
Returns the value of attribute sources.
15 16 17 |
# File 'lib/licensed/sources/source.rb', line 15 def sources @sources end |
Instance Attribute Details
#config ⇒ Object
all sources have a configuration
33 34 35 |
# File 'lib/licensed/sources/source.rb', line 33 def config @config end |
Class Method Details
.inherited(klass) ⇒ Object
16 17 18 19 20 |
# File 'lib/licensed/sources/source.rb', line 16 def inherited(klass) # add child source classes are defined, # add them to the known sources list (@sources ||= []) << klass end |
.type ⇒ Object
Returns the source name as the snake cased class name
23 24 25 26 27 28 29 |
# File 'lib/licensed/sources/source.rb', line 23 def type self.name.split(/::/) .last .gsub(/([A-Z\d]+)([A-Z][a-z])/, "\\1_\\2".freeze) .gsub(/([a-z\d])([A-Z])/, "\\1_\\2".freeze) .downcase end |
Instance Method Details
#dependencies ⇒ Object
Returns all dependencies that should be evaluated. Excludes ignored dependencies.
47 48 49 |
# File 'lib/licensed/sources/source.rb', line 47 def dependencies cached_dependencies.reject { |d| ignored?(d) } end |
#enabled? ⇒ Boolean
Returns whether a source is enabled based on the environment in which licensed is run Defaults to false.
41 42 43 |
# File 'lib/licensed/sources/source.rb', line 41 def enabled? false end |
#enumerate_dependencies ⇒ Object
Enumerate all source dependencies. Must be implemented by each source class.
52 53 54 |
# File 'lib/licensed/sources/source.rb', line 52 def enumerate_dependencies raise DependencyEnumerationNotImplementedError end |
#ignored?(dependency) ⇒ Boolean
Returns whether a dependency is ignored in the configuration.
57 58 59 |
# File 'lib/licensed/sources/source.rb', line 57 def ignored?(dependency) config.ignored?("type" => self.class.type, "name" => dependency.name) end |