middleman-dato 0.5.11 → 0.5.12
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/README.md +98 -0
- data/lib/middleman-dato.rb +2 -2
- data/lib/{dato → middleman_dato}/client.rb +1 -1
- data/lib/{dato → middleman_dato}/entities_repo.rb +2 -2
- data/lib/{dato → middleman_dato}/field_type/boolean.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/date.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/date_time.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/file.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/float.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/image.rb +3 -3
- data/lib/{dato → middleman_dato}/field_type/integer.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/lat_lon.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/link.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/links.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/seo.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/string.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/text.rb +1 -1
- data/lib/{dato → middleman_dato}/field_type/video.rb +5 -1
- data/lib/{dato → middleman_dato}/json_api_entity.rb +1 -1
- data/lib/{dato → middleman_dato}/meta_tags/article_modified_time.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/article_publisher.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/base.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/description.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/favicon.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/image.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/og_locale.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/og_meta_tag.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/og_site_name.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/og_type.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/robots.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/title.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/twitter_card.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/twitter_meta_tag.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/twitter_site.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags/url.rb +2 -2
- data/lib/{dato → middleman_dato}/meta_tags_builder.rb +13 -13
- data/lib/{dato → middleman_dato}/middleman_extension.rb +5 -5
- data/lib/{dato → middleman_dato}/record.rb +2 -2
- data/lib/{dato → middleman_dato}/records_repo.rb +2 -2
- data/lib/{dato → middleman_dato}/space.rb +4 -4
- data/lib/middleman_dato/version.rb +4 -0
- data/middleman-dato.gemspec +2 -2
- data/spec/{dato → middleman_dato}/entities_repo_spec.rb +2 -2
- data/spec/{dato → middleman_dato}/field_type/file_spec.rb +2 -2
- data/spec/{dato → middleman_dato}/field_type/image_spec.rb +1 -1
- data/spec/{dato → middleman_dato}/field_type/lat_lon_spec.rb +1 -1
- data/spec/{dato → middleman_dato}/field_type/seo_spec.rb +2 -2
- data/spec/{dato → middleman_dato}/field_type/video_spec.rb +3 -3
- data/spec/{dato → middleman_dato}/json_api_entity_spec.rb +5 -5
- data/spec/{dato → middleman_dato}/meta_tags/article_modified_time_spec.rb +1 -1
- data/spec/{dato → middleman_dato}/meta_tags/favicon_spec.rb +9 -9
- data/spec/{dato → middleman_dato}/meta_tags/image_spec.rb +4 -4
- data/spec/{dato → middleman_dato}/meta_tags/og_locale_spec.rb +1 -1
- data/spec/{dato → middleman_dato}/record_spec.rb +10 -10
- data/spec/{dato → middleman_dato}/records_repo_spec.rb +10 -10
- metadata +68 -67
- data/lib/dato/version.rb +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 847b712bcdae73ce71dfc2202f07c21a77ee0357
|
|
4
|
+
data.tar.gz: 5a2ccd82a4132674cee8ef7beee080d4deb4f445
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 23dec01ce0b72dc2223cddca7d2a21108c2775dd977b847d323afc53849d397814c0c6bbe6e42a48e9fa014cdbd87372cafffdf9815eea95a5466aa8b212e2c5
|
|
7
|
+
data.tar.gz: 9a1d93e32b80245ac29d292b79baa33703f42445181b185fbf359a2ef0fa22429244887023f3896730b5195c558243f08e42a7841c74af4a8dfa878d39a8ed77
|
data/README.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# middleman-dato
|
|
2
|
+
|
|
3
|
+
## Setup
|
|
4
|
+
|
|
5
|
+
```ruby
|
|
6
|
+
# config.rb
|
|
7
|
+
|
|
8
|
+
activate :dato,
|
|
9
|
+
domain: 'lively-smoke-1134.admin.datocms.com',
|
|
10
|
+
token: 'XXXYYY',
|
|
11
|
+
base_url: 'http://www.mywebsite.com'
|
|
12
|
+
|
|
13
|
+
# feel free to use dato from now on:
|
|
14
|
+
#
|
|
15
|
+
# dato.articles.each do |article|
|
|
16
|
+
# proxy "/articles/#{article.slug}.html", "/templates/article.html", locals: { article: article }
|
|
17
|
+
# end
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Middleman helpers
|
|
21
|
+
|
|
22
|
+
### `dato`
|
|
23
|
+
|
|
24
|
+
Using this helper you can access to any record stored in your space by content type.
|
|
25
|
+
That is, if your space has a Content Type with `article` as API identifier, you can get
|
|
26
|
+
the complete array of records with `dato.articles` (yep, the identifier pluralized).
|
|
27
|
+
|
|
28
|
+
If a Content Type is marked as Singleton (ie. `about_page`) you don't need to pluralize and
|
|
29
|
+
a call to `dato.about_page` directly returns the Record (or `nil`, if still hasn't been created
|
|
30
|
+
within the backend).
|
|
31
|
+
|
|
32
|
+
You can query any Record field value with a method called like the field API identifier.
|
|
33
|
+
|
|
34
|
+
If a Content Type has a String field with Title appeareance, than the record responds to `.slug`,
|
|
35
|
+
returning a slugified version of the title itself (or the record identifier, if the title is empty).
|
|
36
|
+
|
|
37
|
+
You can use this helper within Middleman `config.rb`, as well as within your views:
|
|
38
|
+
|
|
39
|
+
```ruby
|
|
40
|
+
<% dato.articles.each do |article| %>
|
|
41
|
+
<div class="post">
|
|
42
|
+
<h1><%= link_to article.title, "/articles/#{article.slug}.html" %></h1>
|
|
43
|
+
<div>
|
|
44
|
+
<%= article.main_content %>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
<% end %>
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
Complex field types (ie. images, files, videos, SEO settings, etc.) implement specific methods
|
|
51
|
+
you can use as well:
|
|
52
|
+
|
|
53
|
+
```ruby
|
|
54
|
+
article = dato.articles.first
|
|
55
|
+
|
|
56
|
+
article.cover_image.file.width(500).fit('crop').to_url
|
|
57
|
+
article.video.iframe_embed(800, 600)
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
Please [refer to the code](https://github.com/datocms/middleman-dato/tree/master/lib/middleman_dato/field_type) for more informations.
|
|
61
|
+
|
|
62
|
+
### `dato_meta_tags`
|
|
63
|
+
|
|
64
|
+
This helper takes any record with a SEO field and generates SEO, Facebook OpenGraph and Twitter card meta tags based on it:
|
|
65
|
+
|
|
66
|
+
```ruby
|
|
67
|
+
<%= dato_meta_tags(dato.homepage) %>
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
```html
|
|
71
|
+
<title>...</title>
|
|
72
|
+
|
|
73
|
+
<meta name="description" content="..."/>
|
|
74
|
+
<meta name="twitter:card" content="..." />
|
|
75
|
+
<meta name="twitter:description" content="..."/>
|
|
76
|
+
<meta name="twitter:image" content="..."/>
|
|
77
|
+
<meta name="twitter:site" content="..."/>
|
|
78
|
+
<meta name="twitter:title" content="..."/>
|
|
79
|
+
<meta name="twitter:url" content="..."/>
|
|
80
|
+
|
|
81
|
+
<meta property="og:description" content="..."/>
|
|
82
|
+
<meta property="og:image" content="..."/>
|
|
83
|
+
<meta property="og:locale" content="..." />
|
|
84
|
+
<meta property="og:site_name" content="..." />
|
|
85
|
+
<meta property="og:title" content="..."/>
|
|
86
|
+
<meta property="og:type" content="..." />
|
|
87
|
+
<meta property="og:url" content="..."/>
|
|
88
|
+
|
|
89
|
+
<link rel="canonical" href="..."/>
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### `dato_favicon_meta_tags`
|
|
93
|
+
|
|
94
|
+
This helper generates meta tags based on the Favicon image specified within the Space:
|
|
95
|
+
|
|
96
|
+
```ruby
|
|
97
|
+
<%= dato_favicon_meta_tags(theme_color: '#D97C5F') %>
|
|
98
|
+
```
|
data/lib/middleman-dato.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'middleman_dato/field_type/file'
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module MiddlemanDato
|
|
4
4
|
module FieldType
|
|
5
|
-
class Image <
|
|
5
|
+
class Image < MiddlemanDato::FieldType::File
|
|
6
6
|
attr_reader :width, :height
|
|
7
7
|
|
|
8
8
|
def self.parse(value, _repo)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require 'active_support/core_ext/hash/compact'
|
|
2
2
|
require 'video_embed'
|
|
3
3
|
|
|
4
|
-
module
|
|
4
|
+
module MiddlemanDato
|
|
5
5
|
module FieldType
|
|
6
6
|
class Video
|
|
7
7
|
def self.parse(value, _repo)
|
|
@@ -40,6 +40,10 @@ module Dato
|
|
|
40
40
|
@attributes[:provider_url]
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
+
def provider_uid
|
|
44
|
+
@attributes[:provider_uid]
|
|
45
|
+
end
|
|
46
|
+
|
|
43
47
|
def iframe_embed(width = nil, height = nil)
|
|
44
48
|
VideoEmbed.embed(url, { width: width, height: height }.compact)
|
|
45
49
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module
|
|
1
|
+
module MiddlemanDato
|
|
2
2
|
module MetaTags
|
|
3
3
|
class Favicon
|
|
4
4
|
attr_reader :builder, :theme_color, :favicon, :app_name
|
|
@@ -14,7 +14,7 @@ module Dato
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def image
|
|
17
|
-
|
|
17
|
+
MiddlemanDato::FieldType::Image.parse(favicon, nil) if favicon.present?
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def url(width, height = nil)
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
require '
|
|
2
|
-
require '
|
|
3
|
-
require '
|
|
4
|
-
require '
|
|
5
|
-
require '
|
|
6
|
-
require '
|
|
7
|
-
require '
|
|
8
|
-
require '
|
|
9
|
-
require '
|
|
10
|
-
require '
|
|
11
|
-
require '
|
|
12
|
-
require '
|
|
1
|
+
require 'middleman_dato/meta_tags/title'
|
|
2
|
+
require 'middleman_dato/meta_tags/description'
|
|
3
|
+
require 'middleman_dato/meta_tags/image'
|
|
4
|
+
require 'middleman_dato/meta_tags/url'
|
|
5
|
+
require 'middleman_dato/meta_tags/robots'
|
|
6
|
+
require 'middleman_dato/meta_tags/og_locale'
|
|
7
|
+
require 'middleman_dato/meta_tags/og_type'
|
|
8
|
+
require 'middleman_dato/meta_tags/og_site_name'
|
|
9
|
+
require 'middleman_dato/meta_tags/article_modified_time'
|
|
10
|
+
require 'middleman_dato/meta_tags/article_publisher'
|
|
11
|
+
require 'middleman_dato/meta_tags/twitter_card'
|
|
12
|
+
require 'middleman_dato/meta_tags/twitter_site'
|
|
13
13
|
|
|
14
|
-
module
|
|
14
|
+
module MiddlemanDato
|
|
15
15
|
class MetaTagsBuilder
|
|
16
16
|
META_TAGS = [
|
|
17
17
|
MetaTags::Title,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
require 'middleman-core'
|
|
2
2
|
require 'middleman-core/version'
|
|
3
3
|
require 'semantic'
|
|
4
|
-
require '
|
|
5
|
-
require '
|
|
6
|
-
require '
|
|
4
|
+
require 'middleman_dato/meta_tags_builder'
|
|
5
|
+
require 'middleman_dato/space'
|
|
6
|
+
require 'middleman_dato/meta_tags/favicon'
|
|
7
7
|
|
|
8
|
-
module
|
|
8
|
+
module MiddlemanDato
|
|
9
9
|
class MiddlemanExtension < ::Middleman::Extension
|
|
10
10
|
attr_reader :space
|
|
11
11
|
|
|
@@ -21,7 +21,7 @@ module Dato
|
|
|
21
21
|
def initialize(app, options_hash = {}, &block)
|
|
22
22
|
super
|
|
23
23
|
|
|
24
|
-
@space = space =
|
|
24
|
+
@space = space = MiddlemanDato::Space.new(options)
|
|
25
25
|
@space.refresh!
|
|
26
26
|
|
|
27
27
|
app.before do
|
|
@@ -6,7 +6,7 @@ Dir[File.dirname(__FILE__) + '/field_type/*.rb'].each do |file|
|
|
|
6
6
|
require file
|
|
7
7
|
end
|
|
8
8
|
|
|
9
|
-
module
|
|
9
|
+
module MiddlemanDato
|
|
10
10
|
class Record
|
|
11
11
|
extend Forwardable
|
|
12
12
|
|
|
@@ -92,7 +92,7 @@ module Dato
|
|
|
92
92
|
|
|
93
93
|
def read_attribute(method, field)
|
|
94
94
|
field_type = field.field_type
|
|
95
|
-
type_klass_name = "::
|
|
95
|
+
type_klass_name = "::MiddlemanDato::FieldType::#{field_type.camelize}"
|
|
96
96
|
type_klass = type_klass_name.safe_constantize
|
|
97
97
|
|
|
98
98
|
if type_klass
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# coding: utf-8
|
|
2
|
-
require '
|
|
3
|
-
require '
|
|
4
|
-
require '
|
|
2
|
+
require 'middleman_dato/client'
|
|
3
|
+
require 'middleman_dato/entities_repo'
|
|
4
|
+
require 'middleman_dato/records_repo'
|
|
5
5
|
|
|
6
|
-
module
|
|
6
|
+
module MiddlemanDato
|
|
7
7
|
class Space
|
|
8
8
|
attr_reader :options
|
|
9
9
|
attr_reader :entities_repo
|
data/middleman-dato.gemspec
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
|
2
2
|
$LOAD_PATH.push File.expand_path('../lib', __FILE__)
|
|
3
|
-
require '
|
|
3
|
+
require 'middleman_dato/version'
|
|
4
4
|
|
|
5
5
|
Gem::Specification.new do |s|
|
|
6
6
|
s.name = 'middleman-dato'
|
|
7
|
-
s.version =
|
|
7
|
+
s.version = MiddlemanDato::VERSION
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
|
9
9
|
s.authors = ['Stefano Verna']
|
|
10
10
|
s.email = ['s.verna@cantierecreativo.net']
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
module
|
|
1
|
+
module MiddlemanDato
|
|
2
2
|
module FieldType
|
|
3
3
|
RSpec.describe Seo do
|
|
4
4
|
subject(:seo) { described_class.parse(attributes, nil) }
|
|
@@ -19,7 +19,7 @@ module Dato
|
|
|
19
19
|
it 'responds to title, description and image methods' do
|
|
20
20
|
expect(seo.title).to eq 'title'
|
|
21
21
|
expect(seo.description).to eq 'description'
|
|
22
|
-
expect(seo.image).to be_a
|
|
22
|
+
expect(seo.image).to be_a MiddlemanDato::FieldType::Image
|
|
23
23
|
expect(seo.image.path).to eq '/foo.png'
|
|
24
24
|
expect(seo.image.format).to eq 'jpg'
|
|
25
25
|
expect(seo.image.size).to eq 4000
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
module
|
|
1
|
+
module MiddlemanDato
|
|
2
2
|
module FieldType
|
|
3
3
|
RSpec.describe Video do
|
|
4
4
|
subject(:video) { described_class.parse(attributes, nil) }
|
|
5
5
|
let(:attributes) do
|
|
6
6
|
{
|
|
7
7
|
url: 'https://www.youtube.com/watch?v=oHg5SJYRHA0',
|
|
8
|
-
|
|
8
|
+
provider_uid: '123123',
|
|
9
9
|
thumbnail_url: 'http://i3.ytimg.com/vi/oHg5SJYRHA0/hqdefault.jpg',
|
|
10
10
|
title: "RickRoll'D",
|
|
11
11
|
width: 640,
|
|
@@ -15,7 +15,7 @@ module Dato
|
|
|
15
15
|
|
|
16
16
|
it 'responds to path, format, size, width and height' do
|
|
17
17
|
expect(video.url).to eq 'https://www.youtube.com/watch?v=oHg5SJYRHA0'
|
|
18
|
-
expect(video.
|
|
18
|
+
expect(video.provider_uid).to eq '123123'
|
|
19
19
|
expect(video.thumbnail_url).to eq 'http://i3.ytimg.com/vi/oHg5SJYRHA0/hqdefault.jpg'
|
|
20
20
|
expect(video.title).to eq "RickRoll'D"
|
|
21
21
|
expect(video.width).to eq 640
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'middleman_dato/json_api_entity'
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module MiddlemanDato
|
|
4
4
|
RSpec.describe JsonApiEntity do
|
|
5
5
|
subject(:object) { described_class.new(payload, data_source) }
|
|
6
6
|
let(:payload) do
|
|
@@ -25,7 +25,7 @@ module Dato
|
|
|
25
25
|
end
|
|
26
26
|
|
|
27
27
|
let(:data_source) do
|
|
28
|
-
instance_double('
|
|
28
|
+
instance_double('MiddlemanDato::DataSource')
|
|
29
29
|
end
|
|
30
30
|
|
|
31
31
|
describe '#id' do
|
|
@@ -95,8 +95,8 @@ module Dato
|
|
|
95
95
|
end
|
|
96
96
|
|
|
97
97
|
describe 'links' do
|
|
98
|
-
let(:stewie) { instance_double('
|
|
99
|
-
let(:thelma) { instance_double('
|
|
98
|
+
let(:stewie) { instance_double('MiddlemanDato::JsonApiObject') }
|
|
99
|
+
let(:thelma) { instance_double('MiddlemanDato::JsonApiObject') }
|
|
100
100
|
|
|
101
101
|
before do
|
|
102
102
|
allow(data_source).to receive(:find_entity).with('person', 'stewie') { stewie }
|
|
@@ -3,7 +3,7 @@ require 'active_support/core_ext/hash/indifferent_access'
|
|
|
3
3
|
|
|
4
4
|
require 'pry'
|
|
5
5
|
|
|
6
|
-
module
|
|
6
|
+
module MiddlemanDato
|
|
7
7
|
module MetaTags
|
|
8
8
|
RSpec.describe Favicon do
|
|
9
9
|
subject(:meta_tag) { described_class.new(builder, entity, theme_color) }
|
|
@@ -13,7 +13,7 @@ module Dato
|
|
|
13
13
|
let(:image_format) { 'image_format' }
|
|
14
14
|
let(:entity) do
|
|
15
15
|
double(
|
|
16
|
-
'
|
|
16
|
+
'MiddlemanDato::JsonApiEntity',
|
|
17
17
|
favicon: favicon,
|
|
18
18
|
global_seo: ActiveSupport::HashWithIndifferentAccess.new(
|
|
19
19
|
site_name: application_name
|
|
@@ -62,12 +62,12 @@ module Dato
|
|
|
62
62
|
end
|
|
63
63
|
|
|
64
64
|
context 'else' do
|
|
65
|
-
let(:image_obj) { double('
|
|
65
|
+
let(:image_obj) { double('MiddlemanDato::FieldType::Image', format: image_format) }
|
|
66
66
|
|
|
67
|
-
it 'return the image parsed with
|
|
68
|
-
allow(
|
|
67
|
+
it 'return the image parsed with MiddlemanDato::FieldType::Image' do
|
|
68
|
+
allow(MiddlemanDato::FieldType::Image).to receive(:parse).and_return(image_obj)
|
|
69
69
|
image = meta_tag.image
|
|
70
|
-
expect(
|
|
70
|
+
expect(MiddlemanDato::FieldType::Image).to have_received(:parse)
|
|
71
71
|
.with(favicon, nil)
|
|
72
72
|
expect(image).to eq image_obj
|
|
73
73
|
end
|
|
@@ -75,7 +75,7 @@ module Dato
|
|
|
75
75
|
end
|
|
76
76
|
|
|
77
77
|
describe '#url' do
|
|
78
|
-
let(:image) { instance_double('
|
|
78
|
+
let(:image) { instance_double('MiddlemanDato::FieldType::Image', file: file) }
|
|
79
79
|
let(:file) { instance_double('Imgix::Path') }
|
|
80
80
|
let(:width) { 1 }
|
|
81
81
|
let(:height) { 2 }
|
|
@@ -133,7 +133,7 @@ module Dato
|
|
|
133
133
|
|
|
134
134
|
describe '#build_apple_icon_tags' do
|
|
135
135
|
let(:result) { meta_tag.build_icon_tags }
|
|
136
|
-
let(:image) { instance_double('
|
|
136
|
+
let(:image) { instance_double('MiddlemanDato::FieldType::Image', format: format) }
|
|
137
137
|
let(:format) { 'png' }
|
|
138
138
|
let(:image_url) { '/path/to/image' }
|
|
139
139
|
|
|
@@ -160,7 +160,7 @@ module Dato
|
|
|
160
160
|
|
|
161
161
|
describe '#build_application_tags' do
|
|
162
162
|
let(:result) { meta_tag.build_application_tags }
|
|
163
|
-
let(:image) { instance_double('
|
|
163
|
+
let(:image) { instance_double('MiddlemanDato::FieldType::Image', format: format) }
|
|
164
164
|
let(:format) { 'png' }
|
|
165
165
|
let(:image_url) { '/path/to/image' }
|
|
166
166
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
require 'spec_helper'
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module MiddlemanDato
|
|
4
4
|
module MetaTags
|
|
5
5
|
RSpec.describe Image do
|
|
6
6
|
subject(:meta_tag) { described_class.new(builder, base_url, space, record) }
|
|
@@ -9,8 +9,8 @@ module Dato
|
|
|
9
9
|
let(:space) { nil }
|
|
10
10
|
let(:record) do
|
|
11
11
|
double(
|
|
12
|
-
'
|
|
13
|
-
fields: [double('
|
|
12
|
+
'MiddlemanDato::Record',
|
|
13
|
+
fields: [double('MiddlemanDato::JsonApiEntity', api_key: 'foo', field_type: 'image')],
|
|
14
14
|
foo: image,
|
|
15
15
|
singleton?: false
|
|
16
16
|
)
|
|
@@ -22,7 +22,7 @@ module Dato
|
|
|
22
22
|
|
|
23
23
|
let(:image) do
|
|
24
24
|
double(
|
|
25
|
-
'
|
|
25
|
+
'MiddlemanDato::JsonApiEntity',
|
|
26
26
|
width: 300,
|
|
27
27
|
height: 300,
|
|
28
28
|
file: double('File', format: double('Imgix', to_url: 'http://google.com'))
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
module
|
|
1
|
+
module MiddlemanDato
|
|
2
2
|
RSpec.describe Record do
|
|
3
3
|
subject(:record) { described_class.new(entity, repo) }
|
|
4
4
|
let(:entity) do
|
|
5
5
|
double(
|
|
6
|
-
'
|
|
6
|
+
'MiddlemanDato::JsonApiEntity(Record)',
|
|
7
7
|
id: '14',
|
|
8
8
|
content_type: content_type,
|
|
9
9
|
title: "My titlè with àccents",
|
|
@@ -13,11 +13,11 @@ module Dato
|
|
|
13
13
|
)
|
|
14
14
|
end
|
|
15
15
|
let(:repo) do
|
|
16
|
-
instance_double('
|
|
16
|
+
instance_double('MiddlemanDato::RecordsRepo')
|
|
17
17
|
end
|
|
18
18
|
let(:content_type) do
|
|
19
19
|
double(
|
|
20
|
-
'
|
|
20
|
+
'MiddlemanDato::JsonApiEntity(Content Type)',
|
|
21
21
|
singleton: is_singleton,
|
|
22
22
|
api_key: 'work_item',
|
|
23
23
|
fields: fields
|
|
@@ -27,7 +27,7 @@ module Dato
|
|
|
27
27
|
let(:fields) do
|
|
28
28
|
[
|
|
29
29
|
double(
|
|
30
|
-
'
|
|
30
|
+
'MiddlemanDato::JsonApiEntity(Field)',
|
|
31
31
|
position: 1,
|
|
32
32
|
api_key: 'title',
|
|
33
33
|
localized: false,
|
|
@@ -35,7 +35,7 @@ module Dato
|
|
|
35
35
|
appeareance: { type: 'title' }
|
|
36
36
|
),
|
|
37
37
|
double(
|
|
38
|
-
'
|
|
38
|
+
'MiddlemanDato::JsonApiEntity(Field)',
|
|
39
39
|
position: 1,
|
|
40
40
|
api_key: 'body',
|
|
41
41
|
localized: false,
|
|
@@ -101,7 +101,7 @@ module Dato
|
|
|
101
101
|
context 'localized field' do
|
|
102
102
|
let(:entity) do
|
|
103
103
|
double(
|
|
104
|
-
'
|
|
104
|
+
'MiddlemanDato::JsonApiEntity(Record)',
|
|
105
105
|
id: '14',
|
|
106
106
|
content_type: content_type,
|
|
107
107
|
title: { it: 'Foo', en: 'Bar' }
|
|
@@ -111,7 +111,7 @@ module Dato
|
|
|
111
111
|
let(:fields) do
|
|
112
112
|
[
|
|
113
113
|
double(
|
|
114
|
-
'
|
|
114
|
+
'MiddlemanDato::JsonApiEntity(Field)',
|
|
115
115
|
position: 1,
|
|
116
116
|
api_key: 'title',
|
|
117
117
|
localized: true,
|
|
@@ -148,7 +148,7 @@ module Dato
|
|
|
148
148
|
let(:fields) do
|
|
149
149
|
[
|
|
150
150
|
double(
|
|
151
|
-
'
|
|
151
|
+
'MiddlemanDato::JsonApiEntity(Field)',
|
|
152
152
|
position: 1,
|
|
153
153
|
api_key: 'title',
|
|
154
154
|
localized: true,
|
|
@@ -169,7 +169,7 @@ module Dato
|
|
|
169
169
|
subject(:another_record) { described_class.new(another_entity, repo) }
|
|
170
170
|
let(:another_entity) do
|
|
171
171
|
double(
|
|
172
|
-
'
|
|
172
|
+
'MiddlemanDato::JsonApiEntity(Record)',
|
|
173
173
|
id: '15'
|
|
174
174
|
)
|
|
175
175
|
end
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
require '
|
|
1
|
+
require 'middleman_dato/records_repo'
|
|
2
2
|
|
|
3
|
-
module
|
|
3
|
+
module MiddlemanDato
|
|
4
4
|
RSpec.describe RecordsRepo do
|
|
5
5
|
subject(:repo) { described_class.new(entities_repo) }
|
|
6
6
|
let(:entities_repo) do
|
|
7
|
-
instance_double('
|
|
7
|
+
instance_double('MiddlemanDato::EntitiesRepo')
|
|
8
8
|
end
|
|
9
9
|
let(:content_type) do
|
|
10
|
-
double('
|
|
10
|
+
double('MiddlemanDato::JsonApiEntity', api_key: 'post', singleton: false)
|
|
11
11
|
end
|
|
12
12
|
let(:singleton_content_type) do
|
|
13
|
-
double('
|
|
13
|
+
double('MiddlemanDato::JsonApiEntity', api_key: 'homepage', singleton: true)
|
|
14
14
|
end
|
|
15
15
|
let(:record_entity) do
|
|
16
|
-
double('
|
|
16
|
+
double('MiddlemanDato::JsonApiEntity', content_type: content_type)
|
|
17
17
|
end
|
|
18
18
|
let(:singleton_record_entity) do
|
|
19
|
-
double('
|
|
19
|
+
double('MiddlemanDato::JsonApiEntity', content_type: singleton_content_type)
|
|
20
20
|
end
|
|
21
21
|
let(:record) do
|
|
22
|
-
instance_double('
|
|
22
|
+
instance_double('MiddlemanDato::Record', id: '14')
|
|
23
23
|
end
|
|
24
24
|
let(:singleton_record) do
|
|
25
|
-
instance_double('
|
|
25
|
+
instance_double('MiddlemanDato::Record', id: '22')
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
before do
|
|
@@ -79,7 +79,7 @@ module Dato
|
|
|
79
79
|
[foo]
|
|
80
80
|
end
|
|
81
81
|
|
|
82
|
-
let(:foo) { double('
|
|
82
|
+
let(:foo) { double('MiddlemanDato::Record', id: '1', name: 'Foo') }
|
|
83
83
|
|
|
84
84
|
describe '#[]' do
|
|
85
85
|
it 'returns the record with the specified id or index' do
|
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.5.
|
|
4
|
+
version: 0.5.12
|
|
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-
|
|
11
|
+
date: 2016-06-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: middleman-core
|
|
@@ -106,61 +106,62 @@ files:
|
|
|
106
106
|
- ".rspec"
|
|
107
107
|
- ".rubocop.yml"
|
|
108
108
|
- Gemfile
|
|
109
|
+
- README.md
|
|
109
110
|
- Rakefile
|
|
110
|
-
- lib/dato/client.rb
|
|
111
|
-
- lib/dato/entities_repo.rb
|
|
112
|
-
- lib/dato/field_type/boolean.rb
|
|
113
|
-
- lib/dato/field_type/date.rb
|
|
114
|
-
- lib/dato/field_type/date_time.rb
|
|
115
|
-
- lib/dato/field_type/file.rb
|
|
116
|
-
- lib/dato/field_type/float.rb
|
|
117
|
-
- lib/dato/field_type/image.rb
|
|
118
|
-
- lib/dato/field_type/integer.rb
|
|
119
|
-
- lib/dato/field_type/lat_lon.rb
|
|
120
|
-
- lib/dato/field_type/link.rb
|
|
121
|
-
- lib/dato/field_type/links.rb
|
|
122
|
-
- lib/dato/field_type/seo.rb
|
|
123
|
-
- lib/dato/field_type/string.rb
|
|
124
|
-
- lib/dato/field_type/text.rb
|
|
125
|
-
- lib/dato/field_type/video.rb
|
|
126
|
-
- lib/dato/json_api_entity.rb
|
|
127
|
-
- lib/dato/meta_tags/article_modified_time.rb
|
|
128
|
-
- lib/dato/meta_tags/article_publisher.rb
|
|
129
|
-
- lib/dato/meta_tags/base.rb
|
|
130
|
-
- lib/dato/meta_tags/description.rb
|
|
131
|
-
- lib/dato/meta_tags/favicon.rb
|
|
132
|
-
- lib/dato/meta_tags/image.rb
|
|
133
|
-
- lib/dato/meta_tags/og_locale.rb
|
|
134
|
-
- lib/dato/meta_tags/og_meta_tag.rb
|
|
135
|
-
- lib/dato/meta_tags/og_site_name.rb
|
|
136
|
-
- lib/dato/meta_tags/og_type.rb
|
|
137
|
-
- lib/dato/meta_tags/robots.rb
|
|
138
|
-
- lib/dato/meta_tags/title.rb
|
|
139
|
-
- lib/dato/meta_tags/twitter_card.rb
|
|
140
|
-
- lib/dato/meta_tags/twitter_meta_tag.rb
|
|
141
|
-
- lib/dato/meta_tags/twitter_site.rb
|
|
142
|
-
- lib/dato/meta_tags/url.rb
|
|
143
|
-
- lib/dato/meta_tags_builder.rb
|
|
144
|
-
- lib/dato/middleman_extension.rb
|
|
145
|
-
- lib/dato/record.rb
|
|
146
|
-
- lib/dato/records_repo.rb
|
|
147
|
-
- lib/dato/space.rb
|
|
148
|
-
- lib/dato/version.rb
|
|
149
111
|
- lib/middleman-dato.rb
|
|
112
|
+
- lib/middleman_dato/client.rb
|
|
113
|
+
- lib/middleman_dato/entities_repo.rb
|
|
114
|
+
- lib/middleman_dato/field_type/boolean.rb
|
|
115
|
+
- lib/middleman_dato/field_type/date.rb
|
|
116
|
+
- lib/middleman_dato/field_type/date_time.rb
|
|
117
|
+
- lib/middleman_dato/field_type/file.rb
|
|
118
|
+
- lib/middleman_dato/field_type/float.rb
|
|
119
|
+
- lib/middleman_dato/field_type/image.rb
|
|
120
|
+
- lib/middleman_dato/field_type/integer.rb
|
|
121
|
+
- lib/middleman_dato/field_type/lat_lon.rb
|
|
122
|
+
- lib/middleman_dato/field_type/link.rb
|
|
123
|
+
- lib/middleman_dato/field_type/links.rb
|
|
124
|
+
- lib/middleman_dato/field_type/seo.rb
|
|
125
|
+
- lib/middleman_dato/field_type/string.rb
|
|
126
|
+
- lib/middleman_dato/field_type/text.rb
|
|
127
|
+
- lib/middleman_dato/field_type/video.rb
|
|
128
|
+
- lib/middleman_dato/json_api_entity.rb
|
|
129
|
+
- lib/middleman_dato/meta_tags/article_modified_time.rb
|
|
130
|
+
- lib/middleman_dato/meta_tags/article_publisher.rb
|
|
131
|
+
- lib/middleman_dato/meta_tags/base.rb
|
|
132
|
+
- lib/middleman_dato/meta_tags/description.rb
|
|
133
|
+
- lib/middleman_dato/meta_tags/favicon.rb
|
|
134
|
+
- lib/middleman_dato/meta_tags/image.rb
|
|
135
|
+
- lib/middleman_dato/meta_tags/og_locale.rb
|
|
136
|
+
- lib/middleman_dato/meta_tags/og_meta_tag.rb
|
|
137
|
+
- lib/middleman_dato/meta_tags/og_site_name.rb
|
|
138
|
+
- lib/middleman_dato/meta_tags/og_type.rb
|
|
139
|
+
- lib/middleman_dato/meta_tags/robots.rb
|
|
140
|
+
- lib/middleman_dato/meta_tags/title.rb
|
|
141
|
+
- lib/middleman_dato/meta_tags/twitter_card.rb
|
|
142
|
+
- lib/middleman_dato/meta_tags/twitter_meta_tag.rb
|
|
143
|
+
- lib/middleman_dato/meta_tags/twitter_site.rb
|
|
144
|
+
- lib/middleman_dato/meta_tags/url.rb
|
|
145
|
+
- lib/middleman_dato/meta_tags_builder.rb
|
|
146
|
+
- lib/middleman_dato/middleman_extension.rb
|
|
147
|
+
- lib/middleman_dato/record.rb
|
|
148
|
+
- lib/middleman_dato/records_repo.rb
|
|
149
|
+
- lib/middleman_dato/space.rb
|
|
150
|
+
- lib/middleman_dato/version.rb
|
|
150
151
|
- middleman-dato.gemspec
|
|
151
|
-
- spec/
|
|
152
|
-
- spec/
|
|
153
|
-
- spec/
|
|
154
|
-
- spec/
|
|
155
|
-
- spec/
|
|
156
|
-
- spec/
|
|
157
|
-
- spec/
|
|
158
|
-
- spec/
|
|
159
|
-
- spec/
|
|
160
|
-
- spec/
|
|
161
|
-
- spec/
|
|
162
|
-
- spec/
|
|
163
|
-
- spec/
|
|
152
|
+
- spec/middleman_dato/entities_repo_spec.rb
|
|
153
|
+
- spec/middleman_dato/field_type/file_spec.rb
|
|
154
|
+
- spec/middleman_dato/field_type/image_spec.rb
|
|
155
|
+
- spec/middleman_dato/field_type/lat_lon_spec.rb
|
|
156
|
+
- spec/middleman_dato/field_type/seo_spec.rb
|
|
157
|
+
- spec/middleman_dato/field_type/video_spec.rb
|
|
158
|
+
- spec/middleman_dato/json_api_entity_spec.rb
|
|
159
|
+
- spec/middleman_dato/meta_tags/article_modified_time_spec.rb
|
|
160
|
+
- spec/middleman_dato/meta_tags/favicon_spec.rb
|
|
161
|
+
- spec/middleman_dato/meta_tags/image_spec.rb
|
|
162
|
+
- spec/middleman_dato/meta_tags/og_locale_spec.rb
|
|
163
|
+
- spec/middleman_dato/record_spec.rb
|
|
164
|
+
- spec/middleman_dato/records_repo_spec.rb
|
|
164
165
|
- spec/spec_helper.rb
|
|
165
166
|
- spec/support/mock_builder.rb
|
|
166
167
|
homepage: http://cantierecreativo.net
|
|
@@ -187,19 +188,19 @@ signing_key:
|
|
|
187
188
|
specification_version: 4
|
|
188
189
|
summary: Fetches data from a Dato space
|
|
189
190
|
test_files:
|
|
190
|
-
- spec/
|
|
191
|
-
- spec/
|
|
192
|
-
- spec/
|
|
193
|
-
- spec/
|
|
194
|
-
- spec/
|
|
195
|
-
- spec/
|
|
196
|
-
- spec/
|
|
197
|
-
- spec/
|
|
198
|
-
- spec/
|
|
199
|
-
- spec/
|
|
200
|
-
- spec/
|
|
201
|
-
- spec/
|
|
202
|
-
- spec/
|
|
191
|
+
- spec/middleman_dato/entities_repo_spec.rb
|
|
192
|
+
- spec/middleman_dato/field_type/file_spec.rb
|
|
193
|
+
- spec/middleman_dato/field_type/image_spec.rb
|
|
194
|
+
- spec/middleman_dato/field_type/lat_lon_spec.rb
|
|
195
|
+
- spec/middleman_dato/field_type/seo_spec.rb
|
|
196
|
+
- spec/middleman_dato/field_type/video_spec.rb
|
|
197
|
+
- spec/middleman_dato/json_api_entity_spec.rb
|
|
198
|
+
- spec/middleman_dato/meta_tags/article_modified_time_spec.rb
|
|
199
|
+
- spec/middleman_dato/meta_tags/favicon_spec.rb
|
|
200
|
+
- spec/middleman_dato/meta_tags/image_spec.rb
|
|
201
|
+
- spec/middleman_dato/meta_tags/og_locale_spec.rb
|
|
202
|
+
- spec/middleman_dato/record_spec.rb
|
|
203
|
+
- spec/middleman_dato/records_repo_spec.rb
|
|
203
204
|
- spec/spec_helper.rb
|
|
204
205
|
- spec/support/mock_builder.rb
|
|
205
206
|
has_rdoc:
|
data/lib/dato/version.rb
DELETED