middleman-dato 0.7.1 → 0.7.2

Sign up to get free protection for your applications and to get access to all the features.
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