padrino-core 0.16.1 → 0.16.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d26e98619afc016e402bb8adc53a86eb524582b6649c83617f7b0a47ed0f4488
4
- data.tar.gz: c116e7d488a8c4172430cff76190a4efdfe4c742b849f59cf2c4759df4dca7e6
3
+ metadata.gz: f357abd6bcc045b4befc0d85f7b02e733c2a10194d3521d7a81bc1e87f950439
4
+ data.tar.gz: ca8317ab9f147001058495aea8ccbaa1c2b1e9d34c26ac41500386d527343d34
5
5
  SHA512:
6
- metadata.gz: c77acb81e7f6fab90e9ef7c0d7fc42a84c7e06c90067a0983bca0ceb155312d334a8b8969e22b491e8a39b183a48746c4beb29d1c7f82e9279476daf2999bbe0
7
- data.tar.gz: 81f16ab2aa09134872e15b6e45a0e465da6f171a960eb5957b3b099f107441409822454a48a22083fb99c3d0ac8aac5d9e3169899827bec116fb012c854f12ae
6
+ metadata.gz: 14cf763eaa96876bc8e94deb85d558d034221a4b0bc6e23b87658e9c5e7320f19942a5e7bec4c5a04131ee0d3378dabbd52676252cba72afbd51e422c2b1752f
7
+ data.tar.gz: cb531a9aecd3da407516bc334821cdb88250bb624976dc7700b2f496b3d362de11636fb2e2400bddad8eed002e08603735f633d634d3912c8f5a1b5edee7c7a5
@@ -35,7 +35,13 @@ module Padrino
35
35
  if defined? Pry
36
36
  Pry.start
37
37
  else
38
- require 'irb'
38
+ begin
39
+ require 'irb'
40
+ rescue LoadError => e
41
+ raise unless e.path == 'irb'
42
+
43
+ abort "<= padrino console needs irb. Since Ruby 4.0 it is a bundled gem: add gem 'irb' to your Gemfile and run bundle install."
44
+ end
39
45
  begin
40
46
  require 'irb/completion'
41
47
  rescue LoadError
@@ -6,7 +6,7 @@
6
6
  #
7
7
  module Padrino
8
8
  # The version constant for the current version of Padrino.
9
- VERSION = '0.16.1' unless defined?(Padrino::VERSION)
9
+ VERSION = '0.16.2' unless defined?(Padrino::VERSION)
10
10
 
11
11
  #
12
12
  # The current Padrino version.
data/padrino-core.gemspec CHANGED
@@ -21,6 +21,7 @@ Gem::Specification.new do |s|
21
21
  s.require_paths = ['lib']
22
22
  s.rdoc_options = ['--charset=UTF-8']
23
23
 
24
+ s.add_dependency('ostruct', '>= 0.6')
24
25
  s.add_dependency('padrino-support', Padrino.version)
25
26
  s.add_dependency('rackup', '~> 2.1')
26
27
  s.add_dependency('sinatra', '~> 4')
data/test/test_cli.rb ADDED
@@ -0,0 +1,62 @@
1
+ require_relative 'helper'
2
+ require 'open3'
3
+ require 'tmpdir'
4
+
5
+ describe 'Padrino::Cli' do
6
+ # Runs the script in a temp project with one app mounted at /.
7
+ def run_in_project(script)
8
+ Dir.mktmpdir do |dir|
9
+ FileUtils.mkdir_p(File.join(dir, 'config'))
10
+ FileUtils.mkdir_p(File.join(dir, 'app'))
11
+ File.write(File.join(dir, 'app', 'app.rb'), "class CliDemo < Padrino::Application; end\n")
12
+ File.write(File.join(dir, 'config', 'boot.rb'), <<~RUBY)
13
+ PADRINO_ROOT = #{dir.inspect} unless defined?(PADRINO_ROOT)
14
+ require 'padrino-core'
15
+ require_relative '../app/app'
16
+ Padrino.mount('CliDemo', app_file: File.expand_path('../app/app.rb', __dir__)).to('/')
17
+ Padrino.load!
18
+ RUBY
19
+ lib = File.expand_path('../lib', __dir__)
20
+ env = { 'RACK_ENV' => 'test', 'BUNDLE_GEMFILE' => File.expand_path('../../Gemfile', __dir__) }
21
+ Open3.capture3(env, RbConfig.ruby, '-I', lib, '-e', script, chdir: dir)
22
+ end
23
+ end
24
+
25
+ it 'should say how to add irb when padrino console cannot load it' do
26
+ _, err, status = run_in_project(<<~RUBY)
27
+ # Ruby 4.0 without irb in the bundle
28
+ module Kernel
29
+ alias_method :require_before_test, :require
30
+ def require(name)
31
+ if name == 'irb'
32
+ error = LoadError.new('cannot load such file -- irb')
33
+ error.define_singleton_method(:path) { 'irb' }
34
+ raise error
35
+ end
36
+
37
+ require_before_test(name)
38
+ end
39
+ end
40
+ require 'padrino-core/cli/base'
41
+ Padrino::Cli::Base.start(['console'])
42
+ RUBY
43
+ assert_equal 1, status.exitstatus
44
+ assert_includes err, "add gem 'irb' to your Gemfile"
45
+ end
46
+
47
+ it 'should not hide a LoadError from inside irb in padrino console' do
48
+ _, err, status = run_in_project(<<~RUBY)
49
+ module Kernel
50
+ alias_method :require_before_test, :require
51
+ def require(name)
52
+ require_before_test(name == 'irb' ? 'padrino_missing_irb_dependency' : name)
53
+ end
54
+ end
55
+ require 'padrino-core/cli/base'
56
+ Padrino::Cli::Base.start(['console'])
57
+ RUBY
58
+ refute status.success?
59
+ assert_includes err, 'padrino_missing_irb_dependency'
60
+ refute_includes err, "add gem 'irb'"
61
+ end
62
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: padrino-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.1
4
+ version: 0.16.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Padrino Team
@@ -11,22 +11,36 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2026-03-27 00:00:00.000000000 Z
14
+ date: 2026-10-14 00:00:00.000000000 Z
15
15
  dependencies:
16
+ - !ruby/object:Gem::Dependency
17
+ name: ostruct
18
+ requirement: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: '0.6'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: '0.6'
16
30
  - !ruby/object:Gem::Dependency
17
31
  name: padrino-support
18
32
  requirement: !ruby/object:Gem::Requirement
19
33
  requirements:
20
34
  - - '='
21
35
  - !ruby/object:Gem::Version
22
- version: 0.16.1
36
+ version: 0.16.2
23
37
  type: :runtime
24
38
  prerelease: false
25
39
  version_requirements: !ruby/object:Gem::Requirement
26
40
  requirements:
27
41
  - - '='
28
42
  - !ruby/object:Gem::Version
29
- version: 0.16.1
43
+ version: 0.16.2
30
44
  - !ruby/object:Gem::Dependency
31
45
  name: rackup
32
46
  requirement: !ruby/object:Gem::Requirement
@@ -183,6 +197,7 @@ files:
183
197
  - test/fixtures/reloadable_apps/main/app.rb
184
198
  - test/helper.rb
185
199
  - test/test_application.rb
200
+ - test/test_cli.rb
186
201
  - test/test_configuration.rb
187
202
  - test/test_core.rb
188
203
  - test/test_csrf_protection.rb
@@ -285,6 +300,7 @@ test_files:
285
300
  - test/fixtures/reloadable_apps/main/app.rb
286
301
  - test/helper.rb
287
302
  - test/test_application.rb
303
+ - test/test_cli.rb
288
304
  - test/test_configuration.rb
289
305
  - test/test_core.rb
290
306
  - test/test_csrf_protection.rb