inert 0.3.0 → 0.4.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 +4 -4
- data/exe/inert +1 -3
- data/lib/inert/{middleware.rb → app.rb} +11 -3
- data/lib/inert/builder.rb +15 -13
- data/lib/inert/cli.rb +0 -2
- data/lib/inert/config.rb +7 -2
- data/lib/inert/history.rb +18 -0
- data/lib/inert/logger.rb +13 -0
- data/lib/inert/page.rb +10 -5
- data/lib/inert/version.rb +1 -1
- data/lib/inert.rb +12 -13
- metadata +98 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 249dee2f97dfd03ef27c640fe86bbeb93df44d281b2de5d8ded5c42922b21761
|
|
4
|
+
data.tar.gz: d9459ba71fc85a5021c275267c8d12823783c0112573a1cc628051d1ea002311
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e439eddbee4a90c722670cdce5861b99cd873a8c10c5545c9c67eb84c26d37c03bc44d1511cdb2bf6a54455e66783d7be0cfc1bef50be15fe4f340ebfe83c8e7
|
|
7
|
+
data.tar.gz: 3f45d74a98b1d3ed566a4c116d083f5b76b0a9d92048d84520c1eaddef75b4f93a22ba858aa25fc83779863756caced4dcc8cfd64bb040bf10f89380fd76d760
|
data/exe/inert
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
require "roda"
|
|
3
3
|
|
|
4
4
|
module Inert
|
|
5
|
-
class
|
|
5
|
+
class App < Roda
|
|
6
6
|
plugin :render,
|
|
7
7
|
cache: Inert.building?,
|
|
8
8
|
views: Inert.config.views
|
|
@@ -11,7 +11,15 @@ module Inert
|
|
|
11
11
|
plugin :public, root: "static"
|
|
12
12
|
plugin :content_for
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
if Inert.development?
|
|
15
|
+
plugin :common_logger
|
|
16
|
+
plugin :exception_page
|
|
17
|
+
plugin :error_handler do |e|
|
|
18
|
+
next exception_page(e)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
class_exec(&Inert.config.app)
|
|
15
23
|
|
|
16
24
|
route do |r|
|
|
17
25
|
r.public
|
|
@@ -32,7 +40,7 @@ module Inert
|
|
|
32
40
|
view(inline: page.body, layout: page.layout, template_class: Tilt[page.filename])
|
|
33
41
|
end
|
|
34
42
|
|
|
35
|
-
class_exec
|
|
43
|
+
class_exec(&Inert.config.helpers)
|
|
36
44
|
|
|
37
45
|
def inline(file)
|
|
38
46
|
File.read(File.join(Inert.view_path, file))
|
data/lib/inert/builder.rb
CHANGED
|
@@ -1,19 +1,25 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
require "fileutils"
|
|
3
|
-
require "set"
|
|
4
3
|
require "oga"
|
|
5
4
|
require "uri"
|
|
5
|
+
require "rack"
|
|
6
|
+
require_relative "history"
|
|
7
|
+
require_relative "logger"
|
|
6
8
|
|
|
7
9
|
module Inert
|
|
8
10
|
class Builder
|
|
9
|
-
attr_accessor :app, :
|
|
11
|
+
attr_accessor :app, :build_destination
|
|
10
12
|
attr_reader :queue, :history
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
attr_accessor :logger
|
|
15
|
+
|
|
16
|
+
def initialize(app, build_destination: "./build")
|
|
13
17
|
@app = app
|
|
14
18
|
@queue = []
|
|
15
|
-
@history =
|
|
16
|
-
@
|
|
19
|
+
@history = History.new
|
|
20
|
+
@build_destination = build_destination
|
|
21
|
+
|
|
22
|
+
Logger.configure(self)
|
|
17
23
|
end
|
|
18
24
|
|
|
19
25
|
def call(starting_url)
|
|
@@ -23,7 +29,7 @@ module Inert
|
|
|
23
29
|
history.add(starting_url)
|
|
24
30
|
|
|
25
31
|
while (url = queue.pop)
|
|
26
|
-
next if
|
|
32
|
+
next if history.include?(url) || is_anchor?(url) || is_remote?(url)
|
|
27
33
|
|
|
28
34
|
save(url)
|
|
29
35
|
history.add(url)
|
|
@@ -31,13 +37,13 @@ module Inert
|
|
|
31
37
|
end
|
|
32
38
|
|
|
33
39
|
def save(url)
|
|
34
|
-
|
|
40
|
+
logger.info { "Saving #{url}" }
|
|
35
41
|
request = Rack::MockRequest.new(app)
|
|
36
42
|
|
|
37
43
|
dest = URI(url.dup).path
|
|
38
44
|
dest << "index.html" if dest.end_with?("/")
|
|
39
45
|
dest << ".html" unless dest =~ /\.\w+$/
|
|
40
|
-
dest = File.expand_path(dest[1..-1],
|
|
46
|
+
dest = File.expand_path(dest[1..-1], build_destination)
|
|
41
47
|
|
|
42
48
|
FileUtils.mkdir_p(File.dirname(dest))
|
|
43
49
|
|
|
@@ -64,11 +70,7 @@ module Inert
|
|
|
64
70
|
end
|
|
65
71
|
|
|
66
72
|
def copy_static
|
|
67
|
-
FileUtils.cp_r(app.opts[:public_root]+"/.",
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
def already_visited?(url)
|
|
71
|
-
history.include?(url)
|
|
73
|
+
FileUtils.cp_r(app.opts[:public_root]+"/.", build_destination)
|
|
72
74
|
end
|
|
73
75
|
|
|
74
76
|
def is_anchor?(url)
|
data/lib/inert/cli.rb
CHANGED
|
@@ -8,7 +8,6 @@ module Inert
|
|
|
8
8
|
|
|
9
9
|
desc "build", "Build site"
|
|
10
10
|
def build
|
|
11
|
-
ENV["RACK_ENV"] = "production"
|
|
12
11
|
Inert.build
|
|
13
12
|
end
|
|
14
13
|
|
|
@@ -17,7 +16,6 @@ module Inert
|
|
|
17
16
|
method_option :bind, aliases: "-b", desc: "address to listen on", type: :string, default: "localhost"
|
|
18
17
|
method_option :server, aliases: "-s", desc: "server to use", type: :string
|
|
19
18
|
def server
|
|
20
|
-
ENV["RACK_ENV"] = "development"
|
|
21
19
|
Inert.start(server: options.server, host: options.bind, port: options.port)
|
|
22
20
|
end
|
|
23
21
|
end
|
data/lib/inert/config.rb
CHANGED
|
@@ -56,10 +56,15 @@ module Inert
|
|
|
56
56
|
return @routes unless block_given?
|
|
57
57
|
@routes = block
|
|
58
58
|
end
|
|
59
|
+
|
|
60
|
+
def self.load(filename)
|
|
61
|
+
if File.exist?(filename)
|
|
62
|
+
Kernel.load filename
|
|
63
|
+
end
|
|
64
|
+
end
|
|
59
65
|
end
|
|
60
66
|
|
|
61
|
-
|
|
62
|
-
def config
|
|
67
|
+
def self.config
|
|
63
68
|
@config ||= Config.new
|
|
64
69
|
yield @config if block_given?
|
|
65
70
|
@config
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen-string-literal: true
|
|
2
|
+
|
|
3
|
+
require "set"
|
|
4
|
+
require "forwardable"
|
|
5
|
+
|
|
6
|
+
module Inert
|
|
7
|
+
class History
|
|
8
|
+
extend Forwardable
|
|
9
|
+
|
|
10
|
+
def initialize
|
|
11
|
+
@entries = Set.new
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def_delegator :@entries, :add
|
|
15
|
+
def_delegator :@entries, :include?
|
|
16
|
+
def_delegator :@entries, :length
|
|
17
|
+
end
|
|
18
|
+
end
|
data/lib/inert/logger.rb
ADDED
data/lib/inert/page.rb
CHANGED
|
@@ -21,6 +21,15 @@ module Inert
|
|
|
21
21
|
raise Errno::ENOENT if filename.nil?
|
|
22
22
|
|
|
23
23
|
body = File.read(filename)
|
|
24
|
+
body, frontmatter = extract_frontmatter(body)
|
|
25
|
+
new(body: body, frontmatter: frontmatter, filename: filename)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def self.find_file(filename)
|
|
29
|
+
Dir[filename + ".*"].first
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def self.extract_frontmatter(body)
|
|
24
33
|
frontmatter = {}
|
|
25
34
|
|
|
26
35
|
body = body.gsub(/---(.*)---/m) do |m|
|
|
@@ -28,11 +37,7 @@ module Inert
|
|
|
28
37
|
""
|
|
29
38
|
end.lstrip
|
|
30
39
|
|
|
31
|
-
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
def self.find_file(filename)
|
|
35
|
-
Dir[filename + ".*"].first
|
|
40
|
+
[body, frontmatter]
|
|
36
41
|
end
|
|
37
42
|
end
|
|
38
43
|
end
|
data/lib/inert/version.rb
CHANGED
data/lib/inert.rb
CHANGED
|
@@ -7,25 +7,25 @@ module Inert
|
|
|
7
7
|
module_function
|
|
8
8
|
|
|
9
9
|
def start(server: nil, host: nil, port: nil)
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
use Rack::ShowExceptions
|
|
13
|
-
use Rack::CommonLogger
|
|
14
|
-
end
|
|
10
|
+
ENV["RACK_ENV"] = "development"
|
|
11
|
+
require_relative "inert/app"
|
|
15
12
|
|
|
16
|
-
|
|
17
|
-
end
|
|
13
|
+
require "rackup/server"
|
|
18
14
|
|
|
19
|
-
|
|
20
|
-
app:
|
|
15
|
+
Rackup::Server.start({
|
|
16
|
+
app: Inert::App,
|
|
21
17
|
server: server,
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
Host: host,
|
|
19
|
+
Port: port,
|
|
20
|
+
AccessLog: []
|
|
24
21
|
})
|
|
25
22
|
end
|
|
26
23
|
|
|
27
24
|
def build
|
|
28
|
-
|
|
25
|
+
ENV["RACK_ENV"] = "production"
|
|
26
|
+
require_relative "inert/app"
|
|
27
|
+
|
|
28
|
+
Inert::Builder.new(Inert::App).call("/")
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
def view_path
|
|
@@ -43,4 +43,3 @@ end
|
|
|
43
43
|
|
|
44
44
|
require_relative "inert/page"
|
|
45
45
|
require_relative "inert/builder"
|
|
46
|
-
require_relative "inert/middleware"
|
metadata
CHANGED
|
@@ -1,22 +1,83 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: inert
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.4.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Adam Daniels
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
12
|
+
- !ruby/object:Gem::Dependency
|
|
13
|
+
name: ostruct
|
|
14
|
+
requirement: !ruby/object:Gem::Requirement
|
|
15
|
+
requirements:
|
|
16
|
+
- - ">="
|
|
17
|
+
- !ruby/object:Gem::Version
|
|
18
|
+
version: '0.5'
|
|
19
|
+
type: :runtime
|
|
20
|
+
prerelease: false
|
|
21
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
22
|
+
requirements:
|
|
23
|
+
- - ">="
|
|
24
|
+
- !ruby/object:Gem::Version
|
|
25
|
+
version: '0.5'
|
|
26
|
+
- !ruby/object:Gem::Dependency
|
|
27
|
+
name: logger
|
|
28
|
+
requirement: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - ">="
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '1.5'
|
|
33
|
+
type: :runtime
|
|
34
|
+
prerelease: false
|
|
35
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
36
|
+
requirements:
|
|
37
|
+
- - ">="
|
|
38
|
+
- !ruby/object:Gem::Version
|
|
39
|
+
version: '1.5'
|
|
40
|
+
- !ruby/object:Gem::Dependency
|
|
41
|
+
name: rack
|
|
42
|
+
requirement: !ruby/object:Gem::Requirement
|
|
43
|
+
requirements:
|
|
44
|
+
- - ">="
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '3.0'
|
|
47
|
+
- - "<"
|
|
48
|
+
- !ruby/object:Gem::Version
|
|
49
|
+
version: '4.0'
|
|
50
|
+
type: :runtime
|
|
51
|
+
prerelease: false
|
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
53
|
+
requirements:
|
|
54
|
+
- - ">="
|
|
55
|
+
- !ruby/object:Gem::Version
|
|
56
|
+
version: '3.0'
|
|
57
|
+
- - "<"
|
|
58
|
+
- !ruby/object:Gem::Version
|
|
59
|
+
version: '4.0'
|
|
60
|
+
- !ruby/object:Gem::Dependency
|
|
61
|
+
name: rackup
|
|
62
|
+
requirement: !ruby/object:Gem::Requirement
|
|
63
|
+
requirements:
|
|
64
|
+
- - "<"
|
|
65
|
+
- !ruby/object:Gem::Version
|
|
66
|
+
version: '3.0'
|
|
67
|
+
type: :runtime
|
|
68
|
+
prerelease: false
|
|
69
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
70
|
+
requirements:
|
|
71
|
+
- - "<"
|
|
72
|
+
- !ruby/object:Gem::Version
|
|
73
|
+
version: '3.0'
|
|
13
74
|
- !ruby/object:Gem::Dependency
|
|
14
75
|
name: roda
|
|
15
76
|
requirement: !ruby/object:Gem::Requirement
|
|
16
77
|
requirements:
|
|
17
78
|
- - ">="
|
|
18
79
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '
|
|
80
|
+
version: '3.13'
|
|
20
81
|
- - "<"
|
|
21
82
|
- !ruby/object:Gem::Version
|
|
22
83
|
version: '4.0'
|
|
@@ -26,7 +87,7 @@ dependencies:
|
|
|
26
87
|
requirements:
|
|
27
88
|
- - ">="
|
|
28
89
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: '
|
|
90
|
+
version: '3.13'
|
|
30
91
|
- - "<"
|
|
31
92
|
- !ruby/object:Gem::Version
|
|
32
93
|
version: '4.0'
|
|
@@ -54,16 +115,22 @@ dependencies:
|
|
|
54
115
|
name: thor
|
|
55
116
|
requirement: !ruby/object:Gem::Requirement
|
|
56
117
|
requirements:
|
|
57
|
-
- - "
|
|
118
|
+
- - ">="
|
|
58
119
|
- !ruby/object:Gem::Version
|
|
59
120
|
version: '1.0'
|
|
121
|
+
- - "<"
|
|
122
|
+
- !ruby/object:Gem::Version
|
|
123
|
+
version: '3.0'
|
|
60
124
|
type: :runtime
|
|
61
125
|
prerelease: false
|
|
62
126
|
version_requirements: !ruby/object:Gem::Requirement
|
|
63
127
|
requirements:
|
|
64
|
-
- - "
|
|
128
|
+
- - ">="
|
|
65
129
|
- !ruby/object:Gem::Version
|
|
66
130
|
version: '1.0'
|
|
131
|
+
- - "<"
|
|
132
|
+
- !ruby/object:Gem::Version
|
|
133
|
+
version: '3.0'
|
|
67
134
|
- !ruby/object:Gem::Dependency
|
|
68
135
|
name: oga
|
|
69
136
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -84,7 +151,26 @@ dependencies:
|
|
|
84
151
|
- - "<"
|
|
85
152
|
- !ruby/object:Gem::Version
|
|
86
153
|
version: '4.0'
|
|
87
|
-
|
|
154
|
+
- !ruby/object:Gem::Dependency
|
|
155
|
+
name: webrick
|
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
|
157
|
+
requirements:
|
|
158
|
+
- - ">="
|
|
159
|
+
- !ruby/object:Gem::Version
|
|
160
|
+
version: '1.8'
|
|
161
|
+
- - "<"
|
|
162
|
+
- !ruby/object:Gem::Version
|
|
163
|
+
version: '2.0'
|
|
164
|
+
type: :runtime
|
|
165
|
+
prerelease: false
|
|
166
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
167
|
+
requirements:
|
|
168
|
+
- - ">="
|
|
169
|
+
- !ruby/object:Gem::Version
|
|
170
|
+
version: '1.8'
|
|
171
|
+
- - "<"
|
|
172
|
+
- !ruby/object:Gem::Version
|
|
173
|
+
version: '2.0'
|
|
88
174
|
email: adam@mediadrive.ca
|
|
89
175
|
executables:
|
|
90
176
|
- inert
|
|
@@ -94,17 +180,18 @@ files:
|
|
|
94
180
|
- README.md
|
|
95
181
|
- exe/inert
|
|
96
182
|
- lib/inert.rb
|
|
183
|
+
- lib/inert/app.rb
|
|
97
184
|
- lib/inert/builder.rb
|
|
98
185
|
- lib/inert/cli.rb
|
|
99
186
|
- lib/inert/config.rb
|
|
100
|
-
- lib/inert/
|
|
187
|
+
- lib/inert/history.rb
|
|
188
|
+
- lib/inert/logger.rb
|
|
101
189
|
- lib/inert/page.rb
|
|
102
190
|
- lib/inert/version.rb
|
|
103
191
|
homepage: https://github.com/adam12/inert
|
|
104
192
|
licenses:
|
|
105
193
|
- MIT
|
|
106
194
|
metadata: {}
|
|
107
|
-
post_install_message:
|
|
108
195
|
rdoc_options: []
|
|
109
196
|
require_paths:
|
|
110
197
|
- lib
|
|
@@ -119,8 +206,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
119
206
|
- !ruby/object:Gem::Version
|
|
120
207
|
version: '0'
|
|
121
208
|
requirements: []
|
|
122
|
-
rubygems_version:
|
|
123
|
-
signing_key:
|
|
209
|
+
rubygems_version: 4.0.3
|
|
124
210
|
specification_version: 4
|
|
125
211
|
summary: An experimental static site builder with unambitious goals
|
|
126
212
|
test_files: []
|