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