bundler_dependency_matrix 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
 - data/.gitignore +1 -0
 - data/Gemfile +3 -0
 - data/Gemfile.lock +33 -0
 - data/README.md +31 -0
 - data/bin/bundler_dependency_matrix +22 -0
 - data/bundler_dependency_matrix.gemspec +22 -0
 - data/lib/bundler_dependency_matrix.rb +2 -0
 - data/lib/bundler_dependency_matrix/matrix.rb +47 -0
 - data/lib/bundler_dependency_matrix/project.rb +31 -0
 - data/lib/bundler_dependency_matrix/version.rb +3 -0
 - data/lib/bundler_dependency_matrix/views/console.rb +48 -0
 - data/spec/bundler_dependency_matrix/matrix_spec.rb +120 -0
 - data/spec/bundler_dependency_matrix/project_spec.rb +60 -0
 - data/spec/bundler_dependency_matrix/views/console_spec.rb +28 -0
 - data/spec/bundler_dependency_matrix_spec.rb +77 -0
 - data/spec/spec_helper.rb +17 -0
 - metadata +108 -0
 
    
        checksums.yaml
    ADDED
    
    | 
         @@ -0,0 +1,7 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            ---
         
     | 
| 
      
 2 
     | 
    
         
            +
            SHA1:
         
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 14bffeef020bb03f0fd7c17f700eb82192cf89a5
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: 9a2d23869e8ceb44a51a7dff69e94feb80a4feb4
         
     | 
| 
      
 5 
     | 
    
         
            +
            SHA512:
         
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: bb5b77e16d9b5bed20f94bf87a996163f900b0ee8fd98669002e0e6f67698cc397b04d3fcf33efbd4e6a78762f93907241a4518b99cf794be2c712e8c38fcc7a
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: c1f6d5ff6ff5b8b142b45b7cdeddb744a8d1b37a8fe1b3ec5aecc919f5e9bc031e6352d9cab482f0bc22f0541781f5297d8001d0273a82e5e40eb031a495b34d
         
     | 
    
        data/.gitignore
    ADDED
    
    | 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            spec/tmp
         
     | 
    
        data/Gemfile
    ADDED
    
    
    
        data/Gemfile.lock
    ADDED
    
    | 
         @@ -0,0 +1,33 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            PATH
         
     | 
| 
      
 2 
     | 
    
         
            +
              remote: .
         
     | 
| 
      
 3 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 4 
     | 
    
         
            +
                bundler_dependency_matrix (0.0.0)
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 7 
     | 
    
         
            +
              remote: https://rubygems.org/
         
     | 
| 
      
 8 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 9 
     | 
    
         
            +
                diff-lcs (1.2.5)
         
     | 
| 
      
 10 
     | 
    
         
            +
                rspec (3.4.0)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  rspec-core (~> 3.4.0)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  rspec-expectations (~> 3.4.0)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  rspec-mocks (~> 3.4.0)
         
     | 
| 
      
 14 
     | 
    
         
            +
                rspec-core (3.4.2)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  rspec-support (~> 3.4.0)
         
     | 
| 
      
 16 
     | 
    
         
            +
                rspec-expectations (3.4.0)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  rspec-support (~> 3.4.0)
         
     | 
| 
      
 19 
     | 
    
         
            +
                rspec-mocks (3.4.1)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  rspec-support (~> 3.4.0)
         
     | 
| 
      
 22 
     | 
    
         
            +
                rspec-support (3.4.1)
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 25 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 28 
     | 
    
         
            +
              bundler (~> 1.11.0)
         
     | 
| 
      
 29 
     | 
    
         
            +
              bundler_dependency_matrix!
         
     | 
| 
      
 30 
     | 
    
         
            +
              rspec (~> 3.4.0)
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
            BUNDLED WITH
         
     | 
| 
      
 33 
     | 
    
         
            +
               1.11.2
         
     | 
    
        data/README.md
    ADDED
    
    | 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            # Bundler dependency matrix
         
     | 
| 
      
 2 
     | 
    
         
            +
            Utility which will output a table containing gem versions used across your projects.
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
            
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
            ## Install
         
     | 
| 
      
 7 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 8 
     | 
    
         
            +
            gem install bundler_dependency_matrix
         
     | 
| 
      
 9 
     | 
    
         
            +
            ```
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
      
 11 
     | 
    
         
            +
            ## Usage
         
     | 
| 
      
 12 
     | 
    
         
            +
            Let say that you have a directory `/path/to/root/dir` somewhere in which the Ruby projects `foo` and `bar` could be found.
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
            Executing:
         
     | 
| 
      
 15 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 16 
     | 
    
         
            +
            bundler_dependency_matrix /path/to/root/dir
         
     | 
| 
      
 17 
     | 
    
         
            +
            ```
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
            Should result in:
         
     | 
| 
      
 20 
     | 
    
         
            +
            ```bash
         
     | 
| 
      
 21 
     | 
    
         
            +
                         x             |  bar   |  foo
         
     | 
| 
      
 22 
     | 
    
         
            +
            ---------------------------+--------+--------
         
     | 
| 
      
 23 
     | 
    
         
            +
                     diff-lcs          | 1.2.5  | 1.2.5
         
     | 
| 
      
 24 
     | 
    
         
            +
                       rspec           | 2.0.0  | 3.0.0
         
     | 
| 
      
 25 
     | 
    
         
            +
                    rspec-core         | 2.0.0  | 3.0.4
         
     | 
| 
      
 26 
     | 
    
         
            +
                rspec-expectations     | 2.0.0  | 3.0.4
         
     | 
| 
      
 27 
     | 
    
         
            +
                    rspec-mocks        | 2.0.0  | 3.0.4
         
     | 
| 
      
 28 
     | 
    
         
            +
                       rake            | 10.0.0 | 11.1.0
         
     | 
| 
      
 29 
     | 
    
         
            +
                   rspec-support       |   x    | 3.0.4
         
     | 
| 
      
 30 
     | 
    
         
            +
             bundler_dependency_matrix |   x    |   x
         
     | 
| 
      
 31 
     | 
    
         
            +
            ```
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            #!/usr/bin/env ruby
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'rubygems'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'bundler/setup'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'find'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'bundler_dependency_matrix/project'
         
     | 
| 
      
 6 
     | 
    
         
            +
            require 'bundler_dependency_matrix/matrix'
         
     | 
| 
      
 7 
     | 
    
         
            +
            require 'bundler_dependency_matrix/views/console'
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            ARGV.each do |folder|
         
     | 
| 
      
 10 
     | 
    
         
            +
              matrix = BundlerDependencyMatrix::Matrix.new
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
              Find.find(folder) do |path|
         
     | 
| 
      
 13 
     | 
    
         
            +
                if File.directory?(path) && File.exists?(File.join(path, 'Gemfile.lock'))
         
     | 
| 
      
 14 
     | 
    
         
            +
                  matrix.add_project(BundlerDependencyMatrix::Project.new(path))
         
     | 
| 
      
 15 
     | 
    
         
            +
                  Find.prune
         
     | 
| 
      
 16 
     | 
    
         
            +
                end
         
     | 
| 
      
 17 
     | 
    
         
            +
              end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
              view = BundlerDependencyMatrix::Views::Console.new(matrix.sorted_by_most_used)
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
              view.render
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,22 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            lib = File.expand_path('../lib', __FILE__)
         
     | 
| 
      
 2 
     | 
    
         
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'bundler_dependency_matrix/version'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            Gem::Specification.new do |s|
         
     | 
| 
      
 6 
     | 
    
         
            +
              s.name          = 'bundler_dependency_matrix'
         
     | 
| 
      
 7 
     | 
    
         
            +
              s.version       = BundlerDependencyMatrix::VERSION
         
     | 
| 
      
 8 
     | 
    
         
            +
              s.date          = '2016-03-28'
         
     | 
| 
      
 9 
     | 
    
         
            +
              s.summary       = 'Gem version dependecy matrix'
         
     | 
| 
      
 10 
     | 
    
         
            +
              s.description   = ''
         
     | 
| 
      
 11 
     | 
    
         
            +
              s.authors       = ['Deyan Dobrinov', 'Aleksandar Ivanov']
         
     | 
| 
      
 12 
     | 
    
         
            +
              s.email         = ['deyan.dobrinov@gmail.com', 'aivanov92@gmail.com']
         
     | 
| 
      
 13 
     | 
    
         
            +
              s.files         = `git ls-files -z`.split("\x0")
         
     | 
| 
      
 14 
     | 
    
         
            +
              s.executables   = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
         
     | 
| 
      
 15 
     | 
    
         
            +
              s.test_files    = s.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
      
 16 
     | 
    
         
            +
              s.require_paths = ['lib']
         
     | 
| 
      
 17 
     | 
    
         
            +
              s.homepage      = 'http://github.com/dobrinov/bundler_dependency_matrix'
         
     | 
| 
      
 18 
     | 
    
         
            +
              s.license       = 'MIT'
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
              s.add_development_dependency 'rspec', '~> 3.4', '>= 3.4.0'
         
     | 
| 
      
 21 
     | 
    
         
            +
              s.add_development_dependency 'bundler', '~> 1.11', '>= 1.11.0'
         
     | 
| 
      
 22 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,47 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module BundlerDependencyMatrix
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Matrix
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_reader :projects
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize
         
     | 
| 
      
 6 
     | 
    
         
            +
                  @projects = []
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                def add_project(project)
         
     | 
| 
      
 10 
     | 
    
         
            +
                  @projects << project
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def projects_sorted_by_name
         
     | 
| 
      
 14 
     | 
    
         
            +
                  @projects.sort { |a,b| a.name <=> b.name }
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                def project_names
         
     | 
| 
      
 18 
     | 
    
         
            +
                  projects_sorted_by_name.map(&:name)
         
     | 
| 
      
 19 
     | 
    
         
            +
                end
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                def gem_names
         
     | 
| 
      
 22 
     | 
    
         
            +
                  @projects.map { |p| p.dependency_matrix.keys }.flatten.uniq
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                def sorted_by_most_used
         
     | 
| 
      
 26 
     | 
    
         
            +
                  header = [nil] + project_names
         
     | 
| 
      
 27 
     | 
    
         
            +
             
     | 
| 
      
 28 
     | 
    
         
            +
                  body = gems_by_usage.keys.map do |gem|
         
     | 
| 
      
 29 
     | 
    
         
            +
                    [gem] + projects_sorted_by_name.map { |project| project.dependency_matrix[gem] }
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  [header] + body
         
     | 
| 
      
 33 
     | 
    
         
            +
                end
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                def gems_by_usage
         
     | 
| 
      
 36 
     | 
    
         
            +
                  gem_usage = Hash.new(0)
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  projects.each do |project|
         
     | 
| 
      
 39 
     | 
    
         
            +
                    project.dependency_matrix.each do |gem, _|
         
     | 
| 
      
 40 
     | 
    
         
            +
                      gem_usage[gem] += 1
         
     | 
| 
      
 41 
     | 
    
         
            +
                    end
         
     | 
| 
      
 42 
     | 
    
         
            +
                  end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  gem_usage.sort_by {|key, value| [-value, key] }.to_h
         
     | 
| 
      
 45 
     | 
    
         
            +
                end
         
     | 
| 
      
 46 
     | 
    
         
            +
              end
         
     | 
| 
      
 47 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,31 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module BundlerDependencyMatrix
         
     | 
| 
      
 2 
     | 
    
         
            +
              class Project
         
     | 
| 
      
 3 
     | 
    
         
            +
                attr_reader :path
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
                def initialize(path)
         
     | 
| 
      
 6 
     | 
    
         
            +
                  @path = path
         
     | 
| 
      
 7 
     | 
    
         
            +
                end
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                def name
         
     | 
| 
      
 10 
     | 
    
         
            +
                  File.basename(File.expand_path(path))
         
     | 
| 
      
 11 
     | 
    
         
            +
                end
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                def dependency_matrix
         
     | 
| 
      
 14 
     | 
    
         
            +
                  @dependency_matrix ||= specs.inject(Hash.new) { |h,spec| h.merge!(spec.name.to_s => spec.version.version) }
         
     | 
| 
      
 15 
     | 
    
         
            +
                end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                private
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                def lockfile
         
     | 
| 
      
 20 
     | 
    
         
            +
                  File.join(@path, 'Gemfile.lock')
         
     | 
| 
      
 21 
     | 
    
         
            +
                end
         
     | 
| 
      
 22 
     | 
    
         
            +
             
     | 
| 
      
 23 
     | 
    
         
            +
                def parsed_lockfile
         
     | 
| 
      
 24 
     | 
    
         
            +
                  Bundler::LockfileParser.new(Bundler.read_file(lockfile))
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                def specs
         
     | 
| 
      
 28 
     | 
    
         
            +
                  parsed_lockfile.specs
         
     | 
| 
      
 29 
     | 
    
         
            +
                end
         
     | 
| 
      
 30 
     | 
    
         
            +
              end
         
     | 
| 
      
 31 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,48 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            module BundlerDependencyMatrix
         
     | 
| 
      
 2 
     | 
    
         
            +
              module Views
         
     | 
| 
      
 3 
     | 
    
         
            +
                class Console
         
     | 
| 
      
 4 
     | 
    
         
            +
                  attr_reader :matrix
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
                  def initialize(matrix)
         
     | 
| 
      
 7 
     | 
    
         
            +
                    @matrix = matrix
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                  def render
         
     | 
| 
      
 11 
     | 
    
         
            +
                    puts render_as_string
         
     | 
| 
      
 12 
     | 
    
         
            +
                  end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
                  def render_as_string
         
     | 
| 
      
 15 
     | 
    
         
            +
                    string = []
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
                    string << row_as_string(matrix[0])
         
     | 
| 
      
 18 
     | 
    
         
            +
                    string << column_widths.map { |width| '-' * width }.join('+')
         
     | 
| 
      
 19 
     | 
    
         
            +
             
     | 
| 
      
 20 
     | 
    
         
            +
                    matrix[1..matrix.size].each do |row|
         
     | 
| 
      
 21 
     | 
    
         
            +
                      string << row_as_string(row)
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                    string.join("\n") + "\n"
         
     | 
| 
      
 25 
     | 
    
         
            +
                  end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                  private
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                  def row_as_string(row)
         
     | 
| 
      
 30 
     | 
    
         
            +
                    column_widths.map.with_index { |width, i| (row[i] || 'x').center(width) }.join('|')
         
     | 
| 
      
 31 
     | 
    
         
            +
                  end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  def column_widths
         
     | 
| 
      
 34 
     | 
    
         
            +
                    widths = Array.new(matrix[0].size, 0)
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    matrix.each do |row|
         
     | 
| 
      
 37 
     | 
    
         
            +
                      row.each_with_index do |value, col_i|
         
     | 
| 
      
 38 
     | 
    
         
            +
                        if value && (widths[col_i] < value.size)
         
     | 
| 
      
 39 
     | 
    
         
            +
                          widths[col_i] = value.size
         
     | 
| 
      
 40 
     | 
    
         
            +
                        end
         
     | 
| 
      
 41 
     | 
    
         
            +
                      end
         
     | 
| 
      
 42 
     | 
    
         
            +
                    end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                    widths.map { |width| width + 2 }
         
     | 
| 
      
 45 
     | 
    
         
            +
                  end
         
     | 
| 
      
 46 
     | 
    
         
            +
                end
         
     | 
| 
      
 47 
     | 
    
         
            +
              end
         
     | 
| 
      
 48 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,120 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe BundlerDependencyMatrix::Matrix do
         
     | 
| 
      
 4 
     | 
    
         
            +
              subject(:matrix) { described_class.new }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:project) { [] }
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
              describe '#add_project' do
         
     | 
| 
      
 8 
     | 
    
         
            +
                let(:project) { double(:project) }
         
     | 
| 
      
 9 
     | 
    
         
            +
             
     | 
| 
      
 10 
     | 
    
         
            +
                it 'adds a project' do
         
     | 
| 
      
 11 
     | 
    
         
            +
                  expect do
         
     | 
| 
      
 12 
     | 
    
         
            +
                    matrix.add_project(project)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  end.to change { matrix.projects.count }.by(1)
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
      
 17 
     | 
    
         
            +
              describe '#project_names' do
         
     | 
| 
      
 18 
     | 
    
         
            +
                it 'returns project names' do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  matrix.add_project(double(:project, name: 'foo'))
         
     | 
| 
      
 20 
     | 
    
         
            +
                  matrix.add_project(double(:project, name: 'bar'))
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
                  expect(matrix.project_names).to eq(['bar', 'foo'])
         
     | 
| 
      
 23 
     | 
    
         
            +
                end
         
     | 
| 
      
 24 
     | 
    
         
            +
              end
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
              describe '#gem_names' do
         
     | 
| 
      
 27 
     | 
    
         
            +
                it 'returns gem names' do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  matrix.add_project(double(:project, dependency_matrix: {
         
     | 
| 
      
 29 
     | 
    
         
            +
                    'a' => '1.0.1',
         
     | 
| 
      
 30 
     | 
    
         
            +
                    'b' => '2.0.1',
         
     | 
| 
      
 31 
     | 
    
         
            +
                    'c' => '3.0.1'
         
     | 
| 
      
 32 
     | 
    
         
            +
                  }))
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  matrix.add_project(double(:project, dependency_matrix: {
         
     | 
| 
      
 35 
     | 
    
         
            +
                    'b' => '2.0.2',
         
     | 
| 
      
 36 
     | 
    
         
            +
                    'c' => '3.0.2',
         
     | 
| 
      
 37 
     | 
    
         
            +
                    'd' => '4.0.2'
         
     | 
| 
      
 38 
     | 
    
         
            +
                  }))
         
     | 
| 
      
 39 
     | 
    
         
            +
             
     | 
| 
      
 40 
     | 
    
         
            +
                  expect(matrix.gem_names).to eq(['a', 'b', 'c', 'd'])
         
     | 
| 
      
 41 
     | 
    
         
            +
                end
         
     | 
| 
      
 42 
     | 
    
         
            +
              end
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
              describe '#gems_by_usage' do
         
     | 
| 
      
 45 
     | 
    
         
            +
                before do
         
     | 
| 
      
 46 
     | 
    
         
            +
                  matrix.add_project(double(:project, dependency_matrix: {
         
     | 
| 
      
 47 
     | 
    
         
            +
                    'a' => '1.0.1',
         
     | 
| 
      
 48 
     | 
    
         
            +
                    'b' => '2.0.1',
         
     | 
| 
      
 49 
     | 
    
         
            +
                    'c' => '3.0.1'
         
     | 
| 
      
 50 
     | 
    
         
            +
                  }))
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
                  matrix.add_project(double(:project, dependency_matrix: {
         
     | 
| 
      
 53 
     | 
    
         
            +
                    'b' => '2.0.2',
         
     | 
| 
      
 54 
     | 
    
         
            +
                    'c' => '3.0.2',
         
     | 
| 
      
 55 
     | 
    
         
            +
                    'd' => '4.0.2'
         
     | 
| 
      
 56 
     | 
    
         
            +
                  }))
         
     | 
| 
      
 57 
     | 
    
         
            +
                end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                it 'returns an array' do
         
     | 
| 
      
 60 
     | 
    
         
            +
                  expect(matrix.gems_by_usage).to be_a(Hash)
         
     | 
| 
      
 61 
     | 
    
         
            +
                end
         
     | 
| 
      
 62 
     | 
    
         
            +
             
     | 
| 
      
 63 
     | 
    
         
            +
                it 'returns ordered ' do
         
     | 
| 
      
 64 
     | 
    
         
            +
                  expected_result = {
         
     | 
| 
      
 65 
     | 
    
         
            +
                    "b"=>2,
         
     | 
| 
      
 66 
     | 
    
         
            +
                    "c"=>2,
         
     | 
| 
      
 67 
     | 
    
         
            +
                    "a"=>1,
         
     | 
| 
      
 68 
     | 
    
         
            +
                    "d"=>1
         
     | 
| 
      
 69 
     | 
    
         
            +
                  }
         
     | 
| 
      
 70 
     | 
    
         
            +
             
     | 
| 
      
 71 
     | 
    
         
            +
                  expect(matrix.gems_by_usage).to eq(expected_result)
         
     | 
| 
      
 72 
     | 
    
         
            +
                end
         
     | 
| 
      
 73 
     | 
    
         
            +
              end
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
              describe '#projects_sorted_by_name' do
         
     | 
| 
      
 76 
     | 
    
         
            +
                let(:project_a) { double(:project, name: 'a') }
         
     | 
| 
      
 77 
     | 
    
         
            +
                let(:project_b) { double(:project, name: 'b') }
         
     | 
| 
      
 78 
     | 
    
         
            +
                let(:project_c) { double(:project, name: 'c') }
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                before do
         
     | 
| 
      
 81 
     | 
    
         
            +
                  matrix.add_project(project_b)
         
     | 
| 
      
 82 
     | 
    
         
            +
                  matrix.add_project(project_c)
         
     | 
| 
      
 83 
     | 
    
         
            +
                  matrix.add_project(project_a)
         
     | 
| 
      
 84 
     | 
    
         
            +
                end
         
     | 
| 
      
 85 
     | 
    
         
            +
             
     | 
| 
      
 86 
     | 
    
         
            +
                it 'sorted by name projects' do
         
     | 
| 
      
 87 
     | 
    
         
            +
                  expected_result = [project_a, project_b, project_c].map(&:name)
         
     | 
| 
      
 88 
     | 
    
         
            +
             
     | 
| 
      
 89 
     | 
    
         
            +
                  expect(matrix.projects_sorted_by_name.map(&:name)).to eq(expected_result)
         
     | 
| 
      
 90 
     | 
    
         
            +
                end
         
     | 
| 
      
 91 
     | 
    
         
            +
              end
         
     | 
| 
      
 92 
     | 
    
         
            +
             
     | 
| 
      
 93 
     | 
    
         
            +
              describe '#sorted_by_most_used' do
         
     | 
| 
      
 94 
     | 
    
         
            +
                before do
         
     | 
| 
      
 95 
     | 
    
         
            +
                  matrix.add_project(double(:project, name: 'foo', dependency_matrix: {
         
     | 
| 
      
 96 
     | 
    
         
            +
                    'a' => '1.0.1',
         
     | 
| 
      
 97 
     | 
    
         
            +
                    'b' => '2.0.1',
         
     | 
| 
      
 98 
     | 
    
         
            +
                    'c' => '3.0.1'
         
     | 
| 
      
 99 
     | 
    
         
            +
                  }))
         
     | 
| 
      
 100 
     | 
    
         
            +
             
     | 
| 
      
 101 
     | 
    
         
            +
                  matrix.add_project(double(:project, name: 'bar', dependency_matrix: {
         
     | 
| 
      
 102 
     | 
    
         
            +
                    'b' => '2.0.2',
         
     | 
| 
      
 103 
     | 
    
         
            +
                    'c' => '3.0.2',
         
     | 
| 
      
 104 
     | 
    
         
            +
                    'd' => '4.0.2'
         
     | 
| 
      
 105 
     | 
    
         
            +
                  }))
         
     | 
| 
      
 106 
     | 
    
         
            +
                end
         
     | 
| 
      
 107 
     | 
    
         
            +
             
     | 
| 
      
 108 
     | 
    
         
            +
                it 'returns matrix' do
         
     | 
| 
      
 109 
     | 
    
         
            +
                  expected_result = [
         
     | 
| 
      
 110 
     | 
    
         
            +
                    [ nil, 'bar',   'foo'   ],
         
     | 
| 
      
 111 
     | 
    
         
            +
                    [ 'b', '2.0.2', '2.0.1' ],
         
     | 
| 
      
 112 
     | 
    
         
            +
                    [ 'c', '3.0.2', '3.0.1' ],
         
     | 
| 
      
 113 
     | 
    
         
            +
                    [ 'a',   nil,   '1.0.1' ],
         
     | 
| 
      
 114 
     | 
    
         
            +
                    [ 'd', '4.0.2',   nil   ]
         
     | 
| 
      
 115 
     | 
    
         
            +
                  ]
         
     | 
| 
      
 116 
     | 
    
         
            +
             
     | 
| 
      
 117 
     | 
    
         
            +
                  expect(matrix.sorted_by_most_used).to eq(expected_result)
         
     | 
| 
      
 118 
     | 
    
         
            +
                end
         
     | 
| 
      
 119 
     | 
    
         
            +
              end
         
     | 
| 
      
 120 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,60 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe BundlerDependencyMatrix::Project do
         
     | 
| 
      
 4 
     | 
    
         
            +
              subject(:project) { described_class.new(project_path) }
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
      
 6 
     | 
    
         
            +
              let(:project_path) { 'spec/tmp/foo/' }
         
     | 
| 
      
 7 
     | 
    
         
            +
              let(:lockfile_path) { File.join project_path, 'Gemfile.lock' }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
              before do
         
     | 
| 
      
 10 
     | 
    
         
            +
                delete_tmp_folder
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                create_file lockfile_path, <<-FOO_GEMFILE
         
     | 
| 
      
 13 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 14 
     | 
    
         
            +
              remote: https://rubygems.org/
         
     | 
| 
      
 15 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 16 
     | 
    
         
            +
                diff-lcs (1.2.5)
         
     | 
| 
      
 17 
     | 
    
         
            +
                rake (11.1.0)
         
     | 
| 
      
 18 
     | 
    
         
            +
                rspec (3.0.0)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  rspec-core (~> 3.0.0)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  rspec-expectations (~> 3.0.0)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  rspec-mocks (~> 3.0.0)
         
     | 
| 
      
 22 
     | 
    
         
            +
                rspec-core (3.0.4)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  rspec-support (~> 3.0.0)
         
     | 
| 
      
 24 
     | 
    
         
            +
                rspec-expectations (3.0.4)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  rspec-support (~> 3.0.0)
         
     | 
| 
      
 27 
     | 
    
         
            +
                rspec-mocks (3.0.4)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  rspec-support (~> 3.0.0)
         
     | 
| 
      
 29 
     | 
    
         
            +
                rspec-support (3.0.4)
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 32 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 35 
     | 
    
         
            +
              rake (= 11.1.0)
         
     | 
| 
      
 36 
     | 
    
         
            +
              rspec (= 3.0.0)
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
            FOO_GEMFILE
         
     | 
| 
      
 39 
     | 
    
         
            +
              end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
              describe '#dependency_matrix' do
         
     | 
| 
      
 42 
     | 
    
         
            +
                it 'is a Hash' do
         
     | 
| 
      
 43 
     | 
    
         
            +
                  expect(subject.dependency_matrix).to be_a(Hash)
         
     | 
| 
      
 44 
     | 
    
         
            +
                end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                it 'returns dependencies' do
         
     | 
| 
      
 47 
     | 
    
         
            +
                  expected_result = {
         
     | 
| 
      
 48 
     | 
    
         
            +
                    'diff-lcs'           => '1.2.5',
         
     | 
| 
      
 49 
     | 
    
         
            +
                    'rake'               => '11.1.0',
         
     | 
| 
      
 50 
     | 
    
         
            +
                    'rspec'              => '3.0.0',
         
     | 
| 
      
 51 
     | 
    
         
            +
                    'rspec-core'         => '3.0.4',
         
     | 
| 
      
 52 
     | 
    
         
            +
                    'rspec-expectations' => '3.0.4',
         
     | 
| 
      
 53 
     | 
    
         
            +
                    'rspec-mocks'        => '3.0.4',
         
     | 
| 
      
 54 
     | 
    
         
            +
                    'rspec-support'      => '3.0.4'
         
     | 
| 
      
 55 
     | 
    
         
            +
                  }
         
     | 
| 
      
 56 
     | 
    
         
            +
             
     | 
| 
      
 57 
     | 
    
         
            +
                  expect(subject.dependency_matrix).to eq(expected_result)
         
     | 
| 
      
 58 
     | 
    
         
            +
                end
         
     | 
| 
      
 59 
     | 
    
         
            +
              end
         
     | 
| 
      
 60 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,28 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe BundlerDependencyMatrix::Views::Console do
         
     | 
| 
      
 4 
     | 
    
         
            +
              subject(:console) { described_class.new(matrix.sorted_by_most_used) }
         
     | 
| 
      
 5 
     | 
    
         
            +
              let(:matrix) do
         
     | 
| 
      
 6 
     | 
    
         
            +
                double :matrix,
         
     | 
| 
      
 7 
     | 
    
         
            +
                       sorted_by_most_used: [[ nil, 'bar',   'foo'   ],
         
     | 
| 
      
 8 
     | 
    
         
            +
                                             [ 'b', '2.0.2', '2.0.1' ],
         
     | 
| 
      
 9 
     | 
    
         
            +
                                             [ 'c', '3.0.2', '3.0.1' ],
         
     | 
| 
      
 10 
     | 
    
         
            +
                                             [ 'a',   nil,   '1.0.1' ],
         
     | 
| 
      
 11 
     | 
    
         
            +
                                             [ 'd', '4.0.2',   nil   ]]
         
     | 
| 
      
 12 
     | 
    
         
            +
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
      
 14 
     | 
    
         
            +
              describe '#render_as_string' do
         
     | 
| 
      
 15 
     | 
    
         
            +
                it 'renders matrix' do
         
     | 
| 
      
 16 
     | 
    
         
            +
                  expected_result = <<-TABLE
         
     | 
| 
      
 17 
     | 
    
         
            +
             x |  bar  |  foo  
         
     | 
| 
      
 18 
     | 
    
         
            +
            ---+-------+-------
         
     | 
| 
      
 19 
     | 
    
         
            +
             b | 2.0.2 | 2.0.1 
         
     | 
| 
      
 20 
     | 
    
         
            +
             c | 3.0.2 | 3.0.1 
         
     | 
| 
      
 21 
     | 
    
         
            +
             a |   x   | 1.0.1 
         
     | 
| 
      
 22 
     | 
    
         
            +
             d | 4.0.2 |   x   
         
     | 
| 
      
 23 
     | 
    
         
            +
            TABLE
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  expect(console.render_as_string).to eq(expected_result)
         
     | 
| 
      
 26 
     | 
    
         
            +
                end
         
     | 
| 
      
 27 
     | 
    
         
            +
              end
         
     | 
| 
      
 28 
     | 
    
         
            +
            end
         
     | 
| 
         @@ -0,0 +1,77 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'spec_helper'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            describe 'bin/bundler_dependency_matrix' do
         
     | 
| 
      
 4 
     | 
    
         
            +
              before do
         
     | 
| 
      
 5 
     | 
    
         
            +
                delete_tmp_folder
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
                create_file 'spec/tmp/foo/Gemfile.lock', <<-FOO_GEMFILE
         
     | 
| 
      
 8 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 9 
     | 
    
         
            +
              remote: https://rubygems.org/
         
     | 
| 
      
 10 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 11 
     | 
    
         
            +
                diff-lcs (1.2.5)
         
     | 
| 
      
 12 
     | 
    
         
            +
                rake (11.1.0)
         
     | 
| 
      
 13 
     | 
    
         
            +
                rspec (3.0.0)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  rspec-core (~> 3.0.0)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  rspec-expectations (~> 3.0.0)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  rspec-mocks (~> 3.0.0)
         
     | 
| 
      
 17 
     | 
    
         
            +
                rspec-core (3.0.4)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  rspec-support (~> 3.0.0)
         
     | 
| 
      
 19 
     | 
    
         
            +
                rspec-expectations (3.0.4)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  rspec-support (~> 3.0.0)
         
     | 
| 
      
 22 
     | 
    
         
            +
                rspec-mocks (3.0.4)
         
     | 
| 
      
 23 
     | 
    
         
            +
                  rspec-support (~> 3.0.0)
         
     | 
| 
      
 24 
     | 
    
         
            +
                rspec-support (3.0.4)
         
     | 
| 
      
 25 
     | 
    
         
            +
             
     | 
| 
      
 26 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 27 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 30 
     | 
    
         
            +
              rake (= 11.1.0)
         
     | 
| 
      
 31 
     | 
    
         
            +
              rspec (= 3.0.0)
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
            FOO_GEMFILE
         
     | 
| 
      
 34 
     | 
    
         
            +
             
     | 
| 
      
 35 
     | 
    
         
            +
                create_file 'spec/tmp/bar/Gemfile.lock', <<-BAR_GEMFILE
         
     | 
| 
      
 36 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 37 
     | 
    
         
            +
              remote: https://rubygems.org/
         
     | 
| 
      
 38 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 39 
     | 
    
         
            +
                diff-lcs (1.2.5)
         
     | 
| 
      
 40 
     | 
    
         
            +
                rake (10.0.0)
         
     | 
| 
      
 41 
     | 
    
         
            +
                rspec (2.0.0)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  rspec-core (= 2.0.0)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  rspec-expectations (= 2.0.0)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  rspec-mocks (= 2.0.0)
         
     | 
| 
      
 45 
     | 
    
         
            +
                rspec-core (2.0.0)
         
     | 
| 
      
 46 
     | 
    
         
            +
                rspec-expectations (2.0.0)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  diff-lcs (>= 1.1.2)
         
     | 
| 
      
 48 
     | 
    
         
            +
                rspec-mocks (2.0.0)
         
     | 
| 
      
 49 
     | 
    
         
            +
                  rspec-core (= 2.0.0)
         
     | 
| 
      
 50 
     | 
    
         
            +
                  rspec-expectations (= 2.0.0)
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
      
 52 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 53 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 56 
     | 
    
         
            +
              rake (= 10.0.0)
         
     | 
| 
      
 57 
     | 
    
         
            +
              rspec (= 2.0.0)
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
            BAR_GEMFILE
         
     | 
| 
      
 60 
     | 
    
         
            +
              end
         
     | 
| 
      
 61 
     | 
    
         
            +
             
     | 
| 
      
 62 
     | 
    
         
            +
              it 'returns bundler dependency matrix' do
         
     | 
| 
      
 63 
     | 
    
         
            +
                expected_result = <<-TABLE
         
     | 
| 
      
 64 
     | 
    
         
            +
                     x          |  bar   |  foo   
         
     | 
| 
      
 65 
     | 
    
         
            +
            --------------------+--------+--------
         
     | 
| 
      
 66 
     | 
    
         
            +
                  diff-lcs      | 1.2.5  | 1.2.5  
         
     | 
| 
      
 67 
     | 
    
         
            +
                    rake        | 10.0.0 | 11.1.0 
         
     | 
| 
      
 68 
     | 
    
         
            +
                   rspec        | 2.0.0  | 3.0.0  
         
     | 
| 
      
 69 
     | 
    
         
            +
                 rspec-core     | 2.0.0  | 3.0.4  
         
     | 
| 
      
 70 
     | 
    
         
            +
             rspec-expectations | 2.0.0  | 3.0.4  
         
     | 
| 
      
 71 
     | 
    
         
            +
                rspec-mocks     | 2.0.0  | 3.0.4  
         
     | 
| 
      
 72 
     | 
    
         
            +
               rspec-support    |   x    | 3.0.4  
         
     | 
| 
      
 73 
     | 
    
         
            +
            TABLE
         
     | 
| 
      
 74 
     | 
    
         
            +
             
     | 
| 
      
 75 
     | 
    
         
            +
                expect(`#{PROJECT_ROOT}/bin/bundler_dependency_matrix #{PROJECT_ROOT}/spec/tmp`).to eq(expected_result)
         
     | 
| 
      
 76 
     | 
    
         
            +
              end
         
     | 
| 
      
 77 
     | 
    
         
            +
            end
         
     | 
    
        data/spec/spec_helper.rb
    ADDED
    
    | 
         @@ -0,0 +1,17 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'fileutils'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'bundler_dependency_matrix'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'bundler_dependency_matrix/project'
         
     | 
| 
      
 4 
     | 
    
         
            +
            require 'bundler_dependency_matrix/matrix'
         
     | 
| 
      
 5 
     | 
    
         
            +
            require 'bundler_dependency_matrix/views/console'
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            PROJECT_ROOT = File.expand_path('../..', __FILE__)
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
            def create_file(path, content)
         
     | 
| 
      
 10 
     | 
    
         
            +
              full_path = File.join(PROJECT_ROOT, path)
         
     | 
| 
      
 11 
     | 
    
         
            +
              FileUtils.mkdir_p File.dirname(full_path)
         
     | 
| 
      
 12 
     | 
    
         
            +
              File.write(full_path, content)
         
     | 
| 
      
 13 
     | 
    
         
            +
            end
         
     | 
| 
      
 14 
     | 
    
         
            +
             
     | 
| 
      
 15 
     | 
    
         
            +
            def delete_tmp_folder
         
     | 
| 
      
 16 
     | 
    
         
            +
              FileUtils.rm_rf File.join(PROJECT_ROOT, '/spec/tmp')
         
     | 
| 
      
 17 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    ADDED
    
    | 
         @@ -0,0 +1,108 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            --- !ruby/object:Gem::Specification
         
     | 
| 
      
 2 
     | 
    
         
            +
            name: bundler_dependency_matrix
         
     | 
| 
      
 3 
     | 
    
         
            +
            version: !ruby/object:Gem::Version
         
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.0.0
         
     | 
| 
      
 5 
     | 
    
         
            +
            platform: ruby
         
     | 
| 
      
 6 
     | 
    
         
            +
            authors:
         
     | 
| 
      
 7 
     | 
    
         
            +
            - Deyan Dobrinov
         
     | 
| 
      
 8 
     | 
    
         
            +
            - Aleksandar Ivanov
         
     | 
| 
      
 9 
     | 
    
         
            +
            autorequire: 
         
     | 
| 
      
 10 
     | 
    
         
            +
            bindir: bin
         
     | 
| 
      
 11 
     | 
    
         
            +
            cert_chain: []
         
     | 
| 
      
 12 
     | 
    
         
            +
            date: 2016-03-28 00:00:00.000000000 Z
         
     | 
| 
      
 13 
     | 
    
         
            +
            dependencies:
         
     | 
| 
      
 14 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 15 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 16 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 17 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 18 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 19 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 20 
     | 
    
         
            +
                    version: '3.4'
         
     | 
| 
      
 21 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 22 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 23 
     | 
    
         
            +
                    version: 3.4.0
         
     | 
| 
      
 24 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 25 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 26 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 27 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 28 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 29 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 30 
     | 
    
         
            +
                    version: '3.4'
         
     | 
| 
      
 31 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 32 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 33 
     | 
    
         
            +
                    version: 3.4.0
         
     | 
| 
      
 34 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 35 
     | 
    
         
            +
              name: bundler
         
     | 
| 
      
 36 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 37 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '1.11'
         
     | 
| 
      
 41 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 42 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 43 
     | 
    
         
            +
                    version: 1.11.0
         
     | 
| 
      
 44 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 45 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 46 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 47 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 48 
     | 
    
         
            +
                - - "~>"
         
     | 
| 
      
 49 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 50 
     | 
    
         
            +
                    version: '1.11'
         
     | 
| 
      
 51 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 52 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 53 
     | 
    
         
            +
                    version: 1.11.0
         
     | 
| 
      
 54 
     | 
    
         
            +
            description: ''
         
     | 
| 
      
 55 
     | 
    
         
            +
            email:
         
     | 
| 
      
 56 
     | 
    
         
            +
            - deyan.dobrinov@gmail.com
         
     | 
| 
      
 57 
     | 
    
         
            +
            - aivanov92@gmail.com
         
     | 
| 
      
 58 
     | 
    
         
            +
            executables:
         
     | 
| 
      
 59 
     | 
    
         
            +
            - bundler_dependency_matrix
         
     | 
| 
      
 60 
     | 
    
         
            +
            extensions: []
         
     | 
| 
      
 61 
     | 
    
         
            +
            extra_rdoc_files: []
         
     | 
| 
      
 62 
     | 
    
         
            +
            files:
         
     | 
| 
      
 63 
     | 
    
         
            +
            - ".gitignore"
         
     | 
| 
      
 64 
     | 
    
         
            +
            - Gemfile
         
     | 
| 
      
 65 
     | 
    
         
            +
            - Gemfile.lock
         
     | 
| 
      
 66 
     | 
    
         
            +
            - README.md
         
     | 
| 
      
 67 
     | 
    
         
            +
            - bin/bundler_dependency_matrix
         
     | 
| 
      
 68 
     | 
    
         
            +
            - bundler_dependency_matrix.gemspec
         
     | 
| 
      
 69 
     | 
    
         
            +
            - lib/bundler_dependency_matrix.rb
         
     | 
| 
      
 70 
     | 
    
         
            +
            - lib/bundler_dependency_matrix/matrix.rb
         
     | 
| 
      
 71 
     | 
    
         
            +
            - lib/bundler_dependency_matrix/project.rb
         
     | 
| 
      
 72 
     | 
    
         
            +
            - lib/bundler_dependency_matrix/version.rb
         
     | 
| 
      
 73 
     | 
    
         
            +
            - lib/bundler_dependency_matrix/views/console.rb
         
     | 
| 
      
 74 
     | 
    
         
            +
            - spec/bundler_dependency_matrix/matrix_spec.rb
         
     | 
| 
      
 75 
     | 
    
         
            +
            - spec/bundler_dependency_matrix/project_spec.rb
         
     | 
| 
      
 76 
     | 
    
         
            +
            - spec/bundler_dependency_matrix/views/console_spec.rb
         
     | 
| 
      
 77 
     | 
    
         
            +
            - spec/bundler_dependency_matrix_spec.rb
         
     | 
| 
      
 78 
     | 
    
         
            +
            - spec/spec_helper.rb
         
     | 
| 
      
 79 
     | 
    
         
            +
            homepage: http://github.com/dobrinov/bundler_dependency_matrix
         
     | 
| 
      
 80 
     | 
    
         
            +
            licenses:
         
     | 
| 
      
 81 
     | 
    
         
            +
            - MIT
         
     | 
| 
      
 82 
     | 
    
         
            +
            metadata: {}
         
     | 
| 
      
 83 
     | 
    
         
            +
            post_install_message: 
         
     | 
| 
      
 84 
     | 
    
         
            +
            rdoc_options: []
         
     | 
| 
      
 85 
     | 
    
         
            +
            require_paths:
         
     | 
| 
      
 86 
     | 
    
         
            +
            - lib
         
     | 
| 
      
 87 
     | 
    
         
            +
            required_ruby_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 88 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 89 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 90 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 91 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 92 
     | 
    
         
            +
            required_rubygems_version: !ruby/object:Gem::Requirement
         
     | 
| 
      
 93 
     | 
    
         
            +
              requirements:
         
     | 
| 
      
 94 
     | 
    
         
            +
              - - ">="
         
     | 
| 
      
 95 
     | 
    
         
            +
                - !ruby/object:Gem::Version
         
     | 
| 
      
 96 
     | 
    
         
            +
                  version: '0'
         
     | 
| 
      
 97 
     | 
    
         
            +
            requirements: []
         
     | 
| 
      
 98 
     | 
    
         
            +
            rubyforge_project: 
         
     | 
| 
      
 99 
     | 
    
         
            +
            rubygems_version: 2.4.5
         
     | 
| 
      
 100 
     | 
    
         
            +
            signing_key: 
         
     | 
| 
      
 101 
     | 
    
         
            +
            specification_version: 4
         
     | 
| 
      
 102 
     | 
    
         
            +
            summary: Gem version dependecy matrix
         
     | 
| 
      
 103 
     | 
    
         
            +
            test_files:
         
     | 
| 
      
 104 
     | 
    
         
            +
            - spec/bundler_dependency_matrix/matrix_spec.rb
         
     | 
| 
      
 105 
     | 
    
         
            +
            - spec/bundler_dependency_matrix/project_spec.rb
         
     | 
| 
      
 106 
     | 
    
         
            +
            - spec/bundler_dependency_matrix/views/console_spec.rb
         
     | 
| 
      
 107 
     | 
    
         
            +
            - spec/bundler_dependency_matrix_spec.rb
         
     | 
| 
      
 108 
     | 
    
         
            +
            - spec/spec_helper.rb
         
     |