rack-app 7.7.0 → 8.0.1

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: bf6acb7c4c89bd038387d214bd7379ade393a3f0b48088f4b7542b6a0c6f05ca
4
- data.tar.gz: e084eaa3c611498a98bbdb7cb1a8ccbcdc81cc893e1c08848a515db4b9e536f1
3
+ metadata.gz: 07a9a17e80aa8807b5a55f392d218ead2cb22f4c16e22ac53a99f311bbb03247
4
+ data.tar.gz: f7f8758892156831b6e22d65d198c1d0be0d278f552826464198b1abd9b00d8e
5
5
  SHA512:
6
- metadata.gz: '09f143bdb3a084226e0f51f9f8c471dff28b06ab99f4f52c0895abd3541673152ef3949f34711a5eb67fc53ce1544c0bfd0acf6d000b30cf803c5b28f96ce1c1'
7
- data.tar.gz: 6667a98608f80d53984ec9147373e370edecec9b5b525b74c3ff0c354f0843ea685deb2b96b57cae354039f56b1d1ab8104ae20bb1cf884bfba98c36b741c537
6
+ metadata.gz: 9b4d34c21f4bb8dc70e0ee1e82612025b8433c64b585492c2793baddf93fa1a6f5ce9aab7fdb2d6c69b57adde13aaa5338eab888bb4e9bf533a66276dac8b7ca
7
+ data.tar.gz: 12425024c7976b88c377b4b43c2f3d098b85e19690f31afb150a0093d8f1cc74033af3d97e1f212238efc47791707b0fc6063e4feabec796c290a11745fb4e4c
@@ -0,0 +1,6 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "bundler"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "daily"
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.6.3
1
+ 3.2.2
data/.travis.yml CHANGED
@@ -8,12 +8,10 @@ install:
8
8
  rvm:
9
9
  - ruby-head
10
10
  - jruby-head
11
- - jruby-19mode
12
- - 1.9
13
- - 2.3.8
14
- - 2.4.6
15
- - 2.5.5
16
- - 2.6.3
11
+ - 2.5
12
+ - 2.6
13
+ - 2.7
14
+ - 3.0
17
15
 
18
16
  matrix:
19
17
  allow_failures:
@@ -27,10 +25,6 @@ env:
27
25
  - BENCHMARK_QUANTITY=100000
28
26
  - STREAM_FILE_SIZE=68
29
27
 
30
- branches:
31
- only:
32
- - master
33
-
34
28
  notifications:
35
29
  email:
36
30
  - adamluzsi@gmail.com
data/README.md CHANGED
@@ -1,29 +1,23 @@
1
- # [Rack::App](http://www.rack-app.com/) [![Build Status][travis-image]][travis-link]
2
-
3
- [travis-image]: https://travis-ci.org/rack-app/rack-app.svg?branch=master
4
- [travis-link]: https://travis-ci.org/rack-app/rack-app
5
- [travis-home]: http://travis-ci.org/
1
+ # [Rack::App](http://www.rack-app.com/)
6
2
 
7
3
  ![rack-app-logo](/assets/rack-app-logo.png)
8
4
 
9
- Your next favorite rack-based micro-framework that is totally addition free!
10
- Have a cup of awesomeness with your sadistically minimalist framework!
5
+ `rack-app` is a minimalist web framework that focuses on simplicity and maintainability.
6
+ The framework is meant to be used by seasoned web developers.
11
7
 
12
- The idea behind is simple.
13
- Keep the dependencies and everything as little as possible,
14
- while able to write pure rack apps,
8
+ `rack-app` focus on keeping the dependencies as little as possible,
9
+ while allowing writing functional and minimalist rack-based applications,
15
10
  that will do nothing more than what you defined.
16
11
 
17
- The Routing can handle any amount of endpoints that can fit in the memory,
18
- so if you that crazy to use more than 10k endpoint,
19
- you still don't have to worry about response speed.
12
+ The routing uses a prefix tree,
13
+ thus adding a large number of API endpoints won't affect the routing lookup time.
20
14
 
21
- It was inspirited by sinatra, grape, and the pure use form of rack.
22
- It's in production, powering Back Ends on Heroku
15
+ It was inspirited by `Sinatra`, `grape`, and `rack`.
16
+ It's used in production, powering back-end APIs running on the public cloud.
23
17
 
24
18
  ## Development Status
25
19
 
26
- The framework considered stable.
20
+ The framework is considered stable.
27
21
  I don't have the plan to feature creep the framework without real-life use-cases,
28
22
  since most of the custom edge cases can be resolved with composition.
29
23
 
@@ -34,24 +28,10 @@ If you have an issue, I weekly check the issues tab,
34
28
  answer and reply, or implement a fix for it.
35
29
 
36
30
  Since the framework's only dependency is the `rack` gem,
37
- I don't have to update the code base to often.
31
+ I don't have to update the codebase too often.
38
32
 
39
33
  Cheers and Happy Coding!
40
34
 
41
- ## Concerns
42
-
43
- If you want to see fancy magic, you are in a bad place buddy!
44
-
45
- This also implies that the framework does not include extensions that monkey patch the whole world to give you nice features.
46
- Clean architecture defines that a web framework should only provide an external interface to the web, and nothing more.
47
-
48
- If you use rack-app, one thing is sure.
49
-
50
- You either love it or will be able to remove it from the project even after years of development because,
51
- it will not vendor-lock your application business entities and business use cases to this framework.
52
-
53
- And it's totally fine for us. We don't want everyone to be tied to our solutions, we only want to build clean and well-designed software for the developer happiness.
54
-
55
35
  ## Installation
56
36
 
57
37
  Add this line to your application's Gemfile:
@@ -324,55 +304,6 @@ end
324
304
  * [Escher Authorized Api](https://github.com/rack-app/rack-app-example-escher)
325
305
  * complex authorization for corporal level API use
326
306
 
327
- ## [Benchmarking](https://github.com/rack-app/rack-app-benchmark)
328
-
329
- This is a repo that used for measure Rack::App project speed in order to keep an eye on the performance in every release.
330
-
331
- the benchmarking was taken on the following hardware specification:
332
- * Processor: 2,7 GHz Intel Core i5
333
- * Memory: 16 GB 1867 MHz DDR3
334
- * Ruby: ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15]
335
-
336
-
337
- ### Endpoint to be call type: static
338
-
339
- #### number of declared endpoints: 100
340
-
341
- | name | version | current / fastest | real |
342
- | ---------------------- | ---------------------- | ---------------------- | ---------------------- |
343
- | rack-app | 4.0.0 | 1.0 | 2.2053215187043942e-05 |
344
- | rack-app | 5.2.0 | 1.185 | 2.6140331494390213e-05 |
345
- | rack-app | 5.0.0.rc3 | 1.387 | 3.0592694940592784e-05 |
346
- | rack-app | 5.10.0 | 1.687 | 3.719768107671963e-05 |
347
- | rack-app | 5.12.0 | 1.747 | 3.852106360719058e-05 |
348
- | rack-app | 5.7.0 | 1.784 | 3.934149001724991e-05 |
349
- | ramaze | 2012.12.08 | 2.237 | 4.932373271523216e-05 |
350
- | hobbit | 0.6.1 | 3.111 | 6.860981349018188e-05 |
351
- | brooklyn | 0.0.1 | 5.245 | 0.00011567194234917104 |
352
- | plezi | 0.14.1 | 5.334 | 0.00011763589749898317 |
353
- | plezi | 0.14.2 | 5.588 | 0.00012324020796222724 |
354
- | nancy | 0.3.0 | 5.725 | 0.00012626088352407584 |
355
- | nyny | 3.4.3 | 5.744 | 0.00012667404900032145 |
356
- | roda | 2.20.0 | 9.662 | 0.00021307581296423227 |
357
- | roda | 2.17.0 | 10.646 | 0.00023477471132838754 |
358
- | scorched | 0.25 | 12.728 | 0.0002807019599946191 |
359
- | scorched | 0.27 | 16.074 | 0.0003544879730325173 |
360
- | sinatra | 1.4.7 | 19.857 | 0.00043791615583657487 |
361
- | grape | 0.17.0 | 25.941 | 0.0005720832234016178 |
362
- | rails | 5.0.0 | 33.234 | 0.0007329187002032537 |
363
- | camping | 2.1.532 | 39.818 | 0.0008781073650072727 |
364
- | grape | 0.18.0 | 41.857 | 0.000923075147962645 |
365
- | rails | 5.0.0.1 | 47.286 | 0.0010428086559986802 |
366
- | cuba | 3.8.0 | 55.397 | 0.0012216723478342246 |
367
- | almost-sinatra | unknown | 58.728 | 0.0012951477793394547 |
368
-
369
- For more reports check the Benchmark repo out :)
370
-
371
- ## Roadmap
372
-
373
- ### Team [Backlog](https://docs.google.com/spreadsheets/d/19GGX51i6uCQQz8pQ-lvsIxu43huKCX-eC1526-RL3YA/edit?usp=sharing)
374
-
375
- If you have anything to say, you can leave a comment. :)
376
307
 
377
308
  ## Development
378
309
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 7.7.0
1
+ 8.0.1
@@ -1,4 +1,5 @@
1
- class Rack::App::CLI::Fetcher::Server < Rack::Server
1
+ require 'rackup/server'
2
+ class Rack::App::CLI::Fetcher::Server < ::Rackup::Server
2
3
 
3
4
  def get_rack_app
4
5
  app_class = self.app
@@ -14,7 +14,7 @@ class Rack::App::FileServer
14
14
  def initialize(root_folder, opts = {})
15
15
  @root_folder = root_folder
16
16
  @relative_file_paths = []
17
- @rack_file_server = ::Rack::File.new(@root_folder, {})
17
+ @rack_file_server = ::Rack::Files.new(@root_folder, {})
18
18
 
19
19
  if map_relative_file_paths?(opts)
20
20
  map_relative_paths!
@@ -9,7 +9,7 @@ module Rack::App::InstanceMethods::Payload
9
9
  while chunk = @request.body.gets
10
10
  yield(chunk)
11
11
  end
12
- @request.body.rewind
12
+ # @request.body.rewind
13
13
  nil
14
14
  end
15
15
 
@@ -9,7 +9,7 @@ class Rack::App::RequestStream
9
9
 
10
10
  def each(&block)
11
11
  enum = Enumerator.new do |y|
12
- @io.rewind
12
+ # @io.rewind
13
13
  while chunk = @io.gets
14
14
  y << @parser.call(chunk)
15
15
  end
@@ -15,7 +15,7 @@ module Rack::App::Test::Utils
15
15
  properties = format_properties(properties)
16
16
  env = properties[:headers].reduce({}) { |m, (k, v)| m.merge("HTTP_#{k.to_s.tr('-', '_').upcase}" => v.to_s) }
17
17
  payload = properties.delete(:payload)
18
- env["rack.input"]= ::Rack::Lint::InputWrapper.new(string_io_for(payload))
18
+ env["rack.input"]= ::Rack::Lint::Wrapper::InputWrapper.new(string_io_for(payload))
19
19
  env[::Rack::QUERY_STRING]= query_string_by(uri, properties[:params])
20
20
  env.merge!(properties[:env] || {})
21
21
 
data/rack-app.gemspec CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
9
9
  summary = 'Minimalist rack application interface building framework.'
10
10
  spec.summary = summary
11
11
  spec.description = summary
12
-
13
12
  spec.homepage = 'http://www.rack-app.com/'
13
+ spec.license = 'Apache License 2.0'
14
14
 
15
15
  spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
16
16
  spec.require_paths = ['lib']
@@ -18,10 +18,9 @@ Gem::Specification.new do |spec|
18
18
  spec.bindir = 'bin'
19
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
20
 
21
- spec.license = 'Apache License 2.0'
22
-
23
21
  spec.add_development_dependency 'bundler'
24
22
  spec.add_development_dependency 'rspec'
25
- spec.add_dependency 'rack'
23
+ spec.add_dependency 'rack', '>= 3.0.0'
24
+ spec.add_dependency 'rackup'
26
25
 
27
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack-app
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.7.0
4
+ version: 8.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Luzsi
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-12-24 00:00:00.000000000 Z
11
+ date: 2023-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -40,6 +40,20 @@ dependencies:
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rack
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 3.0.0
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: 3.0.0
55
+ - !ruby/object:Gem::Dependency
56
+ name: rackup
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
59
  - - ">="
@@ -61,6 +75,7 @@ extensions: []
61
75
  extra_rdoc_files: []
62
76
  files:
63
77
  - ".github/ISSUE_TEMPLATE/bug_report.md"
78
+ - ".github/dependabot.yml"
64
79
  - ".gitignore"
65
80
  - ".rspec"
66
81
  - ".rubocop.yml"
@@ -212,7 +227,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
212
227
  - !ruby/object:Gem::Version
213
228
  version: '0'
214
229
  requirements: []
215
- rubygems_version: 3.0.3
230
+ rubygems_version: 3.4.10
216
231
  signing_key:
217
232
  specification_version: 4
218
233
  summary: Minimalist rack application interface building framework.