rage-rb 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +6 -3
- data/lib/rage/templates/Gemfile +1 -1
- data/lib/rage/version.rb +1 -1
- data/lib/rage-rb.rb +40 -0
- data/lib/rage.rb +1 -40
- data/rage.gemspec +2 -2
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88726c2fad086904077b7822723c8f840fee5beac920f21d08862c637c2c4b42
|
4
|
+
data.tar.gz: 37520e426a1036244dab498bbc3bb7c4155c2886ad3ecc3293f376d4dbcd6390
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1d635e49fc41cc68889ff1605ee1055e5ef443987b310730d91c675ca96083115f8de871a7f6d738535ee98790d2bd8b540aa476f18676fcbf6592dc719e60db
|
7
|
+
data.tar.gz: cdd975b3be0832d841455d736bdf1caa23d916e357ad8d20b641303b00d34dd2711fc8de34cb9a5488020ec59ec283aafc1aacb990119c075565b7c35dbfcfdd
|
data/README.md
CHANGED
@@ -1,12 +1,15 @@
|
|
1
1
|
# Rage
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/rage-rb.svg)](https://badge.fury.io/rb/rage-rb)
|
4
|
+
![Tests](https://github.com/rage-rb/rage/actions/workflows/main.yml/badge.svg)
|
5
|
+
|
3
6
|
Inspired by [Deno](https://deno.com) and built on top of [Iodine](https://github.com/rage-rb/iodine), this is a Ruby web framework that is based on the following design principles:
|
4
7
|
|
5
8
|
* **Rails compatible API** - Rails' API is clean, straightforward, and simply makes sense. I believe it was one of the reasons why Rails was so successful in the past.
|
6
9
|
|
7
10
|
* **High performance** - some think performance is not a major metric for a framework, but I don't believe it's true. Poor performance is a risk, and in today's world, companies refuse to use risky technologies.
|
8
11
|
|
9
|
-
* **API-only** - the only technology we should
|
12
|
+
* **API-only** - the only technology we should be using to create web UI is JavaScript. I recommend checking out [Vite](https://vitejs.dev) if you don't know where to start.
|
10
13
|
|
11
14
|
* **Acceptance of modern Ruby** - the framework includes a fiber scheduler, which means your code never blocks while waiting on IO.
|
12
15
|
|
@@ -16,7 +19,7 @@ This framework results from reflecting on [Ruby's declining popularity](https://
|
|
16
19
|
|
17
20
|
Install the gem:
|
18
21
|
```
|
19
|
-
$ gem install rage
|
22
|
+
$ gem install rage-rb
|
20
23
|
```
|
21
24
|
|
22
25
|
Create a new app:
|
@@ -64,7 +67,7 @@ end
|
|
64
67
|
```
|
65
68
|
![Time to complete 100 requests](https://github.com/rage-rb/rage/assets/2270393/007044e9-efe0-4675-9cab-8a4868154118)
|
66
69
|
|
67
|
-
##
|
70
|
+
## Upcoming releases
|
68
71
|
|
69
72
|
Version | Changes
|
70
73
|
------- |------------
|
data/lib/rage/templates/Gemfile
CHANGED
data/lib/rage/version.rb
CHANGED
data/lib/rage-rb.rb
ADDED
@@ -0,0 +1,40 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "rack"
|
4
|
+
require "json"
|
5
|
+
require "iodine"
|
6
|
+
|
7
|
+
module Rage
|
8
|
+
def self.application
|
9
|
+
Application.new(__router)
|
10
|
+
end
|
11
|
+
|
12
|
+
def self.routes
|
13
|
+
Rage::Router::DSL.new(__router)
|
14
|
+
end
|
15
|
+
|
16
|
+
def self.__router
|
17
|
+
@__router ||= Rage::Router::Backend.new
|
18
|
+
end
|
19
|
+
|
20
|
+
module Router
|
21
|
+
module Strategies
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
module RageController
|
27
|
+
end
|
28
|
+
|
29
|
+
require_relative "rage/application"
|
30
|
+
require_relative "rage/fiber"
|
31
|
+
require_relative "rage/fiber_scheduler"
|
32
|
+
|
33
|
+
require_relative "rage/router/strategies/host"
|
34
|
+
require_relative "rage/router/backend"
|
35
|
+
require_relative "rage/router/constrainer"
|
36
|
+
require_relative "rage/router/dsl"
|
37
|
+
require_relative "rage/router/handler_storage"
|
38
|
+
require_relative "rage/router/node"
|
39
|
+
|
40
|
+
require_relative "rage/controller/api"
|
data/lib/rage.rb
CHANGED
@@ -1,40 +1 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require "rack"
|
4
|
-
require "json"
|
5
|
-
require "iodine"
|
6
|
-
|
7
|
-
module Rage
|
8
|
-
def self.application
|
9
|
-
Application.new(__router)
|
10
|
-
end
|
11
|
-
|
12
|
-
def self.routes
|
13
|
-
Rage::Router::DSL.new(__router)
|
14
|
-
end
|
15
|
-
|
16
|
-
def self.__router
|
17
|
-
@__router ||= Rage::Router::Backend.new
|
18
|
-
end
|
19
|
-
|
20
|
-
module Router
|
21
|
-
module Strategies
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
module RageController
|
27
|
-
end
|
28
|
-
|
29
|
-
require_relative "rage/application"
|
30
|
-
require_relative "rage/fiber"
|
31
|
-
require_relative "rage/fiber_scheduler"
|
32
|
-
|
33
|
-
require_relative "rage/router/strategies/host"
|
34
|
-
require_relative "rage/router/backend"
|
35
|
-
require_relative "rage/router/constrainer"
|
36
|
-
require_relative "rage/router/dsl"
|
37
|
-
require_relative "rage/router/handler_storage"
|
38
|
-
require_relative "rage/router/node"
|
39
|
-
|
40
|
-
require_relative "rage/controller/api"
|
1
|
+
require "rage-rb"
|
data/rage.gemspec
CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
|
|
11
11
|
spec.summary = "Fast web framework compatible with Rails."
|
12
12
|
spec.homepage = "https://github.com/rage-rb/rage"
|
13
13
|
spec.license = "MIT"
|
14
|
-
spec.required_ruby_version = ">= 3.
|
14
|
+
spec.required_ruby_version = ">= 3.1.0"
|
15
15
|
|
16
16
|
spec.metadata["homepage_uri"] = spec.homepage
|
17
17
|
spec.metadata["source_code_uri"] = "https://github.com/rage-rb/rage"
|
@@ -27,7 +27,7 @@ Gem::Specification.new do |spec|
|
|
27
27
|
spec.executables = ["rage"]
|
28
28
|
spec.require_paths = ["lib"]
|
29
29
|
|
30
|
-
spec.add_dependency "thor"
|
30
|
+
spec.add_dependency "thor", "~> 1.0"
|
31
31
|
spec.add_dependency "rack", "~> 2.0"
|
32
32
|
spec.add_dependency "rage-iodine", "~> 1.0"
|
33
33
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rage-rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roman Samoilov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-09-
|
11
|
+
date: 2023-09-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
19
|
+
version: '1.0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
26
|
+
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -68,6 +68,7 @@ files:
|
|
68
68
|
- README.md
|
69
69
|
- Rakefile
|
70
70
|
- exe/rage
|
71
|
+
- lib/rage-rb.rb
|
71
72
|
- lib/rage.rb
|
72
73
|
- lib/rage/application.rb
|
73
74
|
- lib/rage/cli.rb
|
@@ -106,7 +107,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
106
107
|
requirements:
|
107
108
|
- - ">="
|
108
109
|
- !ruby/object:Gem::Version
|
109
|
-
version: 3.
|
110
|
+
version: 3.1.0
|
110
111
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
111
112
|
requirements:
|
112
113
|
- - ">="
|