yaframework 0.4.8 → 0.5.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 +4 -4
- data/.rubocop.yml +3 -0
- data/CHANGELOG.md +16 -0
- data/Gemfile.lock +3 -1
- data/examples/README.md +15 -1
- data/examples/configure.rb +14 -0
- data/examples/helpers.rb +26 -0
- data/examples/rendering/app.rb +15 -0
- data/examples/rendering/config.ru +6 -0
- data/examples/rendering/views/index.erb +4 -0
- data/examples/rendering/views/layout.erb +10 -0
- data/examples/rendering/views/partial.erb +1 -0
- data/lib/yaframework.rb +1 -0
- data/lib/yaframework/base.rb +20 -1
- data/lib/yaframework/render.rb +46 -0
- data/lib/yaframework/version.rb +1 -1
- data/yaframework.gemspec +2 -1
- metadata +24 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 358c61b6687851be43c785a696574ffc2b2fcda2ecf420a646f0034e9449edc0
|
4
|
+
data.tar.gz: 4ecb0b37770f79b4aa441f10c9f773f91901d35bcaecebdd3c2337404357b120
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 168ca10283730aff4c81df587a06c96c6f35e131d67e614cb06909af1f891081b503f33dfa88eeccb062ec230a49a1d8c71d6537c82d87fbd797346426430b77
|
7
|
+
data.tar.gz: 7323f3ba8fdc11b9b3fbcd6b5d1f88516a9084e7ff7c19bd3130ef96dcbdad2c721ab4be7e9f8964f8314e5e468e2fa47d9a6c99a287307b43a6c6f2e9f62d94
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,19 @@
|
|
1
|
+
## [0.5.2] - 2021-07-26
|
2
|
+
|
3
|
+
- Error while rendering template fixed
|
4
|
+
|
5
|
+
## [0.5.1] - 2021-07-26
|
6
|
+
|
7
|
+
- `helpers` and `configure` methods added
|
8
|
+
|
9
|
+
## [0.5.0] - 2021-07-25
|
10
|
+
|
11
|
+
- Templates rendering added
|
12
|
+
|
13
|
+
## [0.4.9] - 2021-07-25
|
14
|
+
|
15
|
+
- Some useful aliases added
|
16
|
+
|
1
17
|
## [0.4.8] - 2021-07-25
|
2
18
|
|
3
19
|
- Before/after hooks added
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
yaframework (0.
|
4
|
+
yaframework (0.5.2)
|
5
5
|
rack (~> 2.2, >= 2.2.3)
|
6
|
+
tilt (~> 2.0)
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: https://rubygems.org/
|
@@ -29,6 +30,7 @@ GEM
|
|
29
30
|
rubocop-ast (1.7.0)
|
30
31
|
parser (>= 3.0.1.1)
|
31
32
|
ruby-progressbar (1.11.0)
|
33
|
+
tilt (2.0.10)
|
32
34
|
unicode-display_width (2.0.0)
|
33
35
|
|
34
36
|
PLATFORMS
|
data/examples/README.md
CHANGED
@@ -36,11 +36,26 @@ Here are some examples of applications created with Yaframework:
|
|
36
36
|
|
37
37
|
Adding and deleting cookies
|
38
38
|
|
39
|
+
|
39
40
|
8. [**Hooks**](https://github.com/maxbarsukov/yaframework/blob/master/examples/before_after_hooks.rb)
|
40
41
|
|
41
42
|
How to use `before` and `after` hooks
|
42
43
|
|
43
44
|
|
45
|
+
9. [**Rendering**](https://github.com/maxbarsukov/yaframework/tree/master/examples/rendering)
|
46
|
+
|
47
|
+
Rendering your `.erb` (or any else) files and partials using tilt.
|
48
|
+
|
49
|
+
|
50
|
+
10. [**Helpers**](https://github.com/maxbarsukov/yaframework/blob/master/examples/helpers.rb)
|
51
|
+
|
52
|
+
Example of using helpers
|
53
|
+
|
54
|
+
|
55
|
+
11. [**Configure**](https://github.com/maxbarsukov/yaframework/blob/master/examples/configure.rb)
|
56
|
+
|
57
|
+
How to configure your application
|
58
|
+
|
44
59
|
## Installation
|
45
60
|
|
46
61
|
Clone this repo and go to this folder.
|
@@ -49,4 +64,3 @@ Then, run `bundle install` to install this gem.
|
|
49
64
|
## Run
|
50
65
|
|
51
66
|
Run with `ruby hello-world.rb` or any other file and view at http://localhost:4567
|
52
|
-
|
data/examples/helpers.rb
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "yaframework"
|
4
|
+
app = Yaframework::Application
|
5
|
+
|
6
|
+
app.helpers do
|
7
|
+
def hello
|
8
|
+
"Hello"
|
9
|
+
end
|
10
|
+
|
11
|
+
def colon
|
12
|
+
", "
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
app.helpers do
|
17
|
+
def world
|
18
|
+
"world!"
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
app.get "/" do
|
23
|
+
hello + colon + world
|
24
|
+
end
|
25
|
+
|
26
|
+
app.listen(9292)
|
@@ -0,0 +1 @@
|
|
1
|
+
<p>Yout number was <b><%= number %></b></p>
|
data/lib/yaframework.rb
CHANGED
data/lib/yaframework/base.rb
CHANGED
@@ -1,15 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require "rack"
|
4
|
+
require_relative "../yaframework/render"
|
4
5
|
|
5
6
|
module Yaframework
|
6
7
|
class Base
|
7
|
-
|
8
|
+
include Yaframework::Render
|
9
|
+
|
10
|
+
attr_reader :routes, :request, :response, :env, :settings
|
11
|
+
alias req request
|
12
|
+
alias res response
|
8
13
|
|
9
14
|
def initialize
|
10
15
|
@routes = Hash.new([])
|
11
16
|
@before_hooks = []
|
12
17
|
@after_hooks = []
|
18
|
+
@settings = {}
|
13
19
|
@inbox = {}
|
14
20
|
end
|
15
21
|
|
@@ -19,6 +25,14 @@ module Yaframework
|
|
19
25
|
end
|
20
26
|
end
|
21
27
|
|
28
|
+
def helpers(&block)
|
29
|
+
exec(block) if block_given?
|
30
|
+
end
|
31
|
+
|
32
|
+
def configure(&block)
|
33
|
+
exec(block) if block_given?
|
34
|
+
end
|
35
|
+
|
22
36
|
def call(env)
|
23
37
|
@env = env
|
24
38
|
@request = Yaframework::Request.new @env
|
@@ -38,6 +52,10 @@ module Yaframework
|
|
38
52
|
@after_hooks << block
|
39
53
|
end
|
40
54
|
|
55
|
+
def params
|
56
|
+
request.params
|
57
|
+
end
|
58
|
+
|
41
59
|
def handle(status, &block)
|
42
60
|
@inbox[status] = block
|
43
61
|
end
|
@@ -120,4 +138,5 @@ module Yaframework
|
|
120
138
|
end
|
121
139
|
|
122
140
|
Application = Base.new
|
141
|
+
Application.setup
|
123
142
|
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require "tilt"
|
4
|
+
|
5
|
+
module Yaframework
|
6
|
+
module Render
|
7
|
+
def setup(settings = {})
|
8
|
+
@settings = settings
|
9
|
+
@settings[:template_engine] ||= "erb"
|
10
|
+
@settings[:layout] ||= "layout"
|
11
|
+
@settings[:views] ||= File.expand_path("views", Dir.pwd)
|
12
|
+
@settings[:options] ||= {
|
13
|
+
default_encoding: Encoding.default_external
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
def render(template, locals = {}, layout = @settings[:layout])
|
18
|
+
res.headers["Content-Type"] ||= "text/html; charset=utf-8"
|
19
|
+
res.write(view(template, locals, layout))
|
20
|
+
end
|
21
|
+
|
22
|
+
def view(template, locals = {}, layout = @settings[:layout])
|
23
|
+
partial(layout, locals.merge(content: partial(template, locals)))
|
24
|
+
end
|
25
|
+
|
26
|
+
def partial(template, locals = {})
|
27
|
+
_render(template_path(template), locals, @settings[:options])
|
28
|
+
end
|
29
|
+
|
30
|
+
def template_path(template)
|
31
|
+
dir = @settings[:views]
|
32
|
+
ext = @settings[:template_engine]
|
33
|
+
File.join(dir, "#{template}.#{ext}")
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def _render(template, locals = {}, options = {}, &block)
|
39
|
+
_cache.fetch(template) { Tilt.new(template, 1, options.merge(outvar: "@_output")) }.render(self, locals, &block)
|
40
|
+
end
|
41
|
+
|
42
|
+
def _cache
|
43
|
+
Thread.current[:_cache] ||= Tilt::Cache.new
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/yaframework/version.rb
CHANGED
data/yaframework.gemspec
CHANGED
@@ -33,5 +33,6 @@ Gem::Specification.new do |spec|
|
|
33
33
|
spec.add_development_dependency "rake", "~> 13.0"
|
34
34
|
spec.add_development_dependency "rubocop", "~> 1.7"
|
35
35
|
|
36
|
-
spec.
|
36
|
+
spec.add_dependency "rack", "~> 2.2", ">= 2.2.3"
|
37
|
+
spec.add_dependency "tilt", "~> 2.0"
|
37
38
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaframework
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- maxbarsukov
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-07-
|
11
|
+
date: 2021-07-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -86,6 +86,20 @@ dependencies:
|
|
86
86
|
- - ">="
|
87
87
|
- !ruby/object:Gem::Version
|
88
88
|
version: 2.2.3
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: tilt
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - "~>"
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '2.0'
|
96
|
+
type: :runtime
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - "~>"
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '2.0'
|
89
103
|
description: What could be better than one more Sinatra?
|
90
104
|
email:
|
91
105
|
- maximbarsukov@bk.ru
|
@@ -108,15 +122,23 @@ files:
|
|
108
122
|
- examples/Gemfile
|
109
123
|
- examples/README.md
|
110
124
|
- examples/before_after_hooks.rb
|
125
|
+
- examples/configure.rb
|
111
126
|
- examples/content_types.rb
|
112
127
|
- examples/cookies.rb
|
113
128
|
- examples/error_handling.rb
|
114
129
|
- examples/halts_and_redirects.rb
|
115
130
|
- examples/headers.rb
|
116
131
|
- examples/hello_world.rb
|
132
|
+
- examples/helpers.rb
|
117
133
|
- examples/params.rb
|
134
|
+
- examples/rendering/app.rb
|
135
|
+
- examples/rendering/config.ru
|
136
|
+
- examples/rendering/views/index.erb
|
137
|
+
- examples/rendering/views/layout.erb
|
138
|
+
- examples/rendering/views/partial.erb
|
118
139
|
- lib/yaframework.rb
|
119
140
|
- lib/yaframework/base.rb
|
141
|
+
- lib/yaframework/render.rb
|
120
142
|
- lib/yaframework/request.rb
|
121
143
|
- lib/yaframework/response.rb
|
122
144
|
- lib/yaframework/version.rb
|