Sha256: e588683f9d6788df1dc20e157bbbd8fb46b744db736ec7742af009169fc7383b

Contents?: true

Size: 1.27 KB

Versions: 10

Compression:

Stored size: 1.27 KB

Contents

class ProjectDependencies < SimpleDelegator

  def model
    __getobj__
  end

  def platform
    @platform ||= begin
      if dependency_version("rails") then "rails"
      else ""
      end
    end
  end

  def database
    @database = guess_database unless defined?(@database)
    @database
  end

  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

  def dependency_version(dependency)
    spec = locked_gems.specs.find { |spec| spec.name == dependency } if locked_gems
    spec.version if spec
  end

  def can_determine_dependencies?
    !!locked_gems
  end

  def locked_gems
    @locked_gems = lockfile && Bundler::LockfileParser.new(lockfile) unless defined?(@locked_gems)
    @locked_gems
  end

  def lockfile
    return @lockfile if defined?(@lockfile)
    return "" unless repo.exists?

    Houston.benchmark "[project_dependencies.lockfile] #{slug}" do
      @lockfile = read_file("Gemfile.lock", commit: head_sha)
    end
  rescue Houston::Adapters::VersionControl::FileNotFound
    @lockfile = ""
  end

end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
houston-core-0.8.0.pre app/models/project_dependencies.rb
houston-core-0.7.0 app/models/project_dependencies.rb
houston-core-0.7.0.beta4 app/models/project_dependencies.rb
houston-core-0.7.0.beta3 app/models/project_dependencies.rb
houston-core-0.7.0.beta2 app/models/project_dependencies.rb
houston-core-0.7.0.beta app/models/project_dependencies.rb
houston-core-0.6.3 app/models/project_dependencies.rb
houston-core-0.6.2 app/models/project_dependencies.rb
houston-core-0.6.1 app/models/project_dependencies.rb
houston-core-0.6.0 app/models/project_dependencies.rb