Class: ProjectDependencies
- Inherits:
-
SimpleDelegator
- Object
- SimpleDelegator
- ProjectDependencies
- Defined in:
- app/models/project_dependencies.rb
Instance Method Summary collapse
- #can_determine_dependencies? ⇒ Boolean
- #database ⇒ Object
- #dependency_version(dependency) ⇒ Object
- #guess_database ⇒ Object
- #locked_gems ⇒ Object
- #lockfile ⇒ Object
- #model ⇒ Object
- #platform ⇒ Object
Instance Method Details
#can_determine_dependencies? ⇒ Boolean
34 35 36 |
# File 'app/models/project_dependencies.rb', line 34 def can_determine_dependencies? !!locked_gems end |
#database ⇒ Object
15 16 17 18 |
# File 'app/models/project_dependencies.rb', line 15 def database @database = guess_database unless defined?(@database) @database end |
#dependency_version(dependency) ⇒ Object
29 30 31 32 |
# File 'app/models/project_dependencies.rb', line 29 def dependency_version(dependency) spec = locked_gems.specs.find { |spec| spec.name == dependency } if locked_gems spec.version if spec end |
#guess_database ⇒ Object
20 21 22 23 24 25 26 27 |
# File 'app/models/project_dependencies.rb', line 20 def guess_database return nil unless can_determine_dependencies? return "Postgres" if dependency_version("pg") return "MySQL" if dependency_version("mysql") || dependency_version("mysql2") return "SQLite" if dependency_version("sqlite3") return "MongoDB" if dependency_version("mongoid") "None" end |
#locked_gems ⇒ Object
38 39 40 41 |
# File 'app/models/project_dependencies.rb', line 38 def locked_gems @locked_gems = lockfile && Bundler::LockfileParser.new(lockfile) unless defined?(@locked_gems) @locked_gems end |
#lockfile ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'app/models/project_dependencies.rb', line 43 def lockfile return "" if repo.nil? @lockfile = read_file("Gemfile.lock", commit: repo.branch("master")) unless defined?(@lockfile) @lockfile rescue Houston::Adapters::VersionControl::FileNotFound @lockfile = "" end |
#model ⇒ Object
3 4 5 |
# File 'app/models/project_dependencies.rb', line 3 def model __getobj__ end |
#platform ⇒ Object
7 8 9 10 11 12 13 |
# File 'app/models/project_dependencies.rb', line 7 def platform @platform ||= begin if dependency_version("rails") then "rails" else "" end end end |