From 49ff3c4dcee17c95717bfb76f467d7f8c6065608 Mon Sep 17 00:00:00 2001 From: zhephyn Date: Mon, 21 Sep 2026 06:23:48 +0300 Subject: [PATCH 1/3] Use current Foobara version in generated gemspec --- spec/generate_empty_ruby_project_spec.rb | 9 +++++++++ templates/gemspec.gemspec.erb | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/spec/generate_empty_ruby_project_spec.rb b/spec/generate_empty_ruby_project_spec.rb index c4bf933..4812468 100644 --- a/spec/generate_empty_ruby_project_spec.rb +++ b/spec/generate_empty_ruby_project_spec.rb @@ -22,6 +22,15 @@ expect(result["spec/spec_helper.rb"]).to include('require_relative "../boot/finish"') end + it "uses the current foobara version as the minimum dependency" do + expect(outcome).to be_success + + current_version = Gem.loaded_specs["foobara"].version.to_s + gemspec_path = result.keys.find { |path| path.end_with?(".gemspec") } + + expect(result.fetch(gemspec_path)).to include(">= #{current_version}") + end + context "with all options" do let(:homepage_url) { "https://example.com" } let(:license) { "MIT" } diff --git a/templates/gemspec.gemspec.erb b/templates/gemspec.gemspec.erb index b8e8f98..7576c74 100644 --- a/templates/gemspec.gemspec.erb +++ b/templates/gemspec.gemspec.erb @@ -23,7 +23,7 @@ Gem::Specification.new do |spec| "CHANGELOG.md" ] - spec.add_dependency "foobara", ">= 0.0.136", "< 2.0.0" + spec.add_dependency "foobara", ">= <%= Gem.loaded_specs["foobara"].version %>", "< 2.0.0" spec.require_paths = ["lib"] spec.metadata["rubygems_mfa_required"] = "true" From 87a5506c97fdc08f3a521c91b6514096baa11480 Mon Sep 17 00:00:00 2001 From: zhephyn Date: Mon, 21 Sep 2026 17:59:20 +0300 Subject: [PATCH 2/3] refactor to move Foobara version lookup into GemspecGenerator --- src/generators/gemspec_generator.rb | 4 ++++ templates/gemspec.gemspec.erb | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/generators/gemspec_generator.rb b/src/generators/gemspec_generator.rb index 1d3a521..fc8cbd4 100644 --- a/src/generators/gemspec_generator.rb +++ b/src/generators/gemspec_generator.rb @@ -12,6 +12,10 @@ def template_path def target_path "#{kebab_case_full_project_name}.gemspec" end + + def current_foobara_version + Gem.loaded_specs["foobara"].version + end end end end diff --git a/templates/gemspec.gemspec.erb b/templates/gemspec.gemspec.erb index 7576c74..4cb623d 100644 --- a/templates/gemspec.gemspec.erb +++ b/templates/gemspec.gemspec.erb @@ -23,7 +23,7 @@ Gem::Specification.new do |spec| "CHANGELOG.md" ] - spec.add_dependency "foobara", ">= <%= Gem.loaded_specs["foobara"].version %>", "< 2.0.0" + spec.add_dependency "foobara", ">= <%= current_foobara_version %>", "< 2.0.0" spec.require_paths = ["lib"] spec.metadata["rubygems_mfa_required"] = "true" From 4e71b75b1c5b6af17f364f13d0586c56b9af2e49 Mon Sep 17 00:00:00 2001 From: zhephyn Date: Wed, 23 Sep 2026 03:20:56 +0300 Subject: [PATCH 3/3] Fix Rubocop issue --- spec/generate_empty_ruby_project_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/generate_empty_ruby_project_spec.rb b/spec/generate_empty_ruby_project_spec.rb index 363ddbd..90ad5af 100644 --- a/spec/generate_empty_ruby_project_spec.rb +++ b/spec/generate_empty_ruby_project_spec.rb @@ -30,7 +30,7 @@ expect(result.fetch(gemspec_path)).to include(">= #{current_version}") end - + it "uses the generated project library path in the README" do expect(outcome).to be_success