sinatra 3.0.5 → 4.0.0
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 +4 -4
- data/AUTHORS.md +14 -8
- data/CHANGELOG.md +75 -2
- data/CONTRIBUTING.md +11 -11
- data/Gemfile +22 -20
- data/MAINTENANCE.md +2 -2
- data/README.md +137 -129
- data/Rakefile +25 -22
- data/SECURITY.md +1 -1
- data/VERSION +1 -1
- data/examples/chat.rb +20 -9
- data/examples/lifecycle_events.rb +20 -0
- data/examples/stream.ru +0 -2
- data/lib/sinatra/base.rb +154 -46
- data/lib/sinatra/indifferent_hash.rb +10 -8
- data/lib/sinatra/show_exceptions.rb +2 -2
- data/lib/sinatra/version.rb +1 -1
- data/sinatra.gemspec +4 -5
- metadata +37 -32
- data/examples/rainbows.conf +0 -3
- data/examples/rainbows.rb +0 -22
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 71d0bb379c736d6c251ceb424cac84dbe3a8b22d80a54473a0af1085b93b7dbf
|
|
4
|
+
data.tar.gz: 489d48a5e4f934127e04cdafa2d0d582c5143cc2a8f476239ea5b5b0f0e492c9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: fbe92c1867d3ebe8ddc3f707c4e9f9cf2b68bddf2556164b85083ac635650725d63f8c847b4c70d0ad2abf6793b5f1054918b0b7c4e04d303119867be84c3253
|
|
7
|
+
data.tar.gz: 0727d88e9f5574c304dd3f31c6107a2b3e1cde96914e258c86fee529a1e922b0ff1d023f109fcc3b232f010ae21d9bdb4c365001dc7c3f658c0bd75b95e8d24d
|
data/AUTHORS.md
CHANGED
|
@@ -2,31 +2,37 @@ Sinatra was designed and developed by Blake Mizerany in California.
|
|
|
2
2
|
|
|
3
3
|
### Current Team
|
|
4
4
|
|
|
5
|
-
* **
|
|
5
|
+
* **Eloy Perez**
|
|
6
|
+
* **Jordan Owens**
|
|
7
|
+
* **Olle Jonsson**
|
|
8
|
+
* **Patrik Ragnarsson**
|
|
6
9
|
* **Zachary Scott**
|
|
7
|
-
* **Kashyap Kondamudi**
|
|
8
|
-
* **Ashley Williams**
|
|
9
|
-
* **Trevor Bramble**
|
|
10
|
-
* **Kunpei Sakai**
|
|
11
10
|
|
|
12
11
|
### Alumni
|
|
13
12
|
|
|
14
13
|
* **Blake Mizerany** (creator)
|
|
14
|
+
* **Konstantin Haase** (maintainer)
|
|
15
15
|
* **Ryan Tomayko**
|
|
16
16
|
* **Simon Rozet**
|
|
17
17
|
* **Katrina Owen**
|
|
18
|
+
* **Kashyap Kondamudi**
|
|
19
|
+
* **Ashley Williams**
|
|
20
|
+
* **Trevor Bramble**
|
|
21
|
+
* **Kunpei Sakai**
|
|
18
22
|
|
|
19
23
|
### Thanks
|
|
20
24
|
|
|
21
25
|
Sinatra would not have been possible without strong company backing.
|
|
22
26
|
In the past, financial and emotional support have been provided mainly by
|
|
23
|
-
[Heroku](
|
|
24
|
-
[Engine Yard](http://www.engineyard.com/)
|
|
25
|
-
[
|
|
27
|
+
[Heroku](https://heroku.com), [GitHub](https://github.com),
|
|
28
|
+
[Engine Yard](http://www.engineyard.com/) and [Travis CI](https://travis-ci.com/),
|
|
29
|
+
and is now taken care of by [84codes](https://www.84codes.com/).
|
|
26
30
|
|
|
27
31
|
Special thanks to the following extraordinary individuals, without whom
|
|
28
32
|
Sinatra would not be possible:
|
|
29
33
|
|
|
34
|
+
* [Benoit Daloze](https://eregon.me/blog/) (eregon) for help around TruffleRuby
|
|
35
|
+
and keyword arguments use in mustermann.
|
|
30
36
|
* [Ryan Tomayko](http://tomayko.com/) (rtomayko) for constantly fixing
|
|
31
37
|
whitespace errors __60d5006__
|
|
32
38
|
* [Ezra Zygmuntowicz](http://brainspl.at/) (ezmobius) for initial help and
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,79 @@
|
|
|
1
|
-
##
|
|
1
|
+
## 4.0.0. / 2024-01-19
|
|
2
2
|
|
|
3
|
-
*
|
|
3
|
+
* New: Add support for Rack 3 ([#1857])
|
|
4
|
+
* Note: you may want to read the [Rack 3 Upgrade Guide]
|
|
5
|
+
|
|
6
|
+
* Require Ruby 2.7.8 as minimum Ruby version ([#1993])
|
|
7
|
+
|
|
8
|
+
* Breaking change: Drop support for Rack 2 ([#1857])
|
|
9
|
+
* Note: when using Sinatra to start the web server, you now need the `rackup` gem installed
|
|
10
|
+
|
|
11
|
+
* Breaking change: Remove the `IndifferentHash` initializer ([#1982])
|
|
12
|
+
|
|
13
|
+
* Breaking change: Disable `session_hijacking` protection by default ([#1984])
|
|
14
|
+
|
|
15
|
+
* Breaking change: Remove `Rack::Protection::EncryptedCookie` ([#1989])
|
|
16
|
+
* Note: cookies are still encrypted (by [`Rack::Session::Cookie`])
|
|
17
|
+
|
|
18
|
+
[#1857]: https://github.com/sinatra/sinatra/pull/1857
|
|
19
|
+
[#1993]: https://github.com/sinatra/sinatra/pull/1993
|
|
20
|
+
[#1982]: https://github.com/sinatra/sinatra/pull/1982
|
|
21
|
+
[#1984]: https://github.com/sinatra/sinatra/pull/1984
|
|
22
|
+
[#1989]: https://github.com/sinatra/sinatra/pull/1989
|
|
23
|
+
[`Rack::Session::Cookie`]: https://github.com/rack/rack-session
|
|
24
|
+
[Rack 3 Upgrade Guide]: https://github.com/rack/rack/blob/main/UPGRADE-GUIDE.md
|
|
25
|
+
|
|
26
|
+
## 3.2.0 / 2023-12-29
|
|
27
|
+
|
|
28
|
+
* New: Add `#except` method to `Sinatra::IndifferentHash` ([#1940])
|
|
29
|
+
|
|
30
|
+
* New: Use `Exception#detailed_message` to show backtrace ([#1952])
|
|
31
|
+
|
|
32
|
+
* New: Add `Sinatra::HamlHelpers` to sinatra-contrib ([#1960])
|
|
33
|
+
|
|
34
|
+
* Fix: Add `base64` to rack-protection runtime dependencies ([#1946])
|
|
35
|
+
|
|
36
|
+
* Fix: Avoid open-ended dependencies for sinatra-contrib and rack-protection ([#1949])
|
|
37
|
+
|
|
38
|
+
* Fix: Helpful message when `Sinatra::Runner` times out ([#1975])
|
|
39
|
+
|
|
40
|
+
* Fix: Ruby 3.3 + Bundler 2.5 compatibility ([#1975])
|
|
41
|
+
|
|
42
|
+
[#1940]: https://github.com/sinatra/sinatra/pull/1940
|
|
43
|
+
[#1946]: https://github.com/sinatra/sinatra/pull/1946
|
|
44
|
+
[#1949]: https://github.com/sinatra/sinatra/pull/1949
|
|
45
|
+
[#1952]: https://github.com/sinatra/sinatra/pull/1952
|
|
46
|
+
[#1960]: https://github.com/sinatra/sinatra/pull/1960
|
|
47
|
+
[#1975]: https://github.com/sinatra/sinatra/pull/1975
|
|
48
|
+
|
|
49
|
+
## 3.1.0 / 2023-08-07
|
|
50
|
+
|
|
51
|
+
* New: Add sass support via sass-embedded [#1911] by なつき
|
|
52
|
+
|
|
53
|
+
* New: Add start and stop callbacks [#1913] by Jevin Sew
|
|
54
|
+
|
|
55
|
+
* New: Warn on dropping sessions [#1900] by Jonathan del Strother
|
|
56
|
+
|
|
57
|
+
* New: Make Puma the default server [#1924] by Patrik Ragnarsson
|
|
58
|
+
|
|
59
|
+
* Fix: Remove use of Tilt::Cache [#1922] by Jeremy Evans (allows use of Tilt 2.2.0 without deprecation warning)
|
|
60
|
+
|
|
61
|
+
* Fix: rack-protection: specify rack version requirement [#1932] by Patrik Ragnarsson
|
|
62
|
+
|
|
63
|
+
[#1911]: https://github.com/sinatra/sinatra/pull/1911
|
|
64
|
+
[#1913]: https://github.com/sinatra/sinatra/pull/1913
|
|
65
|
+
[#1900]: https://github.com/sinatra/sinatra/pull/1900
|
|
66
|
+
[#1924]: https://github.com/sinatra/sinatra/pull/1924
|
|
67
|
+
[#1922]: https://github.com/sinatra/sinatra/pull/1922
|
|
68
|
+
[#1932]: https://github.com/sinatra/sinatra/pull/1932
|
|
69
|
+
|
|
70
|
+
## 3.0.6 / 2023-04-11
|
|
71
|
+
|
|
72
|
+
* Fix: Add support to keep open streaming connections with Puma [#1858](https://github.com/sinatra/sinatra/pull/1858) by Jordan Owens
|
|
73
|
+
|
|
74
|
+
* Fix: Avoid crash in `uri` helper on Integer input [#1890](https://github.com/sinatra/sinatra/pull/1890) by Patrik Ragnarsson
|
|
75
|
+
|
|
76
|
+
* Fix: Rescue `RuntimeError` when trying to use `SecureRandom` [#1888](https://github.com/sinatra/sinatra/pull/1888) by Stefan Sundin
|
|
4
77
|
|
|
5
78
|
## 3.0.5 / 2022-12-16
|
|
6
79
|
|
data/CONTRIBUTING.md
CHANGED
|
@@ -65,21 +65,21 @@ track patch requests.
|
|
|
65
65
|
also has its own [Git repository](http://github.com/sinatra/sinatra-recipes).
|
|
66
66
|
|
|
67
67
|
* [The Introduction](http://www.sinatrarb.com/intro.html) is generated from
|
|
68
|
-
Sinatra's [README file](http://github.com/sinatra/sinatra/blob/
|
|
68
|
+
Sinatra's [README file](http://github.com/sinatra/sinatra/blob/main/README.md).
|
|
69
69
|
|
|
70
70
|
* If you want to help translating the documentation, the README is already
|
|
71
71
|
available in
|
|
72
|
-
[Japanese](http://github.com/sinatra/sinatra/blob/
|
|
73
|
-
[German](http://github.com/sinatra/sinatra/blob/
|
|
74
|
-
[Chinese](https://github.com/sinatra/sinatra/blob/
|
|
75
|
-
[Russian](https://github.com/sinatra/sinatra/blob/
|
|
76
|
-
[European](https://github.com/sinatra/sinatra/blob/
|
|
77
|
-
[Brazilian](https://github.com/sinatra/sinatra/blob/
|
|
72
|
+
[Japanese](http://github.com/sinatra/sinatra/blob/main/README.ja.md),
|
|
73
|
+
[German](http://github.com/sinatra/sinatra/blob/main/README.de.md),
|
|
74
|
+
[Chinese](https://github.com/sinatra/sinatra/blob/main/README.zh.md),
|
|
75
|
+
[Russian](https://github.com/sinatra/sinatra/blob/main/README.ru.md),
|
|
76
|
+
[European](https://github.com/sinatra/sinatra/blob/main/README.pt-pt.md) and
|
|
77
|
+
[Brazilian](https://github.com/sinatra/sinatra/blob/main/README.pt-br.md)
|
|
78
78
|
Portuguese,
|
|
79
|
-
[French](https://github.com/sinatra/sinatra/blob/
|
|
80
|
-
[Spanish](https://github.com/sinatra/sinatra/blob/
|
|
81
|
-
[Korean](https://github.com/sinatra/sinatra/blob/
|
|
82
|
-
[Hungarian](https://github.com/sinatra/sinatra/blob/
|
|
79
|
+
[French](https://github.com/sinatra/sinatra/blob/main/README.fr.md),
|
|
80
|
+
[Spanish](https://github.com/sinatra/sinatra/blob/main/README.es.md),
|
|
81
|
+
[Korean](https://github.com/sinatra/sinatra/blob/main/README.ko.md), and
|
|
82
|
+
[Hungarian](https://github.com/sinatra/sinatra/blob/main/README.hu.md).
|
|
83
83
|
The translations tend to fall behind the English version. Translations into
|
|
84
84
|
other languages would also be appreciated.
|
|
85
85
|
|
data/Gemfile
CHANGED
|
@@ -1,13 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
# Why use bundler?
|
|
4
|
-
# Well, not all development dependencies install on all rubies. Moreover, `gem
|
|
5
|
-
# install sinatra --development` doesn't work, as it will also try to install
|
|
6
|
-
# development dependencies of our dependencies, and those are not conflict free.
|
|
7
|
-
# So, here we are, `bundle install`.
|
|
8
|
-
#
|
|
9
|
-
# If you have issues with a gem: `bundle install --without-coffee-script`.
|
|
10
|
-
|
|
11
3
|
source 'https://rubygems.org'
|
|
12
4
|
gemspec
|
|
13
5
|
|
|
@@ -15,45 +7,55 @@ gem 'rake'
|
|
|
15
7
|
|
|
16
8
|
rack_version = ENV['rack'].to_s
|
|
17
9
|
rack_version = nil if rack_version.empty? || (rack_version == 'stable')
|
|
18
|
-
rack_version = { github: 'rack/rack' } if rack_version == '
|
|
10
|
+
rack_version = { github: 'rack/rack' } if rack_version == 'head'
|
|
19
11
|
gem 'rack', rack_version
|
|
20
12
|
|
|
13
|
+
rack_session_version = ENV['rack_session'].to_s
|
|
14
|
+
rack_session_version = nil if rack_session_version.empty? || (rack_session_version == 'stable')
|
|
15
|
+
rack_session_version = { github: 'rack/rack-session' } if rack_session_version == 'head'
|
|
16
|
+
gem 'rack-session', rack_session_version
|
|
17
|
+
|
|
18
|
+
gem 'rackup'
|
|
19
|
+
|
|
21
20
|
puma_version = ENV['puma'].to_s
|
|
22
21
|
puma_version = nil if puma_version.empty? || (puma_version == 'stable')
|
|
23
|
-
puma_version = { github: 'puma/puma' } if puma_version == '
|
|
22
|
+
puma_version = { github: 'puma/puma' } if puma_version == 'head'
|
|
24
23
|
gem 'puma', puma_version
|
|
25
24
|
|
|
26
25
|
gem 'minitest', '~> 5.0'
|
|
27
|
-
gem 'rack-test'
|
|
26
|
+
gem 'rack-test'
|
|
28
27
|
gem 'rubocop', '~> 1.32.0', require: false
|
|
29
|
-
gem 'yard'
|
|
28
|
+
gem 'yard' # used by rake doc
|
|
30
29
|
|
|
31
30
|
gem 'rack-protection', path: 'rack-protection'
|
|
32
31
|
gem 'sinatra-contrib', path: 'sinatra-contrib'
|
|
33
32
|
|
|
34
|
-
gem 'activesupport', '~> 6.1'
|
|
35
|
-
|
|
36
33
|
gem 'asciidoctor'
|
|
37
34
|
gem 'builder'
|
|
35
|
+
gem 'childprocess', '>= 5'
|
|
38
36
|
gem 'commonmarker', '~> 0.23.4', platforms: [:ruby]
|
|
39
37
|
gem 'erubi'
|
|
40
38
|
gem 'eventmachine'
|
|
41
39
|
gem 'falcon', '~> 0.40', platforms: [:ruby]
|
|
42
|
-
gem 'haml', '~>
|
|
40
|
+
gem 'haml', '~> 6'
|
|
43
41
|
gem 'kramdown'
|
|
44
42
|
gem 'liquid'
|
|
45
43
|
gem 'markaby'
|
|
46
44
|
gem 'nokogiri', '> 1.5.0'
|
|
47
45
|
gem 'pandoc-ruby', '~> 2.0.2'
|
|
48
46
|
gem 'rabl'
|
|
49
|
-
gem 'rainbows', platforms: [:mri] # uses #fork
|
|
50
47
|
gem 'rdiscount', platforms: [:ruby]
|
|
51
48
|
gem 'rdoc'
|
|
52
49
|
gem 'redcarpet', platforms: [:ruby]
|
|
53
50
|
gem 'simplecov', require: false
|
|
54
51
|
gem 'slim', '~> 4'
|
|
55
52
|
gem 'yajl-ruby', platforms: [:ruby]
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
53
|
+
gem 'zeitwerk'
|
|
54
|
+
|
|
55
|
+
# sass-embedded depends on google-protobuf
|
|
56
|
+
# which fails to be installed on JRuby and TruffleRuby under aarch64
|
|
57
|
+
# https://github.com/jruby/jruby/issues/8062
|
|
58
|
+
# https://github.com/protocolbuffers/protobuf/issues/11935
|
|
59
|
+
java = %w(jruby truffleruby).include?(RUBY_ENGINE)
|
|
60
|
+
aarch64 = RbConfig::CONFIG["target_cpu"] == 'aarch64'
|
|
61
|
+
gem 'sass-embedded', '~> 1.54' unless java && aarch64
|
data/MAINTENANCE.md
CHANGED
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
|
|
5
5
|
### Releases
|
|
6
6
|
|
|
7
|
-
The next major version of Sinatra will be released from the
|
|
7
|
+
The next major version of Sinatra will be released from the main branch. Each version will be tagged so it will be possible to branch of should there be a need for bug fixes and other updates.
|
|
8
8
|
|
|
9
9
|
## Issues
|
|
10
10
|
|
|
11
11
|
### New features
|
|
12
12
|
|
|
13
|
-
New features will only be added to the
|
|
13
|
+
New features will only be added to the main branch and will not be made available in point releases.
|
|
14
14
|
|
|
15
15
|
### Bug fixes
|
|
16
16
|
|