rack-app 7.7.0 → 8.0.1

Sign up to get free protection for your applications and to get access to all the features.
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.