jeanine 0.2.0 → 0.3.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 +5 -5
- data/lib/jeanine.rb +3 -0
- data/lib/jeanine/app.rb +5 -2
- data/lib/jeanine/callbacks.rb +9 -8
- data/lib/jeanine/mimes.rb +3 -1
- data/lib/jeanine/renderer.rb +13 -1
- data/lib/jeanine/routing/evaluation.rb +1 -1
- data/lib/jeanine/version.rb +1 -1
- data/lib/jeanine/view_paths.rb +7 -0
- metadata +33 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 0ec0b02b10f6cbf4e488db86b4bff6a5bb2f81184448dcdc8d431aa650ce8b64
|
4
|
+
data.tar.gz: 0d3408a137162c82388e86a3fcb74b5f14bf07e18cd0581866b4b027f29aa3ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1b5a6e3c6d7202516b24bd68c8573885195041d6c8f5a756de96792cd66681b2f2802904e65fd8b07b95bf180d84c3b15ccbc1bcb9809a0b31d1a443810cd1d1
|
7
|
+
data.tar.gz: 4d907b99574cf1b2bf9e2fd7a76523d680c767f79f1565f41ac1474fde345929a8eab329c01c915523a7cd707daa1fc5dd0a43e1cabd6c7cd276601f2bc6d2a1
|
data/lib/jeanine.rb
CHANGED
data/lib/jeanine/app.rb
CHANGED
@@ -6,17 +6,22 @@ require 'jeanine/response'
|
|
6
6
|
require 'jeanine/renderer'
|
7
7
|
require 'jeanine/routing'
|
8
8
|
require 'jeanine/session'
|
9
|
+
require 'jeanine/view_paths'
|
9
10
|
|
10
11
|
module Jeanine
|
11
12
|
class App
|
12
13
|
include Session
|
14
|
+
include Rescuing
|
13
15
|
include Routing::Evaluation
|
16
|
+
|
14
17
|
attr_reader :request, :response
|
15
18
|
|
16
19
|
class << self
|
17
20
|
include Callbacks
|
18
21
|
include Routing::DSL
|
19
22
|
include Rescuing
|
23
|
+
include ViewPaths
|
24
|
+
|
20
25
|
alias :_new :new
|
21
26
|
def new(*args, &block)
|
22
27
|
initialize!
|
@@ -41,8 +46,6 @@ module Jeanine
|
|
41
46
|
end
|
42
47
|
end
|
43
48
|
|
44
|
-
include Rescuing
|
45
|
-
|
46
49
|
def call(env)
|
47
50
|
begin
|
48
51
|
@env = env
|
data/lib/jeanine/callbacks.rb
CHANGED
@@ -9,14 +9,6 @@ module Jeanine
|
|
9
9
|
}
|
10
10
|
end
|
11
11
|
|
12
|
-
def _register_callback(type, paths = [], &block)
|
13
|
-
if paths == []
|
14
|
-
_callbacks["#{type}_all".to_sym] << { block: block }
|
15
|
-
else
|
16
|
-
_callbacks[type] << { paths: paths, block: block }
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
12
|
def before(*paths, &block)
|
21
13
|
_register_callback(:before, paths, &block)
|
22
14
|
end
|
@@ -24,5 +16,14 @@ module Jeanine
|
|
24
16
|
def after(*paths, &block)
|
25
17
|
_register_callback(:after, paths, &block)
|
26
18
|
end
|
19
|
+
|
20
|
+
private
|
21
|
+
def _register_callback(type, paths = [], &block)
|
22
|
+
if paths == []
|
23
|
+
_callbacks["#{type}_all".to_sym] << { block: block }
|
24
|
+
else
|
25
|
+
_callbacks[type] << { paths: paths, block: block }
|
26
|
+
end
|
27
|
+
end
|
27
28
|
end
|
28
29
|
end
|
data/lib/jeanine/mimes.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
require 'rack'
|
2
|
+
|
1
3
|
module Jeanine
|
2
4
|
class Mimes
|
3
5
|
MimeTypeNotFound = Class.new(StandardError)
|
4
|
-
MIME_TYPES_INVERTED = Rack::Mime::MIME_TYPES.invert
|
6
|
+
MIME_TYPES_INVERTED = ::Rack::Mime::MIME_TYPES.invert
|
5
7
|
|
6
8
|
def self.load!
|
7
9
|
register(:json, Rack::Mime::MIME_TYPES[".json"])
|
data/lib/jeanine/renderer.rb
CHANGED
@@ -81,6 +81,16 @@ module Jeanine
|
|
81
81
|
Thread.current[:tilt_cache] ||= Tilt::Cache.new
|
82
82
|
end
|
83
83
|
|
84
|
+
def find_template!(template)
|
85
|
+
Jeanine.view_paths.to_a.each do |path|
|
86
|
+
template_with_path = "#{path}/#{template}"
|
87
|
+
if File.exist?(template_with_path)
|
88
|
+
return template_with_path
|
89
|
+
end
|
90
|
+
end
|
91
|
+
raise "Template not found in view paths. Looking for #{template} in #{Jeanine.view_paths.to_a.join(', ')}"
|
92
|
+
end
|
93
|
+
|
84
94
|
def html(engine, template_name, options = {}, locals = {}, &block)
|
85
95
|
locals = options.delete(:locals) || locals || {}
|
86
96
|
layout = options[:layout]
|
@@ -94,6 +104,7 @@ module Jeanine
|
|
94
104
|
unless layout.include?("layouts/")
|
95
105
|
layout = "layouts/#{layout}"
|
96
106
|
end
|
107
|
+
layout = find_template!(layout)
|
97
108
|
options = options.merge(layout: false, scope: scope)
|
98
109
|
catch(:layout_missing) { return html(engine, layout, options, locals) { output } }
|
99
110
|
end
|
@@ -104,7 +115,8 @@ module Jeanine
|
|
104
115
|
Tilt::Cache.new.fetch engine, template_name, options do
|
105
116
|
template = Tilt[engine]
|
106
117
|
raise "Template engine not found: #{engine}" if template.nil?
|
107
|
-
|
118
|
+
template_name = find_template!(template_name)
|
119
|
+
template.new(template_name, options)
|
108
120
|
end
|
109
121
|
end
|
110
122
|
|
@@ -34,7 +34,7 @@ module Jeanine
|
|
34
34
|
while index < matches.captures.size
|
35
35
|
param = route[:params][index]
|
36
36
|
@request.params[param] = matches.captures[index]
|
37
|
-
if index ==
|
37
|
+
if index == matches.captures.size
|
38
38
|
@request.params[param].gsub!(@request.format)
|
39
39
|
end
|
40
40
|
index += 1
|
data/lib/jeanine/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jeanine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Brody
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-07-
|
11
|
+
date: 2020-07-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rack
|
@@ -53,7 +53,35 @@ dependencies:
|
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest-reporters
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rack-test
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
87
|
- - ">="
|
@@ -96,6 +124,7 @@ files:
|
|
96
124
|
- lib/jeanine/session.rb
|
97
125
|
- lib/jeanine/version.rb
|
98
126
|
- lib/jeanine/view.rb
|
127
|
+
- lib/jeanine/view_paths.rb
|
99
128
|
homepage: https://github.com/joshmn/jeanine
|
100
129
|
licenses:
|
101
130
|
- MIT
|
@@ -118,8 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
118
147
|
- !ruby/object:Gem::Version
|
119
148
|
version: '0'
|
120
149
|
requirements: []
|
121
|
-
|
122
|
-
rubygems_version: 2.6.14.3
|
150
|
+
rubygems_version: 3.0.3
|
123
151
|
signing_key:
|
124
152
|
specification_version: 4
|
125
153
|
summary: A framework.
|