Skip to content

Commit

Permalink
Split compatibility method for Rails and Ruby
Browse files Browse the repository at this point in the history
Based on the code review
  • Loading branch information
JuanVqz committed Feb 20, 2025
1 parent 7f7a9df commit b8e927b
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 12 deletions.
4 changes: 2 additions & 2 deletions exe/bundle_report
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ at_exit do
when "outdated" then NextRails::BundleReport.outdated(options.fetch(:format, nil))
else
if options[:ruby_version]
NextRails::BundleReport.compatibility(ruby_version: options.fetch(:ruby_version, "2.3"))
NextRails::BundleReport.ruby_compatibility(ruby_version: options.fetch(:ruby_version, "2.3"))
else
NextRails::BundleReport.compatibility(rails_version: options.fetch(:rails_version, "5.0"), include_rails_gems: options.fetch(:include_rails_gems, false))
NextRails::BundleReport.rails_compatibility(rails_version: options.fetch(:rails_version, "5.0"), include_rails_gems: options.fetch(:include_rails_gems, false))
end
end
end
Expand Down
12 changes: 9 additions & 3 deletions lib/next_rails/bundle_report.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,18 @@ module NextRails
module BundleReport
extend self

def compatibility(rails_version: nil, ruby_version: nil, include_rails_gems: nil)
return puts RubyVersionCompatibility.new(options: { ruby_version: ruby_version }).generate if ruby_version
def ruby_compatibility(ruby_version: nil)
return unless ruby_version

options = { ruby_version: ruby_version }
puts RubyVersionCompatibility.new(options: options).generate
end

def rails_compatibility(rails_version: nil, include_rails_gems: nil)
return unless rails_version

puts RailsVersionCompatibility.new(options: { rails_version: rails_version, include_rails_gems: include_rails_gems }).generate
options = { rails_version: rails_version, include_rails_gems: include_rails_gems }
puts RailsVersionCompatibility.new(options: options).generate
end

def compatible_ruby_version(rails_version)
Expand Down
13 changes: 13 additions & 0 deletions spec/next_rails/bundle_report/rails_version_compatibility_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# frozen_string_literal: true

require "spec_helper"

RSpec.describe NextRails::BundleReport::RailsVersionCompatibility do
describe "output" do
it "returns ERB generated output" do
output = NextRails::BundleReport::RailsVersionCompatibility.new(options: { rails_version: 7.0 }).generate
expect(output).to match "gems incompatible with Rails 7.0"
end
end
end

Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# frozen_string_literal: true

require "spec_helper"
require "next_rails/bundle_report/ruby_version_compatibility"

RSpec.describe NextRails::BundleReport::RubyVersionCompatibility do
let(:ruby_3_0_gem) do
Expand Down
10 changes: 4 additions & 6 deletions spec/next_rails/bundle_report_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,12 +64,10 @@
end
end

describe ".compatibility" do
describe "output" do
it "returns ERB generated output" do
output = NextRails::BundleReport::RailsVersionCompatibility.new(options: { rails_version: 7.0 }).generate
expect(output).to match "gems incompatible with Rails 7.0"
end
describe ".rails_compatibility" do
it "returns nil for invalid rails version" do
output = NextRails::BundleReport.rails_compatibility(rails_version: nil)
expect(output).to eq(nil)
end
end

Expand Down

0 comments on commit b8e927b

Please sign in to comment.