flame 4.18.1 → 5.0.0.rc1

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/bin/flame +7 -62
  3. data/lib/flame.rb +1 -0
  4. data/lib/flame/application.rb +75 -17
  5. data/lib/flame/application/config.rb +6 -0
  6. data/lib/flame/controller.rb +36 -76
  7. data/lib/flame/controller/path_to.rb +39 -0
  8. data/lib/flame/dispatcher.rb +25 -66
  9. data/lib/flame/dispatcher/cookies.rb +10 -2
  10. data/lib/flame/dispatcher/routes.rb +53 -0
  11. data/lib/flame/dispatcher/static.rb +15 -8
  12. data/lib/flame/errors/argument_not_assigned_error.rb +6 -0
  13. data/lib/flame/errors/route_arguments_order_error.rb +6 -0
  14. data/lib/flame/errors/route_extra_arguments_error.rb +10 -0
  15. data/lib/flame/errors/route_not_found_error.rb +10 -4
  16. data/lib/flame/errors/template_not_found_error.rb +6 -0
  17. data/lib/flame/path.rb +63 -33
  18. data/lib/flame/render.rb +21 -8
  19. data/lib/flame/router.rb +112 -66
  20. data/lib/flame/router/route.rb +9 -56
  21. data/lib/flame/router/routes.rb +86 -0
  22. data/lib/flame/validators.rb +7 -1
  23. data/lib/flame/version.rb +1 -1
  24. data/template/.editorconfig +15 -0
  25. data/template/.gitignore +19 -2
  26. data/template/.rubocop.yml +14 -0
  27. data/template/Gemfile +48 -8
  28. data/template/Rakefile +824 -0
  29. data/template/{app.rb.erb → application.rb.erb} +4 -1
  30. data/template/config.ru.erb +62 -10
  31. data/template/config/config.rb.erb +44 -2
  32. data/template/config/database.example.yml +1 -1
  33. data/template/config/deploy.example.yml +2 -0
  34. data/template/config/puma.rb +56 -0
  35. data/template/config/sequel.rb.erb +13 -6
  36. data/template/config/server.example.yml +32 -0
  37. data/template/config/session.example.yml +7 -0
  38. data/template/controllers/{_base_controller.rb.erb → _controller.rb.erb} +5 -4
  39. data/template/controllers/site/_controller.rb.erb +18 -0
  40. data/template/controllers/site/index_controller.rb.erb +12 -0
  41. data/template/filewatchers.yml +12 -0
  42. data/template/server +172 -21
  43. data/template/services/.keep +0 -0
  44. data/template/views/site/index.html.erb.erb +1 -0
  45. data/template/views/site/layout.html.erb.erb +10 -0
  46. metadata +112 -54
  47. data/template/Rakefile.erb +0 -64
  48. data/template/config/thin.example.yml +0 -18
File without changes
@@ -0,0 +1 @@
1
+ <h1>Hello, world!</h1>
@@ -0,0 +1,10 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <title><%= "\<%= #{@short_module_name}::SITE_NAME %\>" %></title>
6
+ </head>
7
+ <body>
8
+ <%= "\<%= yield %\>" %>
9
+ </body>
10
+ </html>
metadata CHANGED
@@ -1,15 +1,43 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flame
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.18.1
4
+ version: 5.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Popov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-29 00:00:00.000000000 Z
11
+ date: 2018-01-17 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: addressable
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '2.5'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '2.5'
27
+ - !ruby/object:Gem::Dependency
28
+ name: gorilla-patch
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '2.7'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '2.7'
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: rack
15
43
  requirement: !ruby/object:Gem::Requirement
@@ -24,6 +52,20 @@ dependencies:
24
52
  - - "~>"
25
53
  - !ruby/object:Gem::Version
26
54
  version: '2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: thor
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
27
69
  - !ruby/object:Gem::Dependency
28
70
  name: tilt
29
71
  requirement: !ruby/object:Gem::Requirement
@@ -45,117 +87,105 @@ dependencies:
45
87
  - !ruby/object:Gem::Version
46
88
  version: '3'
47
89
  - !ruby/object:Gem::Dependency
48
- name: gorilla-patch
90
+ name: codecov
49
91
  requirement: !ruby/object:Gem::Requirement
50
92
  requirements:
51
93
  - - "~>"
52
94
  - !ruby/object:Gem::Version
53
- version: '2'
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: 2.0.0
57
- type: :runtime
95
+ version: '0'
96
+ type: :development
58
97
  prerelease: false
59
98
  version_requirements: !ruby/object:Gem::Requirement
60
99
  requirements:
61
100
  - - "~>"
62
101
  - !ruby/object:Gem::Version
63
- version: '2'
64
- - - ">="
65
- - !ruby/object:Gem::Version
66
- version: 2.0.0
102
+ version: '0'
67
103
  - !ruby/object:Gem::Dependency
68
- name: thor
104
+ name: minitest-bacon
69
105
  requirement: !ruby/object:Gem::Requirement
70
106
  requirements:
71
107
  - - "~>"
72
108
  - !ruby/object:Gem::Version
73
- version: '0'
74
- type: :runtime
109
+ version: '1'
110
+ type: :development
75
111
  prerelease: false
76
112
  version_requirements: !ruby/object:Gem::Requirement
77
113
  requirements:
78
114
  - - "~>"
79
115
  - !ruby/object:Gem::Version
80
- version: '0'
116
+ version: '1'
81
117
  - !ruby/object:Gem::Dependency
82
- name: rubocop
118
+ name: minitest-reporters
83
119
  requirement: !ruby/object:Gem::Requirement
84
120
  requirements:
85
121
  - - "~>"
86
122
  - !ruby/object:Gem::Version
87
- version: '0.48'
123
+ version: '1'
88
124
  type: :development
89
125
  prerelease: false
90
126
  version_requirements: !ruby/object:Gem::Requirement
91
127
  requirements:
92
128
  - - "~>"
93
129
  - !ruby/object:Gem::Version
94
- version: '0.48'
130
+ version: '1'
95
131
  - !ruby/object:Gem::Dependency
96
- name: rake
132
+ name: pry
97
133
  requirement: !ruby/object:Gem::Requirement
98
134
  requirements:
99
135
  - - "~>"
100
136
  - !ruby/object:Gem::Version
101
- version: '12'
137
+ version: '0'
102
138
  type: :development
103
139
  prerelease: false
104
140
  version_requirements: !ruby/object:Gem::Requirement
105
141
  requirements:
106
142
  - - "~>"
107
143
  - !ruby/object:Gem::Version
108
- version: '12'
144
+ version: '0'
109
145
  - !ruby/object:Gem::Dependency
110
- name: bacon
146
+ name: pry-byebug
111
147
  requirement: !ruby/object:Gem::Requirement
112
148
  requirements:
113
149
  - - "~>"
114
150
  - !ruby/object:Gem::Version
115
- version: '1'
151
+ version: '3.5'
116
152
  type: :development
117
153
  prerelease: false
118
154
  version_requirements: !ruby/object:Gem::Requirement
119
155
  requirements:
120
156
  - - "~>"
121
157
  - !ruby/object:Gem::Version
122
- version: '1'
158
+ version: '3.5'
123
159
  - !ruby/object:Gem::Dependency
124
- name: bacon-colored_output
160
+ name: puma
125
161
  requirement: !ruby/object:Gem::Requirement
126
162
  requirements:
127
163
  - - "~>"
128
164
  - !ruby/object:Gem::Version
129
- version: '1.1'
130
- - - ">="
131
- - !ruby/object:Gem::Version
132
- version: 1.1.1
165
+ version: '3.9'
133
166
  type: :development
134
167
  prerelease: false
135
168
  version_requirements: !ruby/object:Gem::Requirement
136
169
  requirements:
137
170
  - - "~>"
138
171
  - !ruby/object:Gem::Version
139
- version: '1.1'
140
- - - ">="
141
- - !ruby/object:Gem::Version
142
- version: 1.1.1
172
+ version: '3.9'
143
173
  - !ruby/object:Gem::Dependency
144
- name: rack-test
174
+ name: rack-console
145
175
  requirement: !ruby/object:Gem::Requirement
146
176
  requirements:
147
177
  - - "~>"
148
178
  - !ruby/object:Gem::Version
149
- version: '0'
179
+ version: '1'
150
180
  type: :development
151
181
  prerelease: false
152
182
  version_requirements: !ruby/object:Gem::Requirement
153
183
  requirements:
154
184
  - - "~>"
155
185
  - !ruby/object:Gem::Version
156
- version: '0'
186
+ version: '1'
157
187
  - !ruby/object:Gem::Dependency
158
- name: simplecov
188
+ name: rack-test
159
189
  requirement: !ruby/object:Gem::Requirement
160
190
  requirements:
161
191
  - - "~>"
@@ -169,47 +199,61 @@ dependencies:
169
199
  - !ruby/object:Gem::Version
170
200
  version: '0'
171
201
  - !ruby/object:Gem::Dependency
172
- name: codecov
202
+ name: rack-utf8_sanitizer
173
203
  requirement: !ruby/object:Gem::Requirement
174
204
  requirements:
175
205
  - - "~>"
176
206
  - !ruby/object:Gem::Version
177
- version: '0'
207
+ version: '1.3'
178
208
  type: :development
179
209
  prerelease: false
180
210
  version_requirements: !ruby/object:Gem::Requirement
181
211
  requirements:
182
212
  - - "~>"
183
213
  - !ruby/object:Gem::Version
184
- version: '0'
214
+ version: '1.3'
185
215
  - !ruby/object:Gem::Dependency
186
- name: pry
216
+ name: rake
187
217
  requirement: !ruby/object:Gem::Requirement
188
218
  requirements:
189
219
  - - "~>"
190
220
  - !ruby/object:Gem::Version
191
- version: '0'
221
+ version: '12'
192
222
  type: :development
193
223
  prerelease: false
194
224
  version_requirements: !ruby/object:Gem::Requirement
195
225
  requirements:
196
226
  - - "~>"
197
227
  - !ruby/object:Gem::Version
198
- version: '0'
228
+ version: '12'
199
229
  - !ruby/object:Gem::Dependency
200
- name: pry-byebug
230
+ name: rubocop
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - '='
234
+ - !ruby/object:Gem::Version
235
+ version: '0.51'
236
+ type: :development
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - '='
241
+ - !ruby/object:Gem::Version
242
+ version: '0.51'
243
+ - !ruby/object:Gem::Dependency
244
+ name: simplecov
201
245
  requirement: !ruby/object:Gem::Requirement
202
246
  requirements:
203
247
  - - "~>"
204
248
  - !ruby/object:Gem::Version
205
- version: '3'
249
+ version: '0'
206
250
  type: :development
207
251
  prerelease: false
208
252
  version_requirements: !ruby/object:Gem::Requirement
209
253
  requirements:
210
254
  - - "~>"
211
255
  - !ruby/object:Gem::Version
212
- version: '3'
256
+ version: '0'
213
257
  description: Use controller's classes with instance methods as routing actions, mounting
214
258
  its in application class.
215
259
  email:
@@ -224,10 +268,12 @@ files:
224
268
  - lib/flame/application.rb
225
269
  - lib/flame/application/config.rb
226
270
  - lib/flame/controller.rb
271
+ - lib/flame/controller/path_to.rb
227
272
  - lib/flame/dispatcher.rb
228
273
  - lib/flame/dispatcher/cookies.rb
229
274
  - lib/flame/dispatcher/request.rb
230
275
  - lib/flame/dispatcher/response.rb
276
+ - lib/flame/dispatcher/routes.rb
231
277
  - lib/flame/dispatcher/static.rb
232
278
  - lib/flame/errors/argument_not_assigned_error.rb
233
279
  - lib/flame/errors/route_arguments_order_error.rb
@@ -238,27 +284,39 @@ files:
238
284
  - lib/flame/render.rb
239
285
  - lib/flame/router.rb
240
286
  - lib/flame/router/route.rb
287
+ - lib/flame/router/routes.rb
241
288
  - lib/flame/validators.rb
242
289
  - lib/flame/version.rb
243
290
  - public/favicon.ico
291
+ - template/.editorconfig
244
292
  - template/.gitignore
293
+ - template/.rubocop.yml
245
294
  - template/Gemfile
246
- - template/Rakefile.erb
247
- - template/app.rb.erb
295
+ - template/Rakefile
296
+ - template/application.rb.erb
248
297
  - template/config.ru.erb
249
298
  - template/config/config.rb.erb
250
299
  - template/config/database.example.yml
300
+ - template/config/deploy.example.yml
301
+ - template/config/puma.rb
251
302
  - template/config/sequel.rb.erb
252
- - template/config/thin.example.yml
253
- - template/controllers/_base_controller.rb.erb
303
+ - template/config/server.example.yml
304
+ - template/config/session.example.yml
305
+ - template/controllers/_controller.rb.erb
306
+ - template/controllers/site/_controller.rb.erb
307
+ - template/controllers/site/index_controller.rb.erb
254
308
  - template/db/.keep
309
+ - template/filewatchers.yml
255
310
  - template/helpers/.keep
256
311
  - template/lib/.keep
257
312
  - template/locales/en.yml
258
313
  - template/models/.keep
259
314
  - template/public/.keep
260
315
  - template/server
316
+ - template/services/.keep
261
317
  - template/views/.keep
318
+ - template/views/site/index.html.erb.erb
319
+ - template/views/site/layout.html.erb.erb
262
320
  homepage: https://github.com/AlexWayfer/flame
263
321
  licenses:
264
322
  - MIT
@@ -274,12 +332,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
274
332
  version: '0'
275
333
  required_rubygems_version: !ruby/object:Gem::Requirement
276
334
  requirements:
277
- - - ">="
335
+ - - ">"
278
336
  - !ruby/object:Gem::Version
279
- version: '0'
337
+ version: 1.3.1
280
338
  requirements: []
281
339
  rubyforge_project:
282
- rubygems_version: 2.6.11
340
+ rubygems_version: 2.6.14
283
341
  signing_key:
284
342
  specification_version: 4
285
343
  summary: Web-framework, based on MVC-pattern
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- namespace :db do
4
- ## Require libs and config
5
- require 'sequel'
6
- require File.join(__dir__, 'config', 'sequel.rb')
7
- ## Default path to db-files
8
- db_dir = File.join(__dir__, 'db')
9
-
10
- desc 'Run migrations'
11
- task :migrate, [:version] do |_t, args|
12
- Sequel.extension :migration
13
- migrations_dir = File.join(db_dir, 'migrations')
14
-
15
- if args[:version]
16
- puts "Migrating to version #{args[:version]}"
17
- Sequel::Migrator.run(
18
- <%= @module_name %>::DB,
19
- migrations_dir,
20
- target: args[:version].to_i
21
- )
22
- else
23
- puts 'Migrating to latest'
24
- Sequel::Migrator.run(<%= @module_name %>::DB, migrations_dir)
25
- end
26
-
27
- Rake::Task['db:schema:dump'].invoke('same_db=true')
28
- end
29
-
30
- desc 'Run seeds'
31
- task :seed do |_t|
32
- require 'sequel/extensions/seed'
33
- seeds_dir = File.join(db_dir, 'seeds')
34
-
35
- ## Doesn't support version yet
36
- puts 'Seeding latest'
37
- Sequel::Seeder.apply(<%= @module_name %>::DB, seeds_dir)
38
- end
39
-
40
- namespace :schema do
41
- schema_filename = '001_schema.rb'
42
-
43
- desc 'Run schema dump'
44
- task :dump do |_t|
45
- <%= @module_name %>::DB.extension :schema_dumper
46
- puts 'Dump latest schema'
47
- dump = <%= @module_name %>::DB.dump_schema_migration(
48
- same_db: env_true?('same_db')
49
- )
50
- File.write(File.join(db_dir, schema_filename), dump)
51
- end
52
-
53
- desc 'Run schema load'
54
- task :load do |_t|
55
- Sequel.extension :migration
56
- puts 'Load latest schema'
57
- Sequel::Migrator.run(<%= @module_name %>::DB, db_dir, target: 1)
58
- end
59
- end
60
- end
61
-
62
- def env_true?(key)
63
- %(true yes 1 y).include?(ENV[key].to_s.downcase)
64
- end
@@ -1,18 +0,0 @@
1
- ---
2
- # user: www-data
3
- # group: www-data
4
- pid: tmp/pids/thin.pid
5
- timeout: 30
6
- wait: 30
7
- log: log/thin.log
8
- max_conns: 1024
9
- require: []
10
- environment: development # production
11
- max_persistent_conns: 512
12
- servers: 1
13
- threaded: true
14
- no-epoll: true
15
- daemonize: true
16
- socket: tmp/sockets/thin.sock
17
- chdir: /path/to/the/project
18
- # tag: a-name-to-show-up-in-ps aux