ru.Bee 1.3.3 → 1.5.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/bin/rubee +36 -4
- data/lib/app/views/app.tsx +27 -0
- data/lib/app/views/apples_.erb +1 -0
- data/lib/app/views/index.html +47 -0
- data/lib/app/views/layout.erb +3 -3
- data/lib/app/views/utils/redirectToBackend.tsx +9 -0
- data/lib/app/views/welcome_show.erb +1 -1
- data/lib/config/base_configuration.rb +9 -0
- data/lib/config/routes.rb +1 -0
- data/lib/esbuild.config.js +33 -0
- data/lib/js/app.js +13 -0
- data/lib/js/app.js.map +7 -0
- data/lib/js/bundle.js +26157 -0
- data/lib/js/bundle.js.map +7 -0
- data/lib/node_modules/@types/cookie/LICENSE +21 -0
- data/lib/node_modules/@types/cookie/README.md +15 -0
- data/lib/node_modules/@types/cookie/index.d.ts +154 -0
- data/lib/node_modules/@types/cookie/package.json +30 -0
- data/lib/node_modules/cookie/LICENSE +24 -0
- data/lib/node_modules/cookie/README.md +248 -0
- data/lib/node_modules/cookie/dist/index.d.ts +114 -0
- data/lib/node_modules/cookie/dist/index.js +239 -0
- data/lib/node_modules/cookie/dist/index.js.map +1 -0
- data/lib/node_modules/cookie/package.json +42 -0
- data/lib/node_modules/js-tokens/CHANGELOG.md +151 -0
- data/lib/node_modules/js-tokens/LICENSE +21 -0
- data/lib/node_modules/js-tokens/README.md +240 -0
- data/lib/node_modules/js-tokens/index.js +23 -0
- data/lib/node_modules/js-tokens/package.json +30 -0
- data/lib/node_modules/loose-envify/LICENSE +21 -0
- data/lib/node_modules/loose-envify/README.md +45 -0
- data/lib/node_modules/loose-envify/cli.js +16 -0
- data/lib/node_modules/loose-envify/custom.js +4 -0
- data/lib/node_modules/loose-envify/index.js +3 -0
- data/lib/node_modules/loose-envify/loose-envify.js +36 -0
- data/lib/node_modules/loose-envify/package.json +36 -0
- data/lib/node_modules/loose-envify/replace.js +65 -0
- data/lib/node_modules/react/LICENSE +21 -0
- data/lib/node_modules/react/README.md +37 -0
- data/lib/node_modules/react/cjs/react-jsx-dev-runtime.development.js +1315 -0
- data/lib/node_modules/react/cjs/react-jsx-dev-runtime.production.min.js +10 -0
- data/lib/node_modules/react/cjs/react-jsx-dev-runtime.profiling.min.js +10 -0
- data/lib/node_modules/react/cjs/react-jsx-runtime.development.js +1333 -0
- data/lib/node_modules/react/cjs/react-jsx-runtime.production.min.js +11 -0
- data/lib/node_modules/react/cjs/react-jsx-runtime.profiling.min.js +11 -0
- data/lib/node_modules/react/cjs/react.development.js +2740 -0
- data/lib/node_modules/react/cjs/react.production.min.js +26 -0
- data/lib/node_modules/react/cjs/react.shared-subset.development.js +20 -0
- data/lib/node_modules/react/cjs/react.shared-subset.production.min.js +10 -0
- data/lib/node_modules/react/index.js +7 -0
- data/lib/node_modules/react/jsx-dev-runtime.js +7 -0
- data/lib/node_modules/react/jsx-runtime.js +7 -0
- data/lib/node_modules/react/package.json +47 -0
- data/lib/node_modules/react/react.shared-subset.js +7 -0
- data/lib/node_modules/react/umd/react.development.js +3343 -0
- data/lib/node_modules/react/umd/react.production.min.js +31 -0
- data/lib/node_modules/react/umd/react.profiling.min.js +31 -0
- data/lib/node_modules/react-dom/LICENSE +21 -0
- data/lib/node_modules/react-dom/README.md +60 -0
- data/lib/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js +7029 -0
- data/lib/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js +93 -0
- data/lib/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js +7093 -0
- data/lib/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js +101 -0
- data/lib/node_modules/react-dom/cjs/react-dom-server.browser.development.js +7014 -0
- data/lib/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js +96 -0
- data/lib/node_modules/react-dom/cjs/react-dom-server.node.development.js +7070 -0
- data/lib/node_modules/react-dom/cjs/react-dom-server.node.production.min.js +102 -0
- data/lib/node_modules/react-dom/cjs/react-dom-test-utils.development.js +1763 -0
- data/lib/node_modules/react-dom/cjs/react-dom-test-utils.production.min.js +40 -0
- data/lib/node_modules/react-dom/cjs/react-dom.development.js +29923 -0
- data/lib/node_modules/react-dom/cjs/react-dom.production.min.js +322 -0
- data/lib/node_modules/react-dom/cjs/react-dom.profiling.min.js +366 -0
- data/lib/node_modules/react-dom/client.js +25 -0
- data/lib/node_modules/react-dom/index.js +38 -0
- data/lib/node_modules/react-dom/package.json +62 -0
- data/lib/node_modules/react-dom/profiling.js +38 -0
- data/lib/node_modules/react-dom/server.browser.js +17 -0
- data/lib/node_modules/react-dom/server.js +3 -0
- data/lib/node_modules/react-dom/server.node.js +17 -0
- data/lib/node_modules/react-dom/test-utils.js +7 -0
- data/lib/node_modules/react-dom/umd/react-dom-server-legacy.browser.development.js +7026 -0
- data/lib/node_modules/react-dom/umd/react-dom-server-legacy.browser.production.min.js +75 -0
- data/lib/node_modules/react-dom/umd/react-dom-server.browser.development.js +7011 -0
- data/lib/node_modules/react-dom/umd/react-dom-server.browser.production.min.js +76 -0
- data/lib/node_modules/react-dom/umd/react-dom-test-utils.development.js +1759 -0
- data/lib/node_modules/react-dom/umd/react-dom-test-utils.production.min.js +33 -0
- data/lib/node_modules/react-dom/umd/react-dom.development.js +29924 -0
- data/lib/node_modules/react-dom/umd/react-dom.production.min.js +267 -0
- data/lib/node_modules/react-dom/umd/react-dom.profiling.min.js +285 -0
- data/lib/node_modules/react-router/CHANGELOG.md +1526 -0
- data/lib/node_modules/react-router/LICENSE.md +23 -0
- data/lib/node_modules/react-router/README.md +7 -0
- data/lib/node_modules/react-router/dist/development/chunk-KNED5TY2.mjs +10476 -0
- data/lib/node_modules/react-router/dist/development/dom-export.d.mts +23 -0
- data/lib/node_modules/react-router/dist/development/dom-export.d.ts +23 -0
- data/lib/node_modules/react-router/dist/development/dom-export.js +6111 -0
- data/lib/node_modules/react-router/dist/development/dom-export.mjs +234 -0
- data/lib/node_modules/react-router/dist/development/fog-of-war-1hWhK5ey.d.mts +1690 -0
- data/lib/node_modules/react-router/dist/development/fog-of-war-oa9CGk10.d.ts +1690 -0
- data/lib/node_modules/react-router/dist/development/future-ldDp5FKH.d.mts +21 -0
- data/lib/node_modules/react-router/dist/development/future-ldDp5FKH.d.ts +21 -0
- data/lib/node_modules/react-router/dist/development/index.d.mts +841 -0
- data/lib/node_modules/react-router/dist/development/index.d.ts +841 -0
- data/lib/node_modules/react-router/dist/development/index.js +10624 -0
- data/lib/node_modules/react-router/dist/development/index.mjs +242 -0
- data/lib/node_modules/react-router/dist/development/lib/types/route-module.d.mts +209 -0
- data/lib/node_modules/react-router/dist/development/lib/types/route-module.d.ts +209 -0
- data/lib/node_modules/react-router/dist/development/lib/types/route-module.js +28 -0
- data/lib/node_modules/react-router/dist/development/lib/types/route-module.mjs +10 -0
- data/lib/node_modules/react-router/dist/development/route-data-5OzAzQtT.d.mts +1716 -0
- data/lib/node_modules/react-router/dist/development/route-data-5OzAzQtT.d.ts +1716 -0
- data/lib/node_modules/react-router/dist/production/chunk-ZIM7OIE3.mjs +10476 -0
- data/lib/node_modules/react-router/dist/production/dom-export.d.mts +23 -0
- data/lib/node_modules/react-router/dist/production/dom-export.d.ts +23 -0
- data/lib/node_modules/react-router/dist/production/dom-export.js +6111 -0
- data/lib/node_modules/react-router/dist/production/dom-export.mjs +234 -0
- data/lib/node_modules/react-router/dist/production/fog-of-war-1hWhK5ey.d.mts +1690 -0
- data/lib/node_modules/react-router/dist/production/fog-of-war-oa9CGk10.d.ts +1690 -0
- data/lib/node_modules/react-router/dist/production/future-ldDp5FKH.d.mts +21 -0
- data/lib/node_modules/react-router/dist/production/future-ldDp5FKH.d.ts +21 -0
- data/lib/node_modules/react-router/dist/production/index.d.mts +841 -0
- data/lib/node_modules/react-router/dist/production/index.d.ts +841 -0
- data/lib/node_modules/react-router/dist/production/index.js +10624 -0
- data/lib/node_modules/react-router/dist/production/index.mjs +242 -0
- data/lib/node_modules/react-router/dist/production/lib/types/route-module.d.mts +209 -0
- data/lib/node_modules/react-router/dist/production/lib/types/route-module.d.ts +209 -0
- data/lib/node_modules/react-router/dist/production/lib/types/route-module.js +28 -0
- data/lib/node_modules/react-router/dist/production/lib/types/route-module.mjs +10 -0
- data/lib/node_modules/react-router/dist/production/route-data-5OzAzQtT.d.mts +1716 -0
- data/lib/node_modules/react-router/dist/production/route-data-5OzAzQtT.d.ts +1716 -0
- data/lib/node_modules/react-router/package.json +116 -0
- data/lib/node_modules/react-router-dom/LICENSE.md +23 -0
- data/lib/node_modules/react-router-dom/README.md +6 -0
- data/lib/node_modules/react-router-dom/dist/index.d.mts +2 -0
- data/lib/node_modules/react-router-dom/dist/index.d.ts +2 -0
- data/lib/node_modules/react-router-dom/dist/index.js +45 -0
- data/lib/node_modules/react-router-dom/dist/index.mjs +18 -0
- data/lib/node_modules/react-router-dom/package.json +82 -0
- data/lib/node_modules/scheduler/LICENSE +21 -0
- data/lib/node_modules/scheduler/README.md +9 -0
- data/lib/node_modules/scheduler/cjs/scheduler-unstable_mock.development.js +700 -0
- data/lib/node_modules/scheduler/cjs/scheduler-unstable_mock.production.min.js +20 -0
- data/lib/node_modules/scheduler/cjs/scheduler-unstable_post_task.development.js +207 -0
- data/lib/node_modules/scheduler/cjs/scheduler-unstable_post_task.production.min.js +14 -0
- data/lib/node_modules/scheduler/cjs/scheduler.development.js +634 -0
- data/lib/node_modules/scheduler/cjs/scheduler.production.min.js +19 -0
- data/lib/node_modules/scheduler/index.js +7 -0
- data/lib/node_modules/scheduler/package.json +36 -0
- data/lib/node_modules/scheduler/umd/scheduler-unstable_mock.development.js +699 -0
- data/lib/node_modules/scheduler/umd/scheduler-unstable_mock.production.min.js +19 -0
- data/lib/node_modules/scheduler/umd/scheduler.development.js +152 -0
- data/lib/node_modules/scheduler/umd/scheduler.production.min.js +146 -0
- data/lib/node_modules/scheduler/umd/scheduler.profiling.min.js +146 -0
- data/lib/node_modules/scheduler/unstable_mock.js +7 -0
- data/lib/node_modules/scheduler/unstable_post_task.js +7 -0
- data/lib/node_modules/set-cookie-parser/LICENSE +21 -0
- data/lib/node_modules/set-cookie-parser/README.md +202 -0
- data/lib/node_modules/set-cookie-parser/lib/set-cookie.js +224 -0
- data/lib/node_modules/set-cookie-parser/package.json +45 -0
- data/lib/node_modules/turbo-stream/LICENSE +7 -0
- data/lib/node_modules/turbo-stream/README.md +31 -0
- data/lib/node_modules/turbo-stream/dist/flatten.d.ts +2 -0
- data/lib/node_modules/turbo-stream/dist/flatten.js +203 -0
- data/lib/node_modules/turbo-stream/dist/turbo-stream.d.ts +13 -0
- data/lib/node_modules/turbo-stream/dist/turbo-stream.js +207 -0
- data/lib/node_modules/turbo-stream/dist/turbo-stream.mjs +673 -0
- data/lib/node_modules/turbo-stream/dist/unflatten.d.ts +2 -0
- data/lib/node_modules/turbo-stream/dist/unflatten.js +243 -0
- data/lib/node_modules/turbo-stream/dist/utils.d.ts +44 -0
- data/lib/node_modules/turbo-stream/dist/utils.js +55 -0
- data/lib/node_modules/turbo-stream/package.json +50 -0
- data/lib/package-lock.json +133 -0
- data/lib/package.json +12 -0
- data/lib/rubee/controllers/base_controller.rb +14 -0
- data/lib/rubee.rb +100 -21
- data/lib/tests/rubee_generator_test.rb +190 -0
- data/lib/tests/rubeeapp_test.rb +12 -0
- data/lib/tests/test.db +0 -0
- data/lib/tests/user_model_test.rb +5 -0
- data/readme.md +288 -64
- metadata +172 -3
data/readme.md
CHANGED
@@ -24,13 +24,13 @@ All greaet features are yet to come!
|
|
24
24
|
- **Contract driven**: Define your API contracts in a simple, declarative manner. And generate the files for you.
|
25
25
|
- **Fast**: Optimized for speed, providing a quick response to requests. Everything is relative, I know!
|
26
26
|
- **Rack**: Rack backed. All Rack api is available for integration.
|
27
|
-
- **Router**: Router driven - generates all required files from the routes.
|
28
27
|
- **Databases**: Sqlite3, Postgres, Mysql and many more supported by sequel gem.
|
29
|
-
- **Views**: Json, ERB and plain HTML
|
28
|
+
- **Views**: Json, ERB and plain HTML and ..
|
29
|
+
- **React** is supported out of the box as a rubee view
|
30
30
|
- **Bundlable** Charge your ruBee with any gem you need and update your project with bundle.
|
31
31
|
- **ORM** All models are natively ORM objects, however you can use it as a blueurpint for any datasources.
|
32
32
|
- **Authentificatable** Add JWT authentification easily to any controller action.
|
33
|
-
- **Hooks**
|
33
|
+
- **Hooks** Addlogic before, after and around any action.
|
34
34
|
- **Test** Run all or selected tests witin minitest.
|
35
35
|
- **Asyncable** Add async adapter and pick any popular background job queue enginee
|
36
36
|
|
@@ -50,8 +50,7 @@ cd my_project
|
|
50
50
|
3. Install dependencies
|
51
51
|
|
52
52
|
***Prerequisites***<br />
|
53
|
-
|
54
|
-
Aside that, make sure:
|
53
|
+
Make sure:
|
55
54
|
**Ruby** language (3+) is installed
|
56
55
|
**Bundler** is installed
|
57
56
|
|
@@ -66,35 +65,46 @@ rubee start
|
|
66
65
|
|
67
66
|
5. Open your browser and go to http://localhost:7000
|
68
67
|
|
69
|
-
##
|
70
|
-
1. Add the routes to the routes.rb
|
71
|
-
```bash
|
72
|
-
Rubee::Router.draw do |router|
|
73
|
-
...
|
74
|
-
# draw the contract
|
75
|
-
router.get "/apples", to: "apples#index",
|
76
|
-
model: {
|
77
|
-
name: "apple",
|
78
|
-
attributes: [
|
79
|
-
{ name: 'id', type: :integer },
|
80
|
-
{ name: 'colour', type: :string },
|
81
|
-
{ name: 'weight', type: :integer }
|
82
|
-
]
|
83
|
-
}
|
84
|
-
end
|
85
|
-
```
|
86
|
-
2. genrate the files
|
87
|
-
```bash
|
88
|
-
rubee generate get /apples
|
89
|
-
```
|
90
|
-
3. This will generate the following files
|
68
|
+
## Run the tests
|
91
69
|
```bash
|
92
|
-
|
93
|
-
./app/models/apple.rb # Model that acts as ORM
|
94
|
-
./app/views/apples_index.erb # ERB view that is rendered by the controller right away
|
95
|
-
./db/create_items.rb # Database migration file needed for creating repsective table
|
70
|
+
rubee test
|
96
71
|
```
|
97
|
-
|
72
|
+
|
73
|
+
## Create API contract and generate files from the routes
|
74
|
+
1. Add the routes to the routes.rb
|
75
|
+
```ruby
|
76
|
+
Rubee::Router.draw do |router|
|
77
|
+
...
|
78
|
+
# draw the contract
|
79
|
+
router.get "/apples", to: "apples#index",
|
80
|
+
model: {
|
81
|
+
name: "apple",
|
82
|
+
attributes: [
|
83
|
+
{ name: 'id', type: :primary },
|
84
|
+
{ name: 'colour', type: :string },
|
85
|
+
{ name: 'weight', type: :integer }
|
86
|
+
]
|
87
|
+
}
|
88
|
+
end
|
89
|
+
```
|
90
|
+
2. generate the files
|
91
|
+
```bash
|
92
|
+
rubee generate get /apples
|
93
|
+
```
|
94
|
+
- This will generate the following files
|
95
|
+
```bash
|
96
|
+
./app/controllers/apples_controller.rb # Controller with respective action
|
97
|
+
./app/views/apples_index.erb # ERB view that is rendered by the controller right away
|
98
|
+
./app/models/apple.rb # Model that acts as ORM
|
99
|
+
./db/create_apples.rb # Database migration file needed for creating repsective table
|
100
|
+
```
|
101
|
+
|
102
|
+
3. Run the initial db migration
|
103
|
+
```bash
|
104
|
+
rubee db run:all
|
105
|
+
```
|
106
|
+
|
107
|
+
5. Fill the generated files with the logic you need and run the server again!
|
98
108
|
|
99
109
|
## Model
|
100
110
|
Model in ruBee is just simple ruby object that can be serilalized in the view
|
@@ -106,8 +116,8 @@ Here below is a simple example on how it can be used by rendering json from in m
|
|
106
116
|
#ApplesController
|
107
117
|
|
108
118
|
def show
|
109
|
-
#
|
110
|
-
apples = [Apple.new(colour: 'red', weight: '1lb'), Apple.new(colour: 'green', weight: '1lb')]
|
119
|
+
# In memory example
|
120
|
+
apples = [Apple.new(colour: 'red', weight: '1lb'), Apple.new(colour: 'green', weight: '1lb')]
|
111
121
|
apple = apples.find { |apple| apple.colour = params[:colour] }
|
112
122
|
|
113
123
|
response_with object: apple, type: :json
|
@@ -121,8 +131,8 @@ Just make sure Serializable module included in the target class.
|
|
121
131
|
attr_accessor :id, :colour, :weight
|
122
132
|
end
|
123
133
|
```
|
124
|
-
However, you can simply turn it to ORM object by extending database class.
|
125
|
-
|
134
|
+
However, you can simply turn it to ORM object by extending database class Rubee::SequelObject.
|
135
|
+
This one is already serializable and charged with hooks.
|
126
136
|
```Ruby
|
127
137
|
class Apple < Rubee::SequelObject
|
128
138
|
attr_accessor :id, :colour, :weight
|
@@ -130,7 +140,6 @@ However, you can simply turn it to ORM object by extending database class.
|
|
130
140
|
```
|
131
141
|
|
132
142
|
So in the controller you would need to query your target object now.
|
133
|
-
|
134
143
|
```ruby
|
135
144
|
#ApplesController
|
136
145
|
|
@@ -275,10 +284,138 @@ irb(main):010> .then { |dataset| Comment.serialize(dataset) }
|
|
275
284
|
This is recommended when you want to run one query and serialize it back to Rubee object only once.
|
276
285
|
So it may safe some resources.
|
277
286
|
|
287
|
+
## Routing
|
288
|
+
Rubee uses explicit routes. In the routes.rb yout can define routes for any of the main HTTP methods. You can also add any matched parameter denoted by a pair of `{ }` in the path of the route. Eg. `/path/to/{a_key}/somewhere`
|
289
|
+
|
290
|
+
### Routing methods
|
291
|
+
``` ruby
|
292
|
+
Rubee::Router.draw do |router|
|
293
|
+
router.get '/posts', to: 'posts#index'
|
294
|
+
router.post '/posts', to: 'posts#create'
|
295
|
+
router.patch '/posts/{id}', to: 'posts#update'
|
296
|
+
router.put '/posts/{id}', to: 'posts#update'
|
297
|
+
router.delete '/posts/{id}', to: 'posts#delete'
|
298
|
+
router.head '/posts', to: 'posts#index'
|
299
|
+
router.connect '/posts', to: 'posts#index'
|
300
|
+
router.options '/posts', to: 'posts#index'
|
301
|
+
router.trace '/posts', to: 'posts#index'
|
302
|
+
end
|
303
|
+
```
|
304
|
+
|
305
|
+
As you see above every route is set up as:\
|
306
|
+
`route.http_method path, to: "controller#action", model { ...optional }`
|
278
307
|
|
308
|
+
### Defining Model attributes in routes
|
309
|
+
One of Rubee's unique traits is where we can define our models for generation. You've seen above one possible way you can set up.
|
310
|
+
|
311
|
+
```ruby
|
312
|
+
Rubee::Router.draw do |router|
|
313
|
+
...
|
314
|
+
# draw the contract
|
315
|
+
router.get "/apples", to: "apples#index",
|
316
|
+
model: {
|
317
|
+
name: "apple",
|
318
|
+
attributes: [
|
319
|
+
{ name: 'id', type: :primary },
|
320
|
+
{ name: 'colour', type: :string },
|
321
|
+
{ name: 'weight', type: :integer }
|
322
|
+
]
|
323
|
+
}
|
324
|
+
end
|
325
|
+
```
|
326
|
+
|
327
|
+
There are many other keys supported by us and Sequel to help generate your initial db files. Other supported attribute key types are:
|
328
|
+
``` ruby
|
329
|
+
[
|
330
|
+
{ name: 'key1', type: :primary},
|
331
|
+
{ name: 'key2', type: :string },
|
332
|
+
{ name: 'key3', type: :text },
|
333
|
+
{ name: 'key4', type: :integer },
|
334
|
+
{ name: 'key5', type: :date },
|
335
|
+
{ name: 'key6', type: :datetime },
|
336
|
+
{ name: 'key7', type: :time },
|
337
|
+
{ name: 'key8', type: :boolean },
|
338
|
+
{ name: 'key9', type: :bigint },
|
339
|
+
{ name: 'key10', type: :decimal },
|
340
|
+
{ name: 'key11', type: :foreign_key },
|
341
|
+
{ name: 'key12', type: :index },
|
342
|
+
{ name: 'key13', type: :unique }
|
343
|
+
]
|
344
|
+
```
|
345
|
+
Every attribute can have a set of options passed based on their related [Sequel schema definition](https://github.com/jeremyevans/sequel/blob/master/doc/schema_modification.rdoc).
|
346
|
+
|
347
|
+
An example of this would be for the type string: \
|
348
|
+
`{name: 'key', type: :string, options: { size: 50, fixed: true } }`
|
349
|
+
|
350
|
+
Gets translated to:\
|
351
|
+
`String :key, size: 50, fixed: true`
|
352
|
+
|
353
|
+
### Generation from routes
|
354
|
+
As long as you have a `{ model: 'something' }` passed to your given route you can use it to generate your initial model files. If only a `path` and a `to:` are defined will only generate a controller and a corresponding view.
|
355
|
+
|
356
|
+
To generate based on a get route for the path /apples:\
|
357
|
+
`rubee generate get /apples` or `rubee gen get /apples`\
|
358
|
+
|
359
|
+
To generate base on a patch request for the path /apples/{id}:\
|
360
|
+
`rubee generate patch /apples/{id}` or `rubee gen patch /apples/{id}`
|
361
|
+
|
362
|
+
|
363
|
+
Example:
|
364
|
+
```ruby
|
365
|
+
Rubee::Router.draw do |router|
|
366
|
+
...
|
367
|
+
# draw the contract
|
368
|
+
router.get "/apples", to: "apples#index"
|
369
|
+
end
|
370
|
+
```
|
371
|
+
Will Generate:
|
372
|
+
```bash
|
373
|
+
./app/controllers/apples_controller.rb # Controller with respective action
|
374
|
+
./app/views/apples_index.erb # ERB view that is rendered by the controller right away
|
375
|
+
```
|
376
|
+
|
377
|
+
Example 2:
|
378
|
+
```ruby
|
379
|
+
Rubee::Router.draw do |router|
|
380
|
+
...
|
381
|
+
# draw the contract
|
382
|
+
router.get "/apples", to: "apples#index", model: { name: 'apple' }
|
383
|
+
end
|
384
|
+
```
|
385
|
+
Will generate:
|
386
|
+
```bash
|
387
|
+
./app/controllers/apples_controller.rb # Controller with respective action
|
388
|
+
./app/views/apples_index.erb # ERB view that is rendered by the controller right away
|
389
|
+
./app/models/apple.rb # Model that acts as ORM
|
390
|
+
```
|
391
|
+
|
392
|
+
Example 3:
|
393
|
+
```ruby
|
394
|
+
Rubee::Router.draw do |router|
|
395
|
+
...
|
396
|
+
# draw the contract
|
397
|
+
router.get "/apples", to: "apples#index",
|
398
|
+
model: {
|
399
|
+
name: 'apple',
|
400
|
+
attributes: [
|
401
|
+
{ name: 'id', type: :primary },
|
402
|
+
{ name: 'colour', type: :string },
|
403
|
+
{ name: 'weight', type: :integer }
|
404
|
+
]
|
405
|
+
}
|
406
|
+
end
|
407
|
+
```
|
408
|
+
|
409
|
+
Will generate:
|
410
|
+
```bash
|
411
|
+
./app/controllers/apples_controller.rb # Controller with respective action
|
412
|
+
./app/models/apple.rb # Model that acts as ORM
|
413
|
+
./app/views/apples_index.erb # ERB view that is rendered by the controller right away
|
414
|
+
./db/create_items.rb # Database migration file needed for creating repsective table
|
415
|
+
```
|
279
416
|
|
280
417
|
## Views
|
281
|
-
View in ruBee is just a plain html/erb file that can be rendered from the controller.
|
418
|
+
View in ruBee is just a plain html/erb/react file that can be rendered from the controller.
|
282
419
|
|
283
420
|
## Templates over erb
|
284
421
|
|
@@ -311,6 +448,107 @@ end
|
|
311
448
|
<p><%= locals[:object][:message] %></p> # displaying, passed in the controller object
|
312
449
|
</div>
|
313
450
|
```
|
451
|
+
|
452
|
+
## React as a view
|
453
|
+
|
454
|
+
React is supported out of the box in the rubee view.
|
455
|
+
Make react as a view representation layer is easy.
|
456
|
+
|
457
|
+
Prerequisites: Node and NPM are required
|
458
|
+
|
459
|
+
1. Make sure after creating project and bundling you have installed react dependencies by
|
460
|
+
|
461
|
+
```bash
|
462
|
+
rubee react prepare # this will install react related node modules
|
463
|
+
```
|
464
|
+
2. Make sure you have configured react in the configuration file
|
465
|
+
|
466
|
+
```ruby
|
467
|
+
# config/base_configuration/rb
|
468
|
+
Rubee::Configuration.setup(env = :development) do |config|
|
469
|
+
config.database_url = { url: 'sqlite://db/development.db', env: }
|
470
|
+
|
471
|
+
# this line registers react as a view
|
472
|
+
config.react = { on: true, env: }
|
473
|
+
end
|
474
|
+
```
|
475
|
+
|
476
|
+
3. Start server by
|
477
|
+
|
478
|
+
```bash
|
479
|
+
rubee start
|
480
|
+
```
|
481
|
+
|
482
|
+
3. Open your browser and navigate to http://localhost:3000/home
|
483
|
+
|
484
|
+
4. You will see the react app running in the browser.
|
485
|
+
|
486
|
+
5. For development purposes make sure you run `rubee start_dev` and in other terminal window run `rubee react watch`.
|
487
|
+
So that will ensure all cahnges applying instantly.
|
488
|
+
|
489
|
+
6. You can generate react view from the route by indicating the view name explicitly
|
490
|
+
|
491
|
+
```ruby
|
492
|
+
# config/routes.rb
|
493
|
+
Rubee::Router.draw do |router|
|
494
|
+
router.get('/', to: 'welcome#show') # override it for your app
|
495
|
+
|
496
|
+
router.get('/api/users', to: 'user#index', react: { view_name: 'users.tsx' })
|
497
|
+
# Please note /api/users is the backend endpoint
|
498
|
+
# For rendering generated /app/views/users.tsx file, you need to update react routes
|
499
|
+
end
|
500
|
+
```
|
501
|
+
|
502
|
+
7. Add logic to generated api controller
|
503
|
+
|
504
|
+
```ruby
|
505
|
+
# app/controllers/api/user_controller.rb
|
506
|
+
class Api::UserController < Rubee::BaseController
|
507
|
+
def index
|
508
|
+
response_with object: User.all, type: :json
|
509
|
+
end
|
510
|
+
end
|
511
|
+
```
|
512
|
+
8. Register path in react routes
|
513
|
+
|
514
|
+
```javascript
|
515
|
+
// app/views/app.tsx
|
516
|
+
<Router>
|
517
|
+
<Routes>
|
518
|
+
<Route path="/users" element={<Users />} />
|
519
|
+
<Route path="*" element={<NotFound />} />
|
520
|
+
</Routes>
|
521
|
+
</Router>
|
522
|
+
```
|
523
|
+
9. Fetch data from the backend in the users.tsx react component and display it in the browser http://localhost:3000/users
|
524
|
+
|
525
|
+
```javascript
|
526
|
+
# app/views/users.tsx
|
527
|
+
import { useState, useEffect } from 'react';
|
528
|
+
|
529
|
+
function Users() {
|
530
|
+
const [users, setUsers] = useState([]);
|
531
|
+
|
532
|
+
useEffect(() => {
|
533
|
+
fetch('/api/users')
|
534
|
+
.then(response => response.json())
|
535
|
+
.then(data => setUsers(data));
|
536
|
+
}, []);
|
537
|
+
|
538
|
+
return (
|
539
|
+
<div>
|
540
|
+
<h1>Users</h1>
|
541
|
+
<ul>
|
542
|
+
{users.map(user => (
|
543
|
+
<li key={user.id}>id: {user.id}: {user.name}</li>
|
544
|
+
))}
|
545
|
+
</ul>
|
546
|
+
</div>
|
547
|
+
);
|
548
|
+
}
|
549
|
+
|
550
|
+
```
|
551
|
+
|
314
552
|
## Object hooks
|
315
553
|
|
316
554
|
In ruBee by extending Hookable module any Ruby object can be charged with hooks (logic),
|
@@ -406,6 +644,8 @@ end
|
|
406
644
|
```bash
|
407
645
|
rubee start # start the server
|
408
646
|
rubee start_dev # start the server in dev mode, which restart server on changes
|
647
|
+
rubee react prepare # install react dependencies
|
648
|
+
rubee react watch # dev mode for react, works together with start_dev
|
409
649
|
rubee stop # stop the server
|
410
650
|
rubee restart # restart the server
|
411
651
|
```
|
@@ -417,6 +657,7 @@ rubee generate get /apples # generate controller view, model and migration if se
|
|
417
657
|
|
418
658
|
## Migraiton commands
|
419
659
|
```bash
|
660
|
+
rubee db run:all # run all migrations
|
420
661
|
rubee db run:create_apples # where create_apples is the name of the migration file, located in /db folder
|
421
662
|
rubee db structure # generate migration file for the database structure
|
422
663
|
```
|
@@ -424,6 +665,7 @@ rubee db structure # generate migration file for the database structure
|
|
424
665
|
## Rubee console
|
425
666
|
```bash
|
426
667
|
rubee console # start the console
|
668
|
+
# you can reload the console by typing reload, so it will pick up latest changes
|
427
669
|
```
|
428
670
|
|
429
671
|
## Testing
|
@@ -431,6 +673,7 @@ rubee console # start the console
|
|
431
673
|
rubee test # run all tests
|
432
674
|
rubee test auth_tokenable_test.rb # run specific tests
|
433
675
|
```
|
676
|
+
|
434
677
|
If you want to run any ruBee command within a specific ENV make sure you added it before a command.
|
435
678
|
For instance if you want to run console in test environment you need to run the following command
|
436
679
|
|
@@ -514,30 +757,11 @@ TestAsyncRunnner.new.perform_async(options: {"email"=> "new@new.com", "password"
|
|
514
757
|
|
515
758
|
### Contributing
|
516
759
|
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
```bash
|
523
|
-
git clone https://github.com/your-username/rubee.git
|
524
|
-
```
|
525
|
-
|
526
|
-
3. Create a new branch for your feature or bug fix:
|
527
|
-
```bash
|
528
|
-
git checkout -b feature/your-feature-name
|
529
|
-
```
|
530
|
-
|
531
|
-
4. Make your changes and commit them with descriptive messages:
|
532
|
-
```bash
|
533
|
-
git commit -m "Add feature: [brief description of feature]"
|
534
|
-
```
|
535
|
-
|
536
|
-
5. Push your changes to your fork:
|
537
|
-
```bash
|
538
|
-
git push origin feature/your-feature-name
|
539
|
-
```
|
540
|
-
|
541
|
-
6. Submit a pull request to the main branch of the original repository.
|
760
|
+
If you are interested in contributing to ruBee,
|
761
|
+
please read the [Contributing](https://github.com/nucleom42/rubee/blob/main/CONTRIBUTING.md) guide.
|
762
|
+
Also feel free to open an [issue](https://github.com/nucleom42/rubee/issues) if you apot one.
|
763
|
+
Have an idea or you wnat to discuss something?
|
764
|
+
Please open a [discussion](https://github.com/nucleom42/rubee/discussions)
|
542
765
|
|
543
|
-
|
766
|
+
## License
|
767
|
+
This project is released under the MIT License.
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ru.Bee
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oleg Saltykov
|
8
8
|
bindir: bin
|
9
9
|
cert_chain: []
|
10
|
-
date:
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
11
11
|
dependencies:
|
12
12
|
- !ruby/object:Gem::Dependency
|
13
13
|
name: bundler
|
@@ -43,7 +43,11 @@ files:
|
|
43
43
|
- lib/Dockerfile
|
44
44
|
- lib/app/controllers/welcome_controller.rb
|
45
45
|
- lib/app/models/user.rb
|
46
|
+
- lib/app/views/app.tsx
|
47
|
+
- lib/app/views/apples_.erb
|
48
|
+
- lib/app/views/index.html
|
46
49
|
- lib/app/views/layout.erb
|
50
|
+
- lib/app/views/utils/redirectToBackend.tsx
|
47
51
|
- lib/app/views/welcome_header.erb
|
48
52
|
- lib/app/views/welcome_show.erb
|
49
53
|
- lib/config.ru
|
@@ -54,8 +58,172 @@ files:
|
|
54
58
|
- lib/db/create_posts.rb
|
55
59
|
- lib/db/create_users.rb
|
56
60
|
- lib/db/structure.rb
|
61
|
+
- lib/esbuild.config.js
|
57
62
|
- lib/images/rubee.svg
|
58
63
|
- lib/inits/print_colors.rb
|
64
|
+
- lib/js/app.js
|
65
|
+
- lib/js/app.js.map
|
66
|
+
- lib/js/bundle.js
|
67
|
+
- lib/js/bundle.js.map
|
68
|
+
- lib/node_modules/@types/cookie/LICENSE
|
69
|
+
- lib/node_modules/@types/cookie/README.md
|
70
|
+
- lib/node_modules/@types/cookie/index.d.ts
|
71
|
+
- lib/node_modules/@types/cookie/package.json
|
72
|
+
- lib/node_modules/cookie/LICENSE
|
73
|
+
- lib/node_modules/cookie/README.md
|
74
|
+
- lib/node_modules/cookie/dist/index.d.ts
|
75
|
+
- lib/node_modules/cookie/dist/index.js
|
76
|
+
- lib/node_modules/cookie/dist/index.js.map
|
77
|
+
- lib/node_modules/cookie/package.json
|
78
|
+
- lib/node_modules/js-tokens/CHANGELOG.md
|
79
|
+
- lib/node_modules/js-tokens/LICENSE
|
80
|
+
- lib/node_modules/js-tokens/README.md
|
81
|
+
- lib/node_modules/js-tokens/index.js
|
82
|
+
- lib/node_modules/js-tokens/package.json
|
83
|
+
- lib/node_modules/loose-envify/LICENSE
|
84
|
+
- lib/node_modules/loose-envify/README.md
|
85
|
+
- lib/node_modules/loose-envify/cli.js
|
86
|
+
- lib/node_modules/loose-envify/custom.js
|
87
|
+
- lib/node_modules/loose-envify/index.js
|
88
|
+
- lib/node_modules/loose-envify/loose-envify.js
|
89
|
+
- lib/node_modules/loose-envify/package.json
|
90
|
+
- lib/node_modules/loose-envify/replace.js
|
91
|
+
- lib/node_modules/react-dom/LICENSE
|
92
|
+
- lib/node_modules/react-dom/README.md
|
93
|
+
- lib/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js
|
94
|
+
- lib/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js
|
95
|
+
- lib/node_modules/react-dom/cjs/react-dom-server-legacy.node.development.js
|
96
|
+
- lib/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.min.js
|
97
|
+
- lib/node_modules/react-dom/cjs/react-dom-server.browser.development.js
|
98
|
+
- lib/node_modules/react-dom/cjs/react-dom-server.browser.production.min.js
|
99
|
+
- lib/node_modules/react-dom/cjs/react-dom-server.node.development.js
|
100
|
+
- lib/node_modules/react-dom/cjs/react-dom-server.node.production.min.js
|
101
|
+
- lib/node_modules/react-dom/cjs/react-dom-test-utils.development.js
|
102
|
+
- lib/node_modules/react-dom/cjs/react-dom-test-utils.production.min.js
|
103
|
+
- lib/node_modules/react-dom/cjs/react-dom.development.js
|
104
|
+
- lib/node_modules/react-dom/cjs/react-dom.production.min.js
|
105
|
+
- lib/node_modules/react-dom/cjs/react-dom.profiling.min.js
|
106
|
+
- lib/node_modules/react-dom/client.js
|
107
|
+
- lib/node_modules/react-dom/index.js
|
108
|
+
- lib/node_modules/react-dom/package.json
|
109
|
+
- lib/node_modules/react-dom/profiling.js
|
110
|
+
- lib/node_modules/react-dom/server.browser.js
|
111
|
+
- lib/node_modules/react-dom/server.js
|
112
|
+
- lib/node_modules/react-dom/server.node.js
|
113
|
+
- lib/node_modules/react-dom/test-utils.js
|
114
|
+
- lib/node_modules/react-dom/umd/react-dom-server-legacy.browser.development.js
|
115
|
+
- lib/node_modules/react-dom/umd/react-dom-server-legacy.browser.production.min.js
|
116
|
+
- lib/node_modules/react-dom/umd/react-dom-server.browser.development.js
|
117
|
+
- lib/node_modules/react-dom/umd/react-dom-server.browser.production.min.js
|
118
|
+
- lib/node_modules/react-dom/umd/react-dom-test-utils.development.js
|
119
|
+
- lib/node_modules/react-dom/umd/react-dom-test-utils.production.min.js
|
120
|
+
- lib/node_modules/react-dom/umd/react-dom.development.js
|
121
|
+
- lib/node_modules/react-dom/umd/react-dom.production.min.js
|
122
|
+
- lib/node_modules/react-dom/umd/react-dom.profiling.min.js
|
123
|
+
- lib/node_modules/react-router-dom/LICENSE.md
|
124
|
+
- lib/node_modules/react-router-dom/README.md
|
125
|
+
- lib/node_modules/react-router-dom/dist/index.d.mts
|
126
|
+
- lib/node_modules/react-router-dom/dist/index.d.ts
|
127
|
+
- lib/node_modules/react-router-dom/dist/index.js
|
128
|
+
- lib/node_modules/react-router-dom/dist/index.mjs
|
129
|
+
- lib/node_modules/react-router-dom/package.json
|
130
|
+
- lib/node_modules/react-router/CHANGELOG.md
|
131
|
+
- lib/node_modules/react-router/LICENSE.md
|
132
|
+
- lib/node_modules/react-router/README.md
|
133
|
+
- lib/node_modules/react-router/dist/development/chunk-KNED5TY2.mjs
|
134
|
+
- lib/node_modules/react-router/dist/development/dom-export.d.mts
|
135
|
+
- lib/node_modules/react-router/dist/development/dom-export.d.ts
|
136
|
+
- lib/node_modules/react-router/dist/development/dom-export.js
|
137
|
+
- lib/node_modules/react-router/dist/development/dom-export.mjs
|
138
|
+
- lib/node_modules/react-router/dist/development/fog-of-war-1hWhK5ey.d.mts
|
139
|
+
- lib/node_modules/react-router/dist/development/fog-of-war-oa9CGk10.d.ts
|
140
|
+
- lib/node_modules/react-router/dist/development/future-ldDp5FKH.d.mts
|
141
|
+
- lib/node_modules/react-router/dist/development/future-ldDp5FKH.d.ts
|
142
|
+
- lib/node_modules/react-router/dist/development/index.d.mts
|
143
|
+
- lib/node_modules/react-router/dist/development/index.d.ts
|
144
|
+
- lib/node_modules/react-router/dist/development/index.js
|
145
|
+
- lib/node_modules/react-router/dist/development/index.mjs
|
146
|
+
- lib/node_modules/react-router/dist/development/lib/types/route-module.d.mts
|
147
|
+
- lib/node_modules/react-router/dist/development/lib/types/route-module.d.ts
|
148
|
+
- lib/node_modules/react-router/dist/development/lib/types/route-module.js
|
149
|
+
- lib/node_modules/react-router/dist/development/lib/types/route-module.mjs
|
150
|
+
- lib/node_modules/react-router/dist/development/route-data-5OzAzQtT.d.mts
|
151
|
+
- lib/node_modules/react-router/dist/development/route-data-5OzAzQtT.d.ts
|
152
|
+
- lib/node_modules/react-router/dist/production/chunk-ZIM7OIE3.mjs
|
153
|
+
- lib/node_modules/react-router/dist/production/dom-export.d.mts
|
154
|
+
- lib/node_modules/react-router/dist/production/dom-export.d.ts
|
155
|
+
- lib/node_modules/react-router/dist/production/dom-export.js
|
156
|
+
- lib/node_modules/react-router/dist/production/dom-export.mjs
|
157
|
+
- lib/node_modules/react-router/dist/production/fog-of-war-1hWhK5ey.d.mts
|
158
|
+
- lib/node_modules/react-router/dist/production/fog-of-war-oa9CGk10.d.ts
|
159
|
+
- lib/node_modules/react-router/dist/production/future-ldDp5FKH.d.mts
|
160
|
+
- lib/node_modules/react-router/dist/production/future-ldDp5FKH.d.ts
|
161
|
+
- lib/node_modules/react-router/dist/production/index.d.mts
|
162
|
+
- lib/node_modules/react-router/dist/production/index.d.ts
|
163
|
+
- lib/node_modules/react-router/dist/production/index.js
|
164
|
+
- lib/node_modules/react-router/dist/production/index.mjs
|
165
|
+
- lib/node_modules/react-router/dist/production/lib/types/route-module.d.mts
|
166
|
+
- lib/node_modules/react-router/dist/production/lib/types/route-module.d.ts
|
167
|
+
- lib/node_modules/react-router/dist/production/lib/types/route-module.js
|
168
|
+
- lib/node_modules/react-router/dist/production/lib/types/route-module.mjs
|
169
|
+
- lib/node_modules/react-router/dist/production/route-data-5OzAzQtT.d.mts
|
170
|
+
- lib/node_modules/react-router/dist/production/route-data-5OzAzQtT.d.ts
|
171
|
+
- lib/node_modules/react-router/package.json
|
172
|
+
- lib/node_modules/react/LICENSE
|
173
|
+
- lib/node_modules/react/README.md
|
174
|
+
- lib/node_modules/react/cjs/react-jsx-dev-runtime.development.js
|
175
|
+
- lib/node_modules/react/cjs/react-jsx-dev-runtime.production.min.js
|
176
|
+
- lib/node_modules/react/cjs/react-jsx-dev-runtime.profiling.min.js
|
177
|
+
- lib/node_modules/react/cjs/react-jsx-runtime.development.js
|
178
|
+
- lib/node_modules/react/cjs/react-jsx-runtime.production.min.js
|
179
|
+
- lib/node_modules/react/cjs/react-jsx-runtime.profiling.min.js
|
180
|
+
- lib/node_modules/react/cjs/react.development.js
|
181
|
+
- lib/node_modules/react/cjs/react.production.min.js
|
182
|
+
- lib/node_modules/react/cjs/react.shared-subset.development.js
|
183
|
+
- lib/node_modules/react/cjs/react.shared-subset.production.min.js
|
184
|
+
- lib/node_modules/react/index.js
|
185
|
+
- lib/node_modules/react/jsx-dev-runtime.js
|
186
|
+
- lib/node_modules/react/jsx-runtime.js
|
187
|
+
- lib/node_modules/react/package.json
|
188
|
+
- lib/node_modules/react/react.shared-subset.js
|
189
|
+
- lib/node_modules/react/umd/react.development.js
|
190
|
+
- lib/node_modules/react/umd/react.production.min.js
|
191
|
+
- lib/node_modules/react/umd/react.profiling.min.js
|
192
|
+
- lib/node_modules/scheduler/LICENSE
|
193
|
+
- lib/node_modules/scheduler/README.md
|
194
|
+
- lib/node_modules/scheduler/cjs/scheduler-unstable_mock.development.js
|
195
|
+
- lib/node_modules/scheduler/cjs/scheduler-unstable_mock.production.min.js
|
196
|
+
- lib/node_modules/scheduler/cjs/scheduler-unstable_post_task.development.js
|
197
|
+
- lib/node_modules/scheduler/cjs/scheduler-unstable_post_task.production.min.js
|
198
|
+
- lib/node_modules/scheduler/cjs/scheduler.development.js
|
199
|
+
- lib/node_modules/scheduler/cjs/scheduler.production.min.js
|
200
|
+
- lib/node_modules/scheduler/index.js
|
201
|
+
- lib/node_modules/scheduler/package.json
|
202
|
+
- lib/node_modules/scheduler/umd/scheduler-unstable_mock.development.js
|
203
|
+
- lib/node_modules/scheduler/umd/scheduler-unstable_mock.production.min.js
|
204
|
+
- lib/node_modules/scheduler/umd/scheduler.development.js
|
205
|
+
- lib/node_modules/scheduler/umd/scheduler.production.min.js
|
206
|
+
- lib/node_modules/scheduler/umd/scheduler.profiling.min.js
|
207
|
+
- lib/node_modules/scheduler/unstable_mock.js
|
208
|
+
- lib/node_modules/scheduler/unstable_post_task.js
|
209
|
+
- lib/node_modules/set-cookie-parser/LICENSE
|
210
|
+
- lib/node_modules/set-cookie-parser/README.md
|
211
|
+
- lib/node_modules/set-cookie-parser/lib/set-cookie.js
|
212
|
+
- lib/node_modules/set-cookie-parser/package.json
|
213
|
+
- lib/node_modules/turbo-stream/LICENSE
|
214
|
+
- lib/node_modules/turbo-stream/README.md
|
215
|
+
- lib/node_modules/turbo-stream/dist/flatten.d.ts
|
216
|
+
- lib/node_modules/turbo-stream/dist/flatten.js
|
217
|
+
- lib/node_modules/turbo-stream/dist/turbo-stream.d.ts
|
218
|
+
- lib/node_modules/turbo-stream/dist/turbo-stream.js
|
219
|
+
- lib/node_modules/turbo-stream/dist/turbo-stream.mjs
|
220
|
+
- lib/node_modules/turbo-stream/dist/unflatten.d.ts
|
221
|
+
- lib/node_modules/turbo-stream/dist/unflatten.js
|
222
|
+
- lib/node_modules/turbo-stream/dist/utils.d.ts
|
223
|
+
- lib/node_modules/turbo-stream/dist/utils.js
|
224
|
+
- lib/node_modules/turbo-stream/package.json
|
225
|
+
- lib/package-lock.json
|
226
|
+
- lib/package.json
|
59
227
|
- lib/rubee.rb
|
60
228
|
- lib/rubee/async/asyncable.rb
|
61
229
|
- lib/rubee/async/sidekiq_async.rb
|
@@ -76,6 +244,7 @@ files:
|
|
76
244
|
- lib/tests/example_models/comment.rb
|
77
245
|
- lib/tests/example_models/post.rb
|
78
246
|
- lib/tests/example_models/user.rb
|
247
|
+
- lib/tests/rubee_generator_test.rb
|
79
248
|
- lib/tests/rubeeapp_test.rb
|
80
249
|
- lib/tests/test.db
|
81
250
|
- lib/tests/test_helper.rb
|
@@ -99,7 +268,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
99
268
|
- !ruby/object:Gem::Version
|
100
269
|
version: '0'
|
101
270
|
requirements: []
|
102
|
-
rubygems_version: 3.6.
|
271
|
+
rubygems_version: 3.6.8
|
103
272
|
specification_version: 4
|
104
273
|
summary: Fast and lightweight Ruby application server designed for minimalism and
|
105
274
|
flexibility
|