middleman-dato 0.7.1 → 0.7.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/lib/middleman_dato/middleman_extension.rb +5 -1
- data/lib/middleman_dato/version.rb +1 -1
- metadata +2 -12
- data/spec/middleman_dato/meta_tags/article_modified_time_spec.rb +0 -24
- data/spec/middleman_dato/meta_tags/favicon_spec.rb +0 -188
- data/spec/middleman_dato/meta_tags/image_spec.rb +0 -40
- data/spec/middleman_dato/meta_tags/og_locale_spec.rb +0 -22
- data/spec/support/mock_builder.rb +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6283b5f17bc1ce6862db2f81ad9e502a3a438561
|
4
|
+
data.tar.gz: cc533e3a5b5ae735d718d22f310bf4f74d844781
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: faa1664446c6126a0773dca0cb27df4f0eea14908aceed061e1438c249f56f3de082c12825ca469d506f8214d5380fffab7bc3d9e4fa7dbca03711d761f7f497
|
7
|
+
data.tar.gz: 65f948fd992d0f1b301756b0cbd734a96c3f1943946de204bd92b33736fd824c274e9e3e364b9b7212973ea2ba1ab810a59795de78ceb9ff5fc3a5f2d3b5c98e
|
@@ -46,7 +46,11 @@ module MiddlemanDato
|
|
46
46
|
token = options[:token]
|
47
47
|
|
48
48
|
if token.blank? && File.exist?('.env')
|
49
|
-
Dotenv::Environment.new('.env')['DATO_API_TOKEN']
|
49
|
+
token = Dotenv::Environment.new('.env')['DATO_API_TOKEN']
|
50
|
+
end
|
51
|
+
|
52
|
+
if token.blank?
|
53
|
+
raise RuntimeError, 'Missing DatoCMS site API token!'
|
50
54
|
end
|
51
55
|
|
52
56
|
@client ||= Dato::Site::Client.new(
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: middleman-dato
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stefano Verna
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: coveralls
|
@@ -100,12 +100,7 @@ files:
|
|
100
100
|
- lib/middleman_dato/version.rb
|
101
101
|
- lib/middleman_dato/watcher.rb
|
102
102
|
- middleman-dato.gemspec
|
103
|
-
- spec/middleman_dato/meta_tags/article_modified_time_spec.rb
|
104
|
-
- spec/middleman_dato/meta_tags/favicon_spec.rb
|
105
|
-
- spec/middleman_dato/meta_tags/image_spec.rb
|
106
|
-
- spec/middleman_dato/meta_tags/og_locale_spec.rb
|
107
103
|
- spec/spec_helper.rb
|
108
|
-
- spec/support/mock_builder.rb
|
109
104
|
homepage: http://cantierecreativo.net
|
110
105
|
licenses: []
|
111
106
|
metadata: {}
|
@@ -130,10 +125,5 @@ signing_key:
|
|
130
125
|
specification_version: 4
|
131
126
|
summary: Fetches data from a Dato site
|
132
127
|
test_files:
|
133
|
-
- spec/middleman_dato/meta_tags/article_modified_time_spec.rb
|
134
|
-
- spec/middleman_dato/meta_tags/favicon_spec.rb
|
135
|
-
- spec/middleman_dato/meta_tags/image_spec.rb
|
136
|
-
- spec/middleman_dato/meta_tags/og_locale_spec.rb
|
137
128
|
- spec/spec_helper.rb
|
138
|
-
- spec/support/mock_builder.rb
|
139
129
|
has_rdoc:
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
module MiddlemanDato
|
5
|
-
module MetaTags
|
6
|
-
RSpec.describe ArticleModifiedTime do
|
7
|
-
subject(:meta_tag) { described_class.new(builder, base_url, site, item) }
|
8
|
-
let(:builder) { ::MockBuilder.new }
|
9
|
-
let(:base_url) { nil }
|
10
|
-
let(:site) { nil }
|
11
|
-
let(:item) do
|
12
|
-
double('Item', updated_at: Time.now, singleton?: false)
|
13
|
-
end
|
14
|
-
|
15
|
-
describe '.value' do
|
16
|
-
context 'if item is not singleton' do
|
17
|
-
it 'returns an ISO 8601 time representation' do
|
18
|
-
expect(meta_tag.value).not_to be_nil
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,188 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'active_support/core_ext/hash/indifferent_access'
|
4
|
-
|
5
|
-
require 'pry'
|
6
|
-
|
7
|
-
module MiddlemanDato
|
8
|
-
module MetaTags
|
9
|
-
RSpec.describe Favicon do
|
10
|
-
subject(:meta_tag) { described_class.new(builder, entity, theme_color) }
|
11
|
-
let(:builder) { ::MockBuilder.new }
|
12
|
-
let(:theme_color) { '#ffffff' }
|
13
|
-
let(:application_name) { 'An app name' }
|
14
|
-
let(:image_format) { 'image_format' }
|
15
|
-
let(:entity) do
|
16
|
-
double(
|
17
|
-
'MiddlemanDato::JsonApiEntity',
|
18
|
-
favicon: favicon,
|
19
|
-
global_seo: ActiveSupport::HashWithIndifferentAccess.new(
|
20
|
-
site_name: application_name
|
21
|
-
)
|
22
|
-
)
|
23
|
-
end
|
24
|
-
let(:favicon) do
|
25
|
-
ActiveSupport::HashWithIndifferentAccess.new(
|
26
|
-
path: '/path/to/file',
|
27
|
-
width: 1000,
|
28
|
-
height: 1000,
|
29
|
-
format: image_format,
|
30
|
-
size: 10_000
|
31
|
-
)
|
32
|
-
end
|
33
|
-
|
34
|
-
describe '#build_tags' do
|
35
|
-
let(:result) { meta_tag.build_tags }
|
36
|
-
|
37
|
-
it 'render the application-name' do
|
38
|
-
meta = result.find { |t| t[0] == :meta && t[1][:name] == 'application-name' }
|
39
|
-
expect(meta).to be_present
|
40
|
-
expect(meta[1][:content]).to eq application_name
|
41
|
-
end
|
42
|
-
|
43
|
-
it 'render the theme-color' do
|
44
|
-
meta = result.find { |t| t[0] == :meta && t[1][:name] == 'theme-color' }
|
45
|
-
expect(meta).to be_present
|
46
|
-
expect(meta[1][:content]).to eq theme_color
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'render the msapplication-TileColor' do
|
50
|
-
meta = result.find { |t| t[0] == :meta && t[1][:name] == 'msapplication-TileColor' }
|
51
|
-
expect(meta).to be_present
|
52
|
-
expect(meta[1][:content]).to eq theme_color
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
describe '#image' do
|
57
|
-
context 'when favicon is not present' do
|
58
|
-
let(:favicon) { nil }
|
59
|
-
|
60
|
-
it 'renders nil' do
|
61
|
-
expect(meta_tag.image).to eq nil
|
62
|
-
end
|
63
|
-
end
|
64
|
-
|
65
|
-
context 'else' do
|
66
|
-
let(:image_obj) { double('Dato::Local::FieldType::Image', format: image_format) }
|
67
|
-
|
68
|
-
it 'return the image parsed with Dato::Local::FieldType::Image' do
|
69
|
-
allow(Dato::Local::FieldType::Image).to receive(:parse).and_return(image_obj)
|
70
|
-
image = meta_tag.image
|
71
|
-
expect(Dato::Local::FieldType::Image).to have_received(:parse)
|
72
|
-
.with(favicon, nil)
|
73
|
-
expect(image).to eq image_obj
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
describe '#url' do
|
79
|
-
let(:image) { instance_double('Dato::Local::FieldType::Image', file: file) }
|
80
|
-
let(:file) { instance_double('Imgix::Path') }
|
81
|
-
let(:width) { 1 }
|
82
|
-
let(:height) { 2 }
|
83
|
-
|
84
|
-
let(:result) { meta_tag.url(width, height) }
|
85
|
-
|
86
|
-
before do
|
87
|
-
allow(meta_tag).to receive(:image).and_return(image)
|
88
|
-
allow(file).to receive(:width).and_return(file)
|
89
|
-
allow(file).to receive(:height).and_return(file)
|
90
|
-
allow(file).to receive(:to_url)
|
91
|
-
result
|
92
|
-
end
|
93
|
-
|
94
|
-
it 'generates the url for that size' do
|
95
|
-
expect(meta_tag).to have_received(:image)
|
96
|
-
expect(image).to have_received(:file)
|
97
|
-
expect(file).to have_received(:width).with(width)
|
98
|
-
expect(file).to have_received(:height).with(height)
|
99
|
-
expect(file).to have_received(:to_url)
|
100
|
-
end
|
101
|
-
|
102
|
-
context 'without height' do
|
103
|
-
let(:result) { meta_tag.url(width) }
|
104
|
-
|
105
|
-
it 'call height with width value' do
|
106
|
-
expect(file).to have_received(:height).with(width)
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
describe '#build_apple_icon_tags' do
|
112
|
-
let(:result) { meta_tag.build_apple_icon_tags }
|
113
|
-
let(:image_url) { '/path/to/image' }
|
114
|
-
|
115
|
-
before do
|
116
|
-
allow(meta_tag).to receive(:url).and_return(image_url)
|
117
|
-
result
|
118
|
-
end
|
119
|
-
|
120
|
-
it 'render an apple-touch-icon link for each size' do
|
121
|
-
described_class::APPLE_TOUCH_ICON_SIZES.each do |apple_icon_size|
|
122
|
-
meta = result.find do |t|
|
123
|
-
t[0] == :link &&
|
124
|
-
t[1][:rel] == 'apple-touch-icon' &&
|
125
|
-
t[1][:sizes] == "#{apple_icon_size}x#{apple_icon_size}"
|
126
|
-
end
|
127
|
-
|
128
|
-
expect(meta_tag).to have_received(:url).with(apple_icon_size)
|
129
|
-
expect(meta).to be_present
|
130
|
-
expect(meta[1][:href]).to eq image_url
|
131
|
-
end
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
|
-
describe '#build_apple_icon_tags' do
|
136
|
-
let(:result) { meta_tag.build_icon_tags }
|
137
|
-
let(:image) { instance_double('Dato::Local::FieldType::Image', format: format) }
|
138
|
-
let(:format) { 'png' }
|
139
|
-
let(:image_url) { '/path/to/image' }
|
140
|
-
|
141
|
-
before do
|
142
|
-
allow(meta_tag).to receive(:url).and_return(image_url)
|
143
|
-
allow(meta_tag).to receive(:image).and_return(image)
|
144
|
-
result
|
145
|
-
end
|
146
|
-
|
147
|
-
it 'render an icon link for each size' do
|
148
|
-
described_class::ICON_SIZES.each do |icon_size|
|
149
|
-
meta = result.find do |t|
|
150
|
-
t[0] == :link &&
|
151
|
-
t[1][:rel] == 'icon' &&
|
152
|
-
t[1][:sizes] == "#{icon_size}x#{icon_size}"
|
153
|
-
end
|
154
|
-
|
155
|
-
expect(meta_tag).to have_received(:url).with(icon_size)
|
156
|
-
expect(meta).to be_present
|
157
|
-
expect(meta[1][:href]).to eq image_url
|
158
|
-
end
|
159
|
-
end
|
160
|
-
end
|
161
|
-
|
162
|
-
describe '#build_application_tags' do
|
163
|
-
let(:result) { meta_tag.build_application_tags }
|
164
|
-
let(:image) { instance_double('Dato::Local::FieldType::Image', format: format) }
|
165
|
-
let(:format) { 'png' }
|
166
|
-
let(:image_url) { '/path/to/image' }
|
167
|
-
|
168
|
-
before do
|
169
|
-
allow(meta_tag).to receive(:url).and_return(image_url)
|
170
|
-
allow(meta_tag).to receive(:image).and_return(image)
|
171
|
-
result
|
172
|
-
end
|
173
|
-
|
174
|
-
it 'render application meta for each size' do
|
175
|
-
described_class::APPLICATION_SIZES.each do |size|
|
176
|
-
meta = result.find do |t|
|
177
|
-
t[0] == :meta &&
|
178
|
-
t[1][:name] == "msapplication-square#{size}x#{size}logo"
|
179
|
-
end
|
180
|
-
expect(meta_tag).to have_received(:url).with(size)
|
181
|
-
expect(meta).to be_present
|
182
|
-
expect(meta[1][:content]).to eq image_url
|
183
|
-
end
|
184
|
-
end
|
185
|
-
end
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
module MiddlemanDato
|
5
|
-
module MetaTags
|
6
|
-
RSpec.describe Image do
|
7
|
-
subject(:meta_tag) { described_class.new(builder, base_url, site, item) }
|
8
|
-
let(:builder) { ::MockBuilder.new }
|
9
|
-
let(:base_url) { nil }
|
10
|
-
let(:site) { nil }
|
11
|
-
let(:item) do
|
12
|
-
double(
|
13
|
-
'MiddlemanDato::Item',
|
14
|
-
fields: [double('MiddlemanDato::JsonApiEntity', api_key: 'foo', field_type: 'image')],
|
15
|
-
foo: image,
|
16
|
-
singleton?: false
|
17
|
-
)
|
18
|
-
end
|
19
|
-
|
20
|
-
let(:field) do
|
21
|
-
{ field_type: 'image' }
|
22
|
-
end
|
23
|
-
|
24
|
-
let(:image) do
|
25
|
-
double(
|
26
|
-
'MiddlemanDato::JsonApiEntity',
|
27
|
-
width: 300,
|
28
|
-
height: 300,
|
29
|
-
file: double('File', format: double('Imgix', to_url: 'http://google.com'))
|
30
|
-
)
|
31
|
-
end
|
32
|
-
|
33
|
-
describe '.value' do
|
34
|
-
it 'returns the current locale' do
|
35
|
-
expect(meta_tag.image).to eq 'http://google.com'
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
require 'spec_helper'
|
3
|
-
|
4
|
-
module MiddlemanDato
|
5
|
-
module MetaTags
|
6
|
-
RSpec.describe OgLocale do
|
7
|
-
subject(:meta_tag) { described_class.new(builder, base_url, site, item) }
|
8
|
-
let(:builder) { ::MockBuilder.new }
|
9
|
-
let(:base_url) { nil }
|
10
|
-
let(:site) { nil }
|
11
|
-
let(:item) { nil }
|
12
|
-
|
13
|
-
describe '#value' do
|
14
|
-
it 'returns the current locale' do
|
15
|
-
I18n.with_locale(:it) do
|
16
|
-
expect(meta_tag.value).to eq 'it_IT'
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|