hyraft 0.1.0.alpha1

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.
Files changed (84) hide show
  1. checksums.yaml +7 -0
  2. data/CHANGELOG.md +5 -0
  3. data/CODE_OF_CONDUCT.md +132 -0
  4. data/LICENSE.txt +21 -0
  5. data/README.md +231 -0
  6. data/exe/hyraft +5 -0
  7. data/lib/hyraft/boot/asset_preloader.rb +185 -0
  8. data/lib/hyraft/boot/preloaded_static.rb +46 -0
  9. data/lib/hyraft/boot/preloader.rb +206 -0
  10. data/lib/hyraft/cli.rb +187 -0
  11. data/lib/hyraft/compiler/compiler.rb +34 -0
  12. data/lib/hyraft/compiler/html_purifier.rb +181 -0
  13. data/lib/hyraft/compiler/javascript_library.rb +281 -0
  14. data/lib/hyraft/compiler/javascript_obfuscator.rb +141 -0
  15. data/lib/hyraft/compiler/parser.rb +27 -0
  16. data/lib/hyraft/compiler/renderer.rb +217 -0
  17. data/lib/hyraft/engine/circuit.rb +35 -0
  18. data/lib/hyraft/engine/port.rb +17 -0
  19. data/lib/hyraft/engine/source.rb +19 -0
  20. data/lib/hyraft/engine.rb +11 -0
  21. data/lib/hyraft/router/api_router.rb +65 -0
  22. data/lib/hyraft/router/web_router.rb +136 -0
  23. data/lib/hyraft/system_info.rb +26 -0
  24. data/lib/hyraft/version.rb +5 -0
  25. data/lib/hyraft.rb +48 -0
  26. data/templates/do_app/Gemfile +50 -0
  27. data/templates/do_app/Rakefile +88 -0
  28. data/templates/do_app/adapter-intake/web-app/display/pages/home/home.hyr +174 -0
  29. data/templates/do_app/adapter-intake/web-app/request/home_web_adapter.rb +19 -0
  30. data/templates/do_app/boot.rb +41 -0
  31. data/templates/do_app/framework/adapters/server/server_api_adapter.rb +51 -0
  32. data/templates/do_app/framework/adapters/server/server_web_adapter.rb +178 -0
  33. data/templates/do_app/framework/compiler/style_resolver.rb +33 -0
  34. data/templates/do_app/framework/errors/error_handler.rb +75 -0
  35. data/templates/do_app/framework/errors/templates/304.html +22 -0
  36. data/templates/do_app/framework/errors/templates/400.html +22 -0
  37. data/templates/do_app/framework/errors/templates/401.html +22 -0
  38. data/templates/do_app/framework/errors/templates/403.html +22 -0
  39. data/templates/do_app/framework/errors/templates/404.html +62 -0
  40. data/templates/do_app/framework/errors/templates/500.html +73 -0
  41. data/templates/do_app/framework/middleware/cors_middleware.rb +37 -0
  42. data/templates/do_app/infra/config/environment.rb +86 -0
  43. data/templates/do_app/infra/config/error_config.rb +80 -0
  44. data/templates/do_app/infra/config/routes/api_routes.rb +2 -0
  45. data/templates/do_app/infra/config/routes/web_routes.rb +10 -0
  46. data/templates/do_app/infra/database/sequel_connection.rb +62 -0
  47. data/templates/do_app/infra/gems/database.rb +7 -0
  48. data/templates/do_app/infra/gems/load_all.rb +4 -0
  49. data/templates/do_app/infra/gems/utilities.rb +1 -0
  50. data/templates/do_app/infra/gems/web.rb +3 -0
  51. data/templates/do_app/infra/server/api-server.ru +13 -0
  52. data/templates/do_app/infra/server/web-server.ru +32 -0
  53. data/templates/do_app/package.json +9 -0
  54. data/templates/do_app/public/favicon.ico +0 -0
  55. data/templates/do_app/public/icons/docs.svg +10 -0
  56. data/templates/do_app/public/icons/expli.svg +13 -0
  57. data/templates/do_app/public/icons/git-repo.svg +13 -0
  58. data/templates/do_app/public/icons/hexagonal-arch.svg +15 -0
  59. data/templates/do_app/public/icons/template-engine.svg +26 -0
  60. data/templates/do_app/public/images/hyr-logo.png +0 -0
  61. data/templates/do_app/public/images/hyr-logo.webp +0 -0
  62. data/templates/do_app/public/index.html +22 -0
  63. data/templates/do_app/public/styles/css/main.css +418 -0
  64. data/templates/do_app/public/styles/css/spa.css +171 -0
  65. data/templates/do_app/shared/helpers/pagination_helper.rb +44 -0
  66. data/templates/do_app/shared/helpers/response_formatter.rb +25 -0
  67. data/templates/do_app/test/acceptance/api/articles_api_acceptance_test.rb +43 -0
  68. data/templates/do_app/test/acceptance/web/articles_acceptance_test.rb +31 -0
  69. data/templates/do_app/test/acceptance/web/home_acceptance_test.rb +17 -0
  70. data/templates/do_app/test/db.rb +106 -0
  71. data/templates/do_app/test/integration/adapter-exhaust/data-gateway/sequel_articles_gateway_test.rb +79 -0
  72. data/templates/do_app/test/integration/adapter-intake/api-app/request/articles_api_adapter_test.rb +61 -0
  73. data/templates/do_app/test/integration/adapter-intake/web-app/request/articles_web_adapter_test.rb +20 -0
  74. data/templates/do_app/test/integration/adapter-intake/web-app/request/home_web_adapter_test.rb +17 -0
  75. data/templates/do_app/test/integration/database/migration_test.rb +35 -0
  76. data/templates/do_app/test/support/mock_api_adapter.rb +82 -0
  77. data/templates/do_app/test/support/mock_articles_gateway.rb +41 -0
  78. data/templates/do_app/test/support/mock_web_adapter.rb +85 -0
  79. data/templates/do_app/test/support/test_patches.rb +33 -0
  80. data/templates/do_app/test/test_helper.rb +526 -0
  81. data/templates/do_app/test/unit/engine/circuit/articles_circuit_test.rb +167 -0
  82. data/templates/do_app/test/unit/engine/port/articles_gateway_port_test.rb +12 -0
  83. data/templates/do_app/test/unit/engine/source/article_test.rb +37 -0
  84. metadata +291 -0
@@ -0,0 +1,37 @@
1
+ require_relative "./../../../test_helper"
2
+
3
+ class ArticleTest < Minitest::Test
4
+ def test_initialization
5
+ article = Article.new(
6
+ id: "1",
7
+ title: "Test Article",
8
+ content: "Test content"
9
+ )
10
+
11
+ assert_equal "1", article.id
12
+ assert_equal "Test Article", article.title
13
+ assert_equal "Test content", article.content
14
+ assert_equal :draft, article.status
15
+ end
16
+
17
+ def test_to_hash
18
+ article = Article.new(
19
+ id: "1",
20
+ title: "Test",
21
+ content: "Content"
22
+ )
23
+
24
+ hash = article.to_hash
25
+
26
+ assert_equal "1", hash[:id]
27
+ assert_equal "Test", hash[:title]
28
+ assert_equal "Content", hash[:content]
29
+ end
30
+
31
+ def test_publish
32
+ article = Article.new(id: "1", title: "Test", content: "Content")
33
+ article.publish
34
+
35
+ assert_equal :published, article.status
36
+ end
37
+ end
metadata ADDED
@@ -0,0 +1,291 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: hyraft
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0.alpha1
5
+ platform: ruby
6
+ authors:
7
+ - Demjhon Silver
8
+ bindir: exe
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: rack
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - "~>"
17
+ - !ruby/object:Gem::Version
18
+ version: '3.2'
19
+ type: :runtime
20
+ prerelease: false
21
+ version_requirements: !ruby/object:Gem::Requirement
22
+ requirements:
23
+ - - "~>"
24
+ - !ruby/object:Gem::Version
25
+ version: '3.2'
26
+ - !ruby/object:Gem::Dependency
27
+ name: dotenv
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - "~>"
31
+ - !ruby/object:Gem::Version
32
+ version: '3.1'
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: 3.1.8
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '3.1'
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ version: 3.1.8
46
+ - !ruby/object:Gem::Dependency
47
+ name: hyraft-server
48
+ requirement: !ruby/object:Gem::Requirement
49
+ requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: 0.1.0
53
+ type: :runtime
54
+ prerelease: false
55
+ version_requirements: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: 0.1.0
60
+ - !ruby/object:Gem::Dependency
61
+ name: hyraft-rule
62
+ requirement: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: 0.1.0.alpha1
67
+ type: :runtime
68
+ prerelease: false
69
+ version_requirements: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: 0.1.0.alpha1
74
+ - !ruby/object:Gem::Dependency
75
+ name: sequel
76
+ requirement: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - "~>"
79
+ - !ruby/object:Gem::Version
80
+ version: '5.98'
81
+ type: :runtime
82
+ prerelease: false
83
+ version_requirements: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '5.98'
88
+ - !ruby/object:Gem::Dependency
89
+ name: rake
90
+ requirement: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - "~>"
93
+ - !ruby/object:Gem::Version
94
+ version: '13.3'
95
+ type: :development
96
+ prerelease: false
97
+ version_requirements: !ruby/object:Gem::Requirement
98
+ requirements:
99
+ - - "~>"
100
+ - !ruby/object:Gem::Version
101
+ version: '13.3'
102
+ - !ruby/object:Gem::Dependency
103
+ name: minitest
104
+ requirement: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - "~>"
107
+ - !ruby/object:Gem::Version
108
+ version: '5.26'
109
+ type: :development
110
+ prerelease: false
111
+ version_requirements: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - "~>"
114
+ - !ruby/object:Gem::Version
115
+ version: '5.26'
116
+ - !ruby/object:Gem::Dependency
117
+ name: minitest-reporters
118
+ requirement: !ruby/object:Gem::Requirement
119
+ requirements:
120
+ - - "~>"
121
+ - !ruby/object:Gem::Version
122
+ version: '1.7'
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 1.7.1
126
+ type: :development
127
+ prerelease: false
128
+ version_requirements: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '1.7'
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: 1.7.1
136
+ - !ruby/object:Gem::Dependency
137
+ name: minitest-focus
138
+ requirement: !ruby/object:Gem::Requirement
139
+ requirements:
140
+ - - "~>"
141
+ - !ruby/object:Gem::Version
142
+ version: '1.4'
143
+ type: :development
144
+ prerelease: false
145
+ version_requirements: !ruby/object:Gem::Requirement
146
+ requirements:
147
+ - - "~>"
148
+ - !ruby/object:Gem::Version
149
+ version: '1.4'
150
+ - !ruby/object:Gem::Dependency
151
+ name: mocha
152
+ requirement: !ruby/object:Gem::Requirement
153
+ requirements:
154
+ - - "~>"
155
+ - !ruby/object:Gem::Version
156
+ version: '2.8'
157
+ type: :development
158
+ prerelease: false
159
+ version_requirements: !ruby/object:Gem::Requirement
160
+ requirements:
161
+ - - "~>"
162
+ - !ruby/object:Gem::Version
163
+ version: '2.8'
164
+ - !ruby/object:Gem::Dependency
165
+ name: rack-test
166
+ requirement: !ruby/object:Gem::Requirement
167
+ requirements:
168
+ - - "~>"
169
+ - !ruby/object:Gem::Version
170
+ version: '2.2'
171
+ type: :development
172
+ prerelease: false
173
+ version_requirements: !ruby/object:Gem::Requirement
174
+ requirements:
175
+ - - "~>"
176
+ - !ruby/object:Gem::Version
177
+ version: '2.2'
178
+ description: Hyraft is a full-stack Ruby web framework that combines high-performance
179
+ hexagonal architecture with modern reactive frontend capabilities. Build scalable
180
+ applications with clean separation of concerns.
181
+ executables:
182
+ - hyraft
183
+ extensions: []
184
+ extra_rdoc_files: []
185
+ files:
186
+ - CHANGELOG.md
187
+ - CODE_OF_CONDUCT.md
188
+ - LICENSE.txt
189
+ - README.md
190
+ - exe/hyraft
191
+ - lib/hyraft.rb
192
+ - lib/hyraft/boot/asset_preloader.rb
193
+ - lib/hyraft/boot/preloaded_static.rb
194
+ - lib/hyraft/boot/preloader.rb
195
+ - lib/hyraft/cli.rb
196
+ - lib/hyraft/compiler/compiler.rb
197
+ - lib/hyraft/compiler/html_purifier.rb
198
+ - lib/hyraft/compiler/javascript_library.rb
199
+ - lib/hyraft/compiler/javascript_obfuscator.rb
200
+ - lib/hyraft/compiler/parser.rb
201
+ - lib/hyraft/compiler/renderer.rb
202
+ - lib/hyraft/engine.rb
203
+ - lib/hyraft/engine/circuit.rb
204
+ - lib/hyraft/engine/port.rb
205
+ - lib/hyraft/engine/source.rb
206
+ - lib/hyraft/router/api_router.rb
207
+ - lib/hyraft/router/web_router.rb
208
+ - lib/hyraft/system_info.rb
209
+ - lib/hyraft/version.rb
210
+ - templates/do_app/Gemfile
211
+ - templates/do_app/Rakefile
212
+ - templates/do_app/adapter-intake/web-app/display/pages/home/home.hyr
213
+ - templates/do_app/adapter-intake/web-app/request/home_web_adapter.rb
214
+ - templates/do_app/boot.rb
215
+ - templates/do_app/framework/adapters/server/server_api_adapter.rb
216
+ - templates/do_app/framework/adapters/server/server_web_adapter.rb
217
+ - templates/do_app/framework/compiler/style_resolver.rb
218
+ - templates/do_app/framework/errors/error_handler.rb
219
+ - templates/do_app/framework/errors/templates/304.html
220
+ - templates/do_app/framework/errors/templates/400.html
221
+ - templates/do_app/framework/errors/templates/401.html
222
+ - templates/do_app/framework/errors/templates/403.html
223
+ - templates/do_app/framework/errors/templates/404.html
224
+ - templates/do_app/framework/errors/templates/500.html
225
+ - templates/do_app/framework/middleware/cors_middleware.rb
226
+ - templates/do_app/infra/config/environment.rb
227
+ - templates/do_app/infra/config/error_config.rb
228
+ - templates/do_app/infra/config/routes/api_routes.rb
229
+ - templates/do_app/infra/config/routes/web_routes.rb
230
+ - templates/do_app/infra/database/sequel_connection.rb
231
+ - templates/do_app/infra/gems/database.rb
232
+ - templates/do_app/infra/gems/load_all.rb
233
+ - templates/do_app/infra/gems/utilities.rb
234
+ - templates/do_app/infra/gems/web.rb
235
+ - templates/do_app/infra/server/api-server.ru
236
+ - templates/do_app/infra/server/web-server.ru
237
+ - templates/do_app/package.json
238
+ - templates/do_app/public/favicon.ico
239
+ - templates/do_app/public/icons/docs.svg
240
+ - templates/do_app/public/icons/expli.svg
241
+ - templates/do_app/public/icons/git-repo.svg
242
+ - templates/do_app/public/icons/hexagonal-arch.svg
243
+ - templates/do_app/public/icons/template-engine.svg
244
+ - templates/do_app/public/images/hyr-logo.png
245
+ - templates/do_app/public/images/hyr-logo.webp
246
+ - templates/do_app/public/index.html
247
+ - templates/do_app/public/styles/css/main.css
248
+ - templates/do_app/public/styles/css/spa.css
249
+ - templates/do_app/shared/helpers/pagination_helper.rb
250
+ - templates/do_app/shared/helpers/response_formatter.rb
251
+ - templates/do_app/test/acceptance/api/articles_api_acceptance_test.rb
252
+ - templates/do_app/test/acceptance/web/articles_acceptance_test.rb
253
+ - templates/do_app/test/acceptance/web/home_acceptance_test.rb
254
+ - templates/do_app/test/db.rb
255
+ - templates/do_app/test/integration/adapter-exhaust/data-gateway/sequel_articles_gateway_test.rb
256
+ - templates/do_app/test/integration/adapter-intake/api-app/request/articles_api_adapter_test.rb
257
+ - templates/do_app/test/integration/adapter-intake/web-app/request/articles_web_adapter_test.rb
258
+ - templates/do_app/test/integration/adapter-intake/web-app/request/home_web_adapter_test.rb
259
+ - templates/do_app/test/integration/database/migration_test.rb
260
+ - templates/do_app/test/support/mock_api_adapter.rb
261
+ - templates/do_app/test/support/mock_articles_gateway.rb
262
+ - templates/do_app/test/support/mock_web_adapter.rb
263
+ - templates/do_app/test/support/test_patches.rb
264
+ - templates/do_app/test/test_helper.rb
265
+ - templates/do_app/test/unit/engine/circuit/articles_circuit_test.rb
266
+ - templates/do_app/test/unit/engine/port/articles_gateway_port_test.rb
267
+ - templates/do_app/test/unit/engine/source/article_test.rb
268
+ homepage: https://rubygems.org/gems/hyraft
269
+ licenses:
270
+ - MIT
271
+ metadata:
272
+ homepage_uri: https://hyraft.com
273
+ source_code_uri: https://github.com/demjhonsilver/hyraft
274
+ rdoc_options: []
275
+ require_paths:
276
+ - lib
277
+ required_ruby_version: !ruby/object:Gem::Requirement
278
+ requirements:
279
+ - - ">="
280
+ - !ruby/object:Gem::Version
281
+ version: 3.4.0
282
+ required_rubygems_version: !ruby/object:Gem::Requirement
283
+ requirements:
284
+ - - ">="
285
+ - !ruby/object:Gem::Version
286
+ version: '0'
287
+ requirements: []
288
+ rubygems_version: 3.6.9
289
+ specification_version: 4
290
+ summary: Ruby framework built for change with adapter architecture.
291
+ test_files: []