Skip to content

Commit

Permalink
Tabelize output
Browse files Browse the repository at this point in the history
  • Loading branch information
alindeman committed Nov 19, 2012
1 parent de24466 commit a024768
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 11 deletions.
16 changes: 14 additions & 2 deletions README.md
Expand Up @@ -14,13 +14,25 @@ requires Ruby 1.9.3, and `rails4_upgrade` uses 1.9-only syntax and semantics.

Add to `Gemfile`:

gem 'rails4_upgrade', github: 'alindeman/rails4_upgrade'
```ruby
gem 'rails4_upgrade', github: 'alindeman/rails4_upgrade'
```

## Usage

List gems that would currently prevent you from upgrading to Rails 4:

rake rails4:check_gems
```
$ rake rails4:check_gems
+--------------------+----------------------+
| Dependency Path | Rails Requirement |
+--------------------+----------------------+
| draper 0.18.0 | actionpack ~> 3.2 |
| draper 0.18.0 | activesupport ~> 3.2 |
| simple_form 2.0.4 | actionpack ~> 3.0 |
| simple_form 2.0.4 | activemodel ~> 3.0 |
+--------------------+----------------------+
```

## Contributing

Expand Down
24 changes: 15 additions & 9 deletions lib/rails4_upgrade/formatters/incompatible_gems_formatter.rb
@@ -1,3 +1,5 @@
require "terminal-table"

module Rails4Upgrade
module Formatters
class IncompatibleGemsFormatter
Expand All @@ -8,11 +10,20 @@ def initialize(incompatible_gems)
def output(stream = STDOUT)
incompatibilities = @incompatible_gems.incompatibilities
if incompatibilities.empty?
stream.puts colorize(:success, "No gem incompatibilities found")
stream.puts "No gem incompatibilities found"
else
rows = []
incompatibilities.each do |incompatibility|
stream.puts colorize(:failure, "#{human_readable_dependency_path(incompatibility.path)} depends on #{incompatibility.dependency.name} #{incompatibility.dependency.requirement}")
rows << [
human_readable_dependency_path(incompatibility.path),
human_readable_dependency(incompatibility.dependency)
]
end

stream.puts Terminal::Table.new(
headings: ["Dependency Path", "Rails Requirement"],
rows: rows
)
end
end

Expand All @@ -22,13 +33,8 @@ def human_readable_dependency_path(path)
path.map { |dependency| "#{dependency.name} #{dependency.version}" }.join(" -> ")
end

def colorize(tag, string)
case tag
when :failure
"\e[31m#{string}\e[0m"
when :success
"\e[35m#{string}\e[0m"
end
def human_readable_dependency(dependency)
"#{dependency.name} #{dependency.requirement}"
end
end
end
Expand Down
1 change: 1 addition & 0 deletions rails4_upgrade.gemspec
Expand Up @@ -18,6 +18,7 @@ Gem::Specification.new do |gem|
gem.require_paths = ["lib"]

gem.add_dependency "bundler", ">=1.2.2"
gem.add_dependency "terminal-table", ">=1.4.5"

gem.add_development_dependency "rake", "~>10.0.0"
gem.add_development_dependency "rspec", "~>2.12.0"
Expand Down

0 comments on commit a024768

Please sign in to comment.