nesta 0.15.0 → 0.16.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/tests.yml +2 -2
- data/CHANGELOG.md +17 -0
- data/Gemfile.lock +13 -13
- data/RELEASING.md +4 -3
- data/lib/nesta/config.rb +5 -4
- data/lib/nesta/models/file_model.rb +5 -1
- data/lib/nesta/overrides.rb +1 -15
- data/lib/nesta/version.rb +1 -1
- data/nesta.gemspec +2 -2
- data/templates/config/config.yml +2 -2
- data/test/integration/default_theme_test.rb +1 -1
- data/test/unit/config_test.rb +6 -0
- data/views/analytics.haml +6 -6
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f57754ef13ef4b4533c03ab454b2114fb35d3e168d20107c1fb39941d6af4b92
|
4
|
+
data.tar.gz: 9aa4a9b8e0715d77c1ec515a114f63827e8a117e1f3b807755a59d0c0eba0c45
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: effa2dcecf9d3ed0de395102c893d9f1571171b4bc4d63968911f3538c27bd8ef15692df2586239e2986d1b32e4bd4ef23513245c2cd89d0d159df3d9bf79903
|
7
|
+
data.tar.gz: c0f318224b4f70322af4d30b55e517b1d790b3087129eb0601d434eabf79cc65e3b8ae24262f7300812a0414dd5402d2969d0f11be1f5d0516afe1ad7474d27c
|
data/.github/workflows/tests.yml
CHANGED
@@ -8,10 +8,10 @@ jobs:
|
|
8
8
|
strategy:
|
9
9
|
fail-fast: false
|
10
10
|
matrix:
|
11
|
-
ruby: ["
|
11
|
+
ruby: ["3.0", "3.1", "3.2", "3.3"]
|
12
12
|
runs-on: ubuntu-latest
|
13
13
|
steps:
|
14
|
-
- uses: actions/checkout@
|
14
|
+
- uses: actions/checkout@v4
|
15
15
|
- uses: ruby/setup-ruby@v1
|
16
16
|
with:
|
17
17
|
ruby-version: ${{ matrix.ruby }}
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 0.16.0 (11 April 2024)
|
4
|
+
|
5
|
+
* Update Google Analytics JS code to GA4. (Matthew Bass)
|
6
|
+
|
7
|
+
* Upgrade to Sinatra 3.1. (なつき)
|
8
|
+
|
9
|
+
* Tilt renderers (e.g. for Markdown, Haml, or Textile) are now configurable.
|
10
|
+
See #146 for details. (Graham Ashton)
|
11
|
+
|
12
|
+
* Drop support for Ruby 2.7, which is no longer supported by Nokogiri,
|
13
|
+
which is one of Nesta's dependencies. This is understandable; Ruby
|
14
|
+
2.7 reached end-of-life in March 2023. (Graham Ashton)
|
15
|
+
|
16
|
+
* Bug fix: Config variables that were defined for an environment (test,
|
17
|
+
dev, production), but for which there was no default, were always read
|
18
|
+
as nil. (Matthew Bass)
|
19
|
+
|
3
20
|
## 0.15.0 (11 July 2023)
|
4
21
|
|
5
22
|
* Upgrade to Sinatra 3. (Graham Ashton)
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
nesta (0.
|
4
|
+
nesta (0.16.0)
|
5
5
|
RedCloth (~> 4.2)
|
6
6
|
haml (>= 3.1, < 6.0)
|
7
7
|
haml-contrib (>= 1.0)
|
@@ -9,13 +9,13 @@ PATH
|
|
9
9
|
rake
|
10
10
|
rdiscount (~> 2.1)
|
11
11
|
sass-embedded (~> 1.58)
|
12
|
-
sinatra (~> 3.
|
13
|
-
tilt (~> 2.
|
12
|
+
sinatra (~> 3.1)
|
13
|
+
tilt (~> 2.1)
|
14
14
|
|
15
15
|
GEM
|
16
16
|
remote: https://rubygems.org/
|
17
17
|
specs:
|
18
|
-
RedCloth (4.3.
|
18
|
+
RedCloth (4.3.3)
|
19
19
|
addressable (2.8.1)
|
20
20
|
public_suffix (>= 2.0.2, < 6.0)
|
21
21
|
ansi (1.5.0)
|
@@ -41,7 +41,7 @@ GEM
|
|
41
41
|
rb-inotify (>= 0.9)
|
42
42
|
rb-kqueue (>= 0.2)
|
43
43
|
mini_mime (1.1.2)
|
44
|
-
mini_portile2 (2.8.
|
44
|
+
mini_portile2 (2.8.5)
|
45
45
|
minitest (5.18.0)
|
46
46
|
minitest-reporters (1.6.0)
|
47
47
|
ansi
|
@@ -55,14 +55,14 @@ GEM
|
|
55
55
|
unicorn (>= 4.5)
|
56
56
|
mustermann (3.0.0)
|
57
57
|
ruby2_keywords (~> 0.0.1)
|
58
|
-
nokogiri (1.
|
59
|
-
mini_portile2 (~> 2.8.
|
58
|
+
nokogiri (1.16.2)
|
59
|
+
mini_portile2 (~> 2.8.2)
|
60
60
|
racc (~> 1.4)
|
61
61
|
public_suffix (5.0.1)
|
62
|
-
racc (1.
|
63
|
-
rack (2.2.
|
64
|
-
rack-protection (3.0
|
65
|
-
rack
|
62
|
+
racc (1.7.3)
|
63
|
+
rack (2.2.8.1)
|
64
|
+
rack-protection (3.1.0)
|
65
|
+
rack (~> 2.2, >= 2.2.4)
|
66
66
|
rack-test (2.0.2)
|
67
67
|
rack (>= 1.3)
|
68
68
|
raindrops (0.20.1)
|
@@ -78,10 +78,10 @@ GEM
|
|
78
78
|
sass-embedded (1.58.3)
|
79
79
|
google-protobuf (~> 3.21)
|
80
80
|
rake (>= 10.0.0)
|
81
|
-
sinatra (3.0
|
81
|
+
sinatra (3.1.0)
|
82
82
|
mustermann (~> 3.0)
|
83
83
|
rack (~> 2.2, >= 2.2.4)
|
84
|
-
rack-protection (= 3.0
|
84
|
+
rack-protection (= 3.1.0)
|
85
85
|
tilt (~> 2.0)
|
86
86
|
temple (0.10.0)
|
87
87
|
tilt (2.1.0)
|
data/RELEASING.md
CHANGED
@@ -8,15 +8,16 @@ the steps:
|
|
8
8
|
|
9
9
|
2. Bump the version number in `lib/nesta/version.rb`. This will cause
|
10
10
|
the version number in `Gemfile.lock` to be updated too, so regenerate
|
11
|
-
it now and check them in together.
|
11
|
+
it now (e.g. run `bundle install`) and check them in together.
|
12
12
|
|
13
13
|
3. Update the `CHANGLOG.md` file with a summary of significant changes since
|
14
14
|
the previous release.
|
15
15
|
|
16
16
|
4. Commit these changes with a commit message of 'Bump version to <version>'
|
17
17
|
|
18
|
-
5.
|
19
|
-
|
18
|
+
5. Install the gem locally (`rake install`), then generate a new site
|
19
|
+
with the `nesta` command. Install the demo content site, check that
|
20
|
+
it runs okay locally.
|
20
21
|
|
21
22
|
6. If everything seems fine, run `rake release`.
|
22
23
|
|
data/lib/nesta/config.rb
CHANGED
@@ -33,10 +33,11 @@ module Nesta
|
|
33
33
|
setting = setting.to_s
|
34
34
|
self.config ||= read_config_file(setting)
|
35
35
|
env_config = config.fetch(Nesta::App.environment.to_s, {})
|
36
|
-
env_config.fetch(
|
37
|
-
setting
|
38
|
-
|
39
|
-
|
36
|
+
env_config.fetch(setting) do
|
37
|
+
config.fetch(setting) do
|
38
|
+
raise NotDefined.new(setting)
|
39
|
+
end
|
40
|
+
end
|
40
41
|
rescue NotDefined
|
41
42
|
default.empty? && raise || (return default.first)
|
42
43
|
end
|
@@ -184,8 +184,12 @@ module Nesta
|
|
184
184
|
|
185
185
|
def convert_to_html(format, scope, text)
|
186
186
|
text = add_p_tags_to_haml(text) if @format == :haml
|
187
|
-
template = Tilt[format].new { text }
|
187
|
+
template = Tilt[format].new(renderer_config(@format)) { text }
|
188
188
|
template.render(scope)
|
189
189
|
end
|
190
|
+
|
191
|
+
def renderer_config(format)
|
192
|
+
{}
|
193
|
+
end
|
190
194
|
end
|
191
195
|
end
|
data/lib/nesta/overrides.rb
CHANGED
@@ -12,23 +12,9 @@ module Nesta
|
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
|
-
def scss(template, options = {}, locals = {})
|
16
|
-
find_template(Nesta::App.settings.views, template, Tilt::ScssTemplate) do |file|
|
17
|
-
return Tilt.new(file).render if File.exist?(file)
|
18
|
-
end
|
19
|
-
raise IOError, "SCSS template not found: #{template}"
|
20
|
-
end
|
21
|
-
|
22
|
-
def sass(template, options = {}, locals = {})
|
23
|
-
find_template(Nesta::App.settings.views, template, Tilt::SassTemplate) do |file|
|
24
|
-
return Tilt.new(file).render if File.exist?(file)
|
25
|
-
end
|
26
|
-
raise IOError, "Sass template not found: #{template}"
|
27
|
-
end
|
28
|
-
|
29
15
|
def stylesheet(template, options = {}, locals = {})
|
30
16
|
scss(template, options, locals)
|
31
|
-
rescue
|
17
|
+
rescue Errno::ENOENT
|
32
18
|
sass(template, options, locals)
|
33
19
|
end
|
34
20
|
end
|
data/lib/nesta/version.rb
CHANGED
data/nesta.gemspec
CHANGED
@@ -36,8 +36,8 @@ EOF
|
|
36
36
|
s.add_dependency('rdiscount', '~> 2.1')
|
37
37
|
s.add_dependency('RedCloth', '~> 4.2')
|
38
38
|
s.add_dependency('sass-embedded', '~> 1.58')
|
39
|
-
s.add_dependency('sinatra', '~> 3.
|
40
|
-
s.add_dependency('tilt', '~> 2.
|
39
|
+
s.add_dependency('sinatra', '~> 3.1')
|
40
|
+
s.add_dependency('tilt', '~> 2.1')
|
41
41
|
|
42
42
|
# Useful in development
|
43
43
|
s.add_development_dependency('mr-sparkle')
|
data/templates/config/config.yml
CHANGED
@@ -44,7 +44,7 @@ content: content
|
|
44
44
|
# scroll down a bit to set it in production even if you're not deploying
|
45
45
|
# to your own server.
|
46
46
|
#
|
47
|
-
# google_analytics_code: "
|
47
|
+
# google_analytics_code: "G-??????????"
|
48
48
|
|
49
49
|
# read_more
|
50
50
|
# When the summary of an article is displayed on the home page, or
|
@@ -64,7 +64,7 @@ content: content
|
|
64
64
|
|
65
65
|
# production:
|
66
66
|
# content: /var/apps/nesta/shared/content
|
67
|
-
# google_analytics_code: "
|
67
|
+
# google_analytics_code: "G-??????????"
|
68
68
|
|
69
69
|
# The following settings control the behaviour of the `nesta build`
|
70
70
|
# command, which is used to generate a "static" version of your site.
|
@@ -33,7 +33,7 @@ describe 'Default theme' do
|
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'includes Google Analytics JavaScript when configured' do
|
36
|
-
analytics_code = { 'google_analytics_code' => '
|
36
|
+
analytics_code = { 'google_analytics_code' => 'G-1234' }
|
37
37
|
stub_config(temp_content.merge('test' => analytics_code)) do
|
38
38
|
visit '/'
|
39
39
|
assert_nil all('script').find { |s| s[:src].match /analytics\.js/ }
|
data/test/unit/config_test.rb
CHANGED
@@ -38,6 +38,12 @@ describe Nesta::Config do
|
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
|
+
it 'returns environment specific settings' do
|
42
|
+
stub_config('test' => { 'content' => 'rack_env_specific/path'}) do
|
43
|
+
assert_equal 'rack_env_specific/path', Nesta::Config.content
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
41
47
|
it 'overrides top level settings with environment specific settings' do
|
42
48
|
config = {
|
43
49
|
'content' => 'general/path',
|
data/views/analytics.haml
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
- if @google_analytics_code
|
2
2
|
:plain
|
3
|
+
<!-- Google tag (gtag.js) -->
|
4
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id=#{@google_analytics_code}"></script>
|
3
5
|
<script>
|
4
|
-
|
5
|
-
(
|
6
|
-
|
7
|
-
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
6
|
+
window.dataLayer = window.dataLayer || [];
|
7
|
+
function gtag(){dataLayer.push(arguments);}
|
8
|
+
gtag('js', new Date());
|
8
9
|
|
9
|
-
|
10
|
-
ga('send', 'pageview');
|
10
|
+
gtag('config', '#{@google_analytics_code}');
|
11
11
|
</script>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nesta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.16.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Graham Ashton
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: haml
|
@@ -120,28 +120,28 @@ dependencies:
|
|
120
120
|
requirements:
|
121
121
|
- - "~>"
|
122
122
|
- !ruby/object:Gem::Version
|
123
|
-
version: '3.
|
123
|
+
version: '3.1'
|
124
124
|
type: :runtime
|
125
125
|
prerelease: false
|
126
126
|
version_requirements: !ruby/object:Gem::Requirement
|
127
127
|
requirements:
|
128
128
|
- - "~>"
|
129
129
|
- !ruby/object:Gem::Version
|
130
|
-
version: '3.
|
130
|
+
version: '3.1'
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
132
|
name: tilt
|
133
133
|
requirement: !ruby/object:Gem::Requirement
|
134
134
|
requirements:
|
135
135
|
- - "~>"
|
136
136
|
- !ruby/object:Gem::Version
|
137
|
-
version: '2.
|
137
|
+
version: '2.1'
|
138
138
|
type: :runtime
|
139
139
|
prerelease: false
|
140
140
|
version_requirements: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
142
|
- - "~>"
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version: '2.
|
144
|
+
version: '2.1'
|
145
145
|
- !ruby/object:Gem::Dependency
|
146
146
|
name: mr-sparkle
|
147
147
|
requirement: !ruby/object:Gem::Requirement
|
@@ -369,7 +369,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
369
369
|
- !ruby/object:Gem::Version
|
370
370
|
version: '0'
|
371
371
|
requirements: []
|
372
|
-
rubygems_version: 3.
|
372
|
+
rubygems_version: 3.5.3
|
373
373
|
signing_key:
|
374
374
|
specification_version: 4
|
375
375
|
summary: Ruby CMS, written in Sinatra
|