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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c363b5a61100dc07d3236d95bf8e1ebed88441af
4
- data.tar.gz: 519df66c62df387440d4b275f3023641b94a8b43
3
+ metadata.gz: 6283b5f17bc1ce6862db2f81ad9e502a3a438561
4
+ data.tar.gz: cc533e3a5b5ae735d718d22f310bf4f74d844781
5
5
  SHA512:
6
- metadata.gz: 65b9d64c8e19854b668a7e37e9b8e92284d1599532e34b4c0bc122beb7105865bcb5b047a8d05a24df1ed61cdde80daaa1db483a69e0a94e652e1362d34952cb
7
- data.tar.gz: 7f0ad9592c8a21b59010ac1d6520ed5d311efee5be22df876844a9160a8341cb52fff0e3af96ff0f5a5cdeda607ed03276bdf956de4024081e73df32794ee1f5
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(
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module MiddlemanDato
3
- VERSION = '0.7.1'
3
+ VERSION = '0.7.2'
4
4
  end
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.1
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-17 00:00:00.000000000 Z
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
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
- class MockBuilder
3
- def tag(*args)
4
- args
5
- end
6
- end