erio 0.0.2.0.pre.1 → 0.0.2.0.pre.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5d5c1b80873792c4fa9836c67b117d086cf01af31293523432fad915e302861f
4
- data.tar.gz: 14bd1442c2790407a3c88989badf46327b0faf387afc752a4ab0e3897dcdb328
3
+ metadata.gz: c793930761cbd3b6dcedf1c21ed6ac9a428aecb1090217776c3c52fd17a5f397
4
+ data.tar.gz: a40ce8b6e6474695be33182ad90a4c30f8ba221cb629c9108f2f64fcfd659e2d
5
5
  SHA512:
6
- metadata.gz: 97c214cc70aaee7875f14bf0e61cf417b57d335f9b9964435066699c4adcfdfba68eae59078c668473797b87a370f526dcb2c4684d9c4657046cce1d06818c4f
7
- data.tar.gz: 5328a3160bc2ece029bffa78af36f2571702d52275673d914e293136302d12c3a93c89ab93f66faf1d88eb389c793c0ff605982c1adf25ca673d09a3f4e7acd8
6
+ metadata.gz: 15ae3a24e4d181d3b8cfdf227700d4b2534cdbc3cbec903a3d0999f5e70b8b135b2d8f49e592f64833722f934caab0e9744db7b3d0b924ca125289efeac1d2f4
7
+ data.tar.gz: 1a52c104b6ff1042df2bb11d8a96784c8f443f433e1fe7ea1055d6accb8a03bea51309ce5028f8f55edc4cc32cf47c1cb1b5053aba2d0f8bdafc42eea2cbb86e
data/README.md CHANGED
@@ -4,6 +4,12 @@ A very chubby, tiny and lightweight Web Framework(base on Rack)
4
4
 
5
5
  凄く小さいなウェブ・フラムワーク。
6
6
 
7
+ <style>
8
+ [cols-2] { column-count: 2 }
9
+ [cols-3] { column-count: 3 }
10
+ [cols-4] { column-count: 4 }
11
+ </style>
12
+
7
13
  ## インストール :: Installation
8
14
 
9
15
  ```bash
@@ -78,11 +84,187 @@ end
78
84
  Erio.run!
79
85
  ```
80
86
 
87
+ ### 迷う宮ノ様な回路ニ作ろう :: Nested Page Sugar
88
+
89
+
90
+ 複雑ノ回路もサポートします。
91
+ 同じのコードを繰り返し書き込みの面倒も遠慮なく。
92
+
93
+ <figure cols-2>
94
+
95
+ タイプ·M
96
+
97
+ ```yaml
98
+ - user
99
+ - 123
100
+ - album
101
+ - 23
102
+ ```
103
+
104
+ タイプ·S
105
+
106
+ ```yaml
107
+ - /user
108
+ - /user/123
109
+ - /user/123/album
110
+ - /user/123/album/23
111
+
112
+ ```
113
+
114
+ </figure>
115
+
116
+ そして、処理に引きされば...
117
+
118
+ <figure cols-2>
119
+
120
+ タイプ·M
121
+
122
+ ```yaml
123
+ - user
124
+ # 処理 user
125
+ - ''
126
+ # 処理
127
+ - 123
128
+ # 処理 123
129
+ - ''
130
+ # 処理
131
+ - album
132
+ # 処理 album
133
+ # 処理
134
+ - 23
135
+ # 処理 23
136
+ ```
137
+
138
+ タイプ·S
139
+
140
+ ```yaml
141
+ - /user
142
+ # 処理 user
143
+ - /user/123
144
+ # 処理 user
145
+ # 処理 123
146
+ - /user/123/album
147
+ # 処理 user
148
+ # 処理 123
149
+ # 処理 album
150
+ - /user/123/album/23
151
+ # 処理 user
152
+ # 処理 123
153
+ # 処理 album
154
+ # 処理 23
155
+
156
+ ```
157
+
158
+ </figure>
159
+
160
+ #### 実のコードご覧。
161
+
162
+
163
+ <figure cols-2>
164
+
165
+ 回路ニ使える
166
+
167
+ ```ruby
168
+ on 'user'
169
+ content_type 'html'
170
+ is do
171
+ echoln 'userlist...'
172
+ end
173
+
174
+ on Integer do |uid|
175
+ @uid = uid
176
+ is do
177
+ echoln "user: #{uid}"
178
+ end
179
+
180
+ on 'album' do
181
+ echoln "user #{uid}'s album"
182
+ is do
183
+ echoln "pics..."
184
+ for pic in Dir["asset/user/#{@uid}/*.png"]
185
+ echoln "<img src=\"#{pic}\">"
186
+ end
187
+ end
188
+
189
+ is Integer do |pn|
190
+ echoln "pic #{pn}"
191
+ echoln "<img src=\"asset/#{@uid}/#{@pn}.png\">"
192
+ end
193
+ end
194
+ end
195
+ end
196
+ ```
197
+
198
+ 回路に使えないならば...線性パス
199
+
200
+ ```ruby
201
+ on '/user' do
202
+ echoln 'userlist...'
203
+ end
204
+
205
+ on '/user/:uid' do |uid|
206
+ @uid = uid
207
+ echoln "user: #{uid}"
208
+ end
209
+
210
+ on '/user/:uid/album' do |uid|
211
+ @uid = uid
212
+ echoln "user #{uid}'s album"
213
+ echoln "pics..."
214
+ for pic in Dir["asset/user/#{@uid}/*.png"].map
215
+ echoln "<img src=\"#{pic}\">"
216
+ end
217
+ end
218
+
219
+ on '/user/:uid/album/:pn' do |uid, pn|
220
+ @uid = uid
221
+ @pn = pn
222
+ echoln "user #{uid}'s album"
223
+ echoln "pic #{pn}"
224
+ echoln "<img src=\"asset/#{@uid}/#{@pn}.png\">"
225
+ end
226
+ ```
227
+
228
+ </figure>
229
+
230
+ 試験コードご覧ください
231
+
232
+ ```ruby
233
+
234
+ Erio.enter do
235
+ # 唯ルト、残されパスは無いノ場合。
236
+ is do
237
+ echo 'home'
238
+ end
239
+ # 前に合わせてならば... そして引数を取って。
240
+ on 'user', Integer do |_, uid|
241
+ # 唯此れニ合わせて
242
+ is do
243
+ echo "space of user: #{uid}."
244
+ end
245
+ # リクエストのパラメータも取って。
246
+ is 'album', param(pn: Integer) do |_, pn|
247
+ content_type 'html'
248
+ echo "picture of user: #{uid} <img src=\"#{pn}.png\">"
249
+ end
250
+ end
251
+
252
+ # 後ノ条件も合わせてしたい。
253
+ also
254
+
255
+ # ご報告ニ送りします
256
+ on param(:warn) do
257
+ puts "warn #{ip} - #{verb} #{path}"
258
+ end
259
+ end
260
+
261
+ ```
262
+
81
263
  ## 作ル人 :: Creator
82
264
 
83
265
  __SAISUI__ :: 彩穂
84
266
 
85
- tip from `rack`, `sinatra`
267
+ tip from `rack`, `sinatra`, `rum`
86
268
 
87
269
  ## コード協力 :: Contributing
88
270
 
data/lib/erio/kaki.rb ADDED
@@ -0,0 +1,8 @@
1
+ class << Erio
2
+ def echo(*s)
3
+ s.each {|s| res.write s }
4
+ end
5
+ def echoln(*s)
6
+ s.each {|s| res.write s; res.write "\n"}
7
+ end
8
+ end
data/lib/erio/topo.rb CHANGED
@@ -29,8 +29,7 @@ class << Erio
29
29
  def path(p)
30
30
  if @_isis
31
31
  lambda {
32
- if env['PATH_INFO'] =~ /\A(\/*#{p}\/*)\z/
33
- # if env['PATH_INFO'] =~ /\A\/*\z/
32
+ if env['PATH_INFO'] =~ /\A\/*(#{p}\/*)\z/
34
33
  env['SCRIPT_NAME'] += $1||''
35
34
  env['PATH_INFO'] = ''
36
35
  $1
@@ -46,15 +45,16 @@ class << Erio
46
45
  }
47
46
  end
48
47
  end
49
-
48
+
49
+ def eq obj
50
+ -> { _1 == obj }
51
+ end
52
+
50
53
  def match(pat)
51
54
  case pat
52
- when Class
53
- case pat
54
- when Numeric; path('\\d+(?:\\.\\d+)?').call
55
- when Integer; path('\\d+').call
56
- when String; path('[^\\/]+').call
57
- end
55
+ when eq(Numeric); path('\\d+(?:\\.\\d+)?').call
56
+ when eq(Integer); path('\\d+').call
57
+ when eq(String); path('[^\\/]+').call
58
58
  when String, Numeric; path(pat).call
59
59
  when Regexp; path(pat.source).call
60
60
  when true, false; pat
data/lib/erio/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  class Erio
4
- VERSION = "0.0.2.0-1"
4
+ VERSION = "0.0.2.0-2"
5
5
  end
data/lib/erio.rb CHANGED
@@ -3,6 +3,7 @@
3
3
  require_relative "erio/version"
4
4
  require_relative "erio/short"
5
5
  require_relative "erio/topo"
6
+ require_relative "erio/kaki"
6
7
  require'rack'
7
8
  require'rack/handler/puma'
8
9
 
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: erio
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2.0.pre.1
4
+ version: 0.0.2.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - kozmozEnjel
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2025-03-22 00:00:00.000000000 Z
10
+ date: 2025-03-23 00:00:00.000000000 Z
11
11
  dependencies: []
12
12
  description: For Education but powerful and useful.
13
13
  email:
@@ -27,6 +27,7 @@ files:
27
27
  - demo/blog.ru
28
28
  - demo/map.ru
29
29
  - lib/erio.rb
30
+ - lib/erio/kaki.rb
30
31
  - lib/erio/short.rb
31
32
  - lib/erio/topo.rb
32
33
  - lib/erio/version.rb