diff --git a/Gemfile b/Gemfile index 462036bc..e162e941 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,8 @@ gemspec gem 'thor', '0.19.4', :require => false group :test do + gem 'irb' # for fakefs (https://github.com/fakefs/fakefs/pull/494) + # "irb was loaded from the standard library, but is not part of the default gems starting from Ruby 3.5.0" gem 'rake' gem 'fakefs' gem 'rspec', '~> 3.5' @@ -16,5 +18,4 @@ group :development do gem 'aws-s3' gem 'ronn-ng' gem 'yard', '~> 0.9.11' - gem 'automatiek' end diff --git a/lib/foreman/export/base.rb b/lib/foreman/export/base.rb index 010529e6..cec2676c 100644 --- a/lib/foreman/export/base.rb +++ b/lib/foreman/export/base.rb @@ -1,5 +1,4 @@ require "foreman/export" -require "ostruct" require "pathname" require "shellwords" @@ -35,7 +34,7 @@ def template def @engine.procfile Foreman::Export::Base.warn_deprecation! @processes.map do |process| - OpenStruct.new( + Struct.new( :name => @names[process], :process => process ) diff --git a/lib/foreman/vendor/thor/lib/thor/line_editor/readline.rb b/lib/foreman/vendor/thor/lib/thor/line_editor/readline.rb index b84481da..a3cf37c3 100644 --- a/lib/foreman/vendor/thor/lib/thor/line_editor/readline.rb +++ b/lib/foreman/vendor/thor/lib/thor/line_editor/readline.rb @@ -1,12 +1,12 @@ -begin - require "readline" -rescue LoadError -end - class Foreman::Thor module LineEditor class Readline < Basic def self.available? + begin + require "readline" + rescue LoadError + end + Object.const_defined?(:Readline) end diff --git a/spec/foreman/process_spec.rb b/spec/foreman/process_spec.rb index d449c956..58e21020 100644 --- a/spec/foreman/process_spec.rb +++ b/spec/foreman/process_spec.rb @@ -1,6 +1,5 @@ require 'spec_helper' require 'foreman/process' -require 'ostruct' require 'timeout' require 'tmpdir' diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index bad817e6..67a5915d 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -150,7 +150,23 @@ def preserving_env end def normalize_space(s) - s.gsub(/\n[\n\s]*/, "\n") + + normalized = s.gsub(/\n[\n\s]*/, "\n") + + if RUBY_VERSION >= "3.4" + # Hash#inspect changed from Ruby 3.4 + # used in data/export/bluepill/master.pill.erb + # + # $ chruby-exec 3.3.7 -- ruby -e 'puts "#{{"PORT"=>"5000"}.inspect}"' + # {"PORT"=>"5000"} + # + # $ chruby-exec 3.4.1 -- ruby -e 'puts "#{{"PORT"=>"5000"}.inspect}"' + # {"PORT" => "5000"} + + normalized.gsub(/{"PORT"=>"(\d+)"}/, '{"PORT" => "\1"}') + else + normalized + end end def capture_stdout diff --git a/tasks/vendor.rake b/tasks/vendor.rake deleted file mode 100644 index 3991c3ca..00000000 --- a/tasks/vendor.rake +++ /dev/null @@ -1,13 +0,0 @@ -begin - require "automatiek" - - desc "Vendor a specific version of thor" - Automatiek::RakeTask.new("thor") do |lib| - lib.download = { github: "https://github.com/erikhuda/thor" } - lib.namespace = "Thor" - lib.prefix = "Foreman" - lib.vendor_lib = "lib/foreman/vendor/thor" - end -rescue LoadError -end -