middleman-headless 0.4.1 → 0.5.0

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: 3511cd0a8e7eaeb9ae1f43f98724fb79cd3974bd
4
- data.tar.gz: a70dfec8c556aa76b3d1ebb843f6bbcfe1c4ea00
3
+ metadata.gz: 4a313f95df220ded23eaf7b53d45fe4f7b9a5db3
4
+ data.tar.gz: 113bb0e0c349221122bed050bb67a4061a91988b
5
5
  SHA512:
6
- metadata.gz: 030def5dcf075c2efb10310dfe732dae03a9f964c10f5945efb949651f6778e62ea794bc60a2142f8f24ca595b3207e14f5198861918dce41dccc4d84cdf9884
7
- data.tar.gz: 828711ce679cbae8c4c6dba0be0a5becee44e476654ea4ed8a6054f78e1167f1fb239679ca3af4526cd73b72b443b489121e4494ebafd09bc42137a971d89286
6
+ metadata.gz: d0fd6bb4f7d1c5eecd69cab8bddb918b8529042d8c451e88c15fd218b49b68321795dbe7a646e2d8d295a3fd2d5e6d41a65d9698f7c2137845a72c4340d00d2d
7
+ data.tar.gz: e4aed804224f0e4510811606e2f53df6b29fe346d82a0085ce7af00810ba15edaaa7d244fd07ceff4b2fdca560b9e344f22445c8578cfcef067495c4ee730024
data/.ruby-version ADDED
@@ -0,0 +1 @@
1
+ 2.4.2
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ ruby '2.4.2'
4
+
3
5
  gemspec
data/README.md CHANGED
@@ -13,7 +13,7 @@ After that you need to create the following content types:
13
13
  ```
14
14
  post:
15
15
  title: string
16
- body: string (multiline)
16
+ body: document
17
17
  image: asset
18
18
  author: reference (author)
19
19
 
data/example/Gemfile.lock CHANGED
@@ -1,71 +1,69 @@
1
1
  PATH
2
- remote: ../
2
+ remote: ..
3
3
  specs:
4
4
  middleman-headless (0.4.1)
5
5
  middleman-core (~> 4.1)
6
6
  mime-types (~> 3.1)
7
+ nokogiri (~> 1.10)
7
8
  oauth2 (~> 1.4)
8
9
 
9
10
  GEM
10
11
  remote: https://rubygems.org/
11
12
  specs:
12
- activesupport (5.0.6)
13
+ activesupport (5.0.7.1)
13
14
  concurrent-ruby (~> 1.0, >= 1.0.2)
14
- i18n (~> 0.7)
15
+ i18n (>= 0.7, < 2)
15
16
  minitest (~> 5.1)
16
17
  tzinfo (~> 1.1)
17
- addressable (2.5.2)
18
+ addressable (2.6.0)
18
19
  public_suffix (>= 2.0.2, < 4.0)
19
- backports (3.10.3)
20
+ backports (3.12.0)
20
21
  coffee-script (2.4.1)
21
22
  coffee-script-source
22
23
  execjs
23
24
  coffee-script-source (1.12.2)
24
- compass-import-once (1.0.5)
25
- sass (>= 3.2, < 3.5)
26
- concurrent-ruby (1.0.5)
25
+ concurrent-ruby (1.1.4)
27
26
  contracts (0.13.0)
28
- dotenv (2.2.1)
27
+ dotenv (2.7.1)
29
28
  em-websocket (0.5.1)
30
29
  eventmachine (>= 0.12.9)
31
30
  http_parser.rb (~> 0.6.0)
32
31
  erubis (2.7.0)
33
- eventmachine (1.2.5)
32
+ eventmachine (1.2.7)
34
33
  execjs (2.7.0)
35
- faraday (0.12.2)
34
+ faraday (0.15.4)
36
35
  multipart-post (>= 1.2, < 3)
37
36
  fast_blank (1.0.0)
38
- fastimage (2.1.0)
39
- ffi (1.9.18)
37
+ fastimage (2.1.5)
38
+ ffi (1.10.0)
40
39
  haml (5.0.4)
41
40
  temple (>= 0.8.0)
42
41
  tilt
43
42
  hamster (3.0.0)
44
43
  concurrent-ruby (~> 1.0)
45
- hashie (3.5.6)
44
+ hashie (3.6.0)
46
45
  http_parser.rb (0.6.0)
47
- i18n (0.7.0)
48
- jwt (1.5.6)
49
- kramdown (1.15.0)
46
+ i18n (0.9.5)
47
+ concurrent-ruby (~> 1.0)
48
+ jwt (2.1.0)
49
+ kramdown (1.17.0)
50
50
  listen (3.0.8)
51
51
  rb-fsevent (~> 0.9, >= 0.9.4)
52
52
  rb-inotify (~> 0.9, >= 0.9.7)
53
53
  memoist (0.16.0)
54
- middleman (4.2.1)
54
+ middleman (4.3.3)
55
55
  coffee-script (~> 2.2)
56
- compass-import-once (= 1.0.5)
57
56
  haml (>= 4.0.5)
58
57
  kramdown (~> 1.2)
59
- middleman-cli (= 4.2.1)
60
- middleman-core (= 4.2.1)
61
- sass (>= 3.4.0, < 4.0)
62
- middleman-cli (4.2.1)
58
+ middleman-cli (= 4.3.3)
59
+ middleman-core (= 4.3.3)
60
+ middleman-cli (4.3.3)
63
61
  thor (>= 0.17.0, < 2.0)
64
- middleman-core (4.2.1)
62
+ middleman-core (4.3.3)
65
63
  activesupport (>= 4.2, < 5.1)
66
64
  addressable (~> 2.3)
67
65
  backports (~> 3.6)
68
- bundler (~> 1.1)
66
+ bundler
69
67
  contracts (~> 0.13.0)
70
68
  dotenv
71
69
  erubis
@@ -74,30 +72,33 @@ GEM
74
72
  fastimage (~> 2.0)
75
73
  hamster (~> 3.0)
76
74
  hashie (~> 3.4)
77
- i18n (~> 0.7.0)
75
+ i18n (~> 0.9.0)
78
76
  listen (~> 3.0.0)
79
77
  memoist (~> 0.14)
80
78
  padrino-helpers (~> 0.13.0)
81
79
  parallel
82
80
  rack (>= 1.4.5, < 3)
83
- sass (>= 3.4)
81
+ sassc (~> 2.0)
84
82
  servolux
85
- tilt (~> 2.0)
83
+ tilt (~> 2.0.9)
86
84
  uglifier (~> 3.0)
87
85
  middleman-livereload (3.4.6)
88
86
  em-websocket (~> 0.5.1)
89
87
  middleman-core (>= 3.3)
90
88
  rack-livereload (~> 0.3.15)
91
- mime-types (3.1)
89
+ mime-types (3.2.2)
92
90
  mime-types-data (~> 3.2015)
93
- mime-types-data (3.2016.0521)
94
- minitest (5.10.3)
95
- multi_json (1.12.2)
91
+ mime-types-data (3.2018.0812)
92
+ mini_portile2 (2.4.0)
93
+ minitest (5.11.3)
94
+ multi_json (1.13.1)
96
95
  multi_xml (0.6.0)
97
96
  multipart-post (2.0.0)
98
- oauth2 (1.4.0)
99
- faraday (>= 0.8, < 0.13)
100
- jwt (~> 1.0)
97
+ nokogiri (1.10.1)
98
+ mini_portile2 (~> 2.4.0)
99
+ oauth2 (1.4.1)
100
+ faraday (>= 0.8, < 0.16.0)
101
+ jwt (>= 1.0, < 3.0)
101
102
  multi_json (~> 1.3)
102
103
  multi_xml (~> 0.5)
103
104
  rack (>= 1.2, < 3)
@@ -107,21 +108,24 @@ GEM
107
108
  tilt (>= 1.4.1, < 3)
108
109
  padrino-support (0.13.3.4)
109
110
  activesupport (>= 3.1)
110
- parallel (1.12.0)
111
- public_suffix (3.0.0)
112
- rack (2.0.3)
113
- rack-livereload (0.3.16)
111
+ parallel (1.14.0)
112
+ public_suffix (3.0.3)
113
+ rack (2.0.6)
114
+ rack-livereload (0.3.17)
114
115
  rack
115
- rb-fsevent (0.10.2)
116
- rb-inotify (0.9.10)
117
- ffi (>= 0.5.0, < 2)
118
- sass (3.4.25)
116
+ rake (12.3.2)
117
+ rb-fsevent (0.10.3)
118
+ rb-inotify (0.10.0)
119
+ ffi (~> 1.0)
120
+ sassc (2.0.1)
121
+ ffi (~> 1.9)
122
+ rake
119
123
  servolux (0.13.0)
120
- temple (0.8.0)
121
- thor (0.20.0)
124
+ temple (0.8.1)
125
+ thor (0.20.3)
122
126
  thread_safe (0.3.6)
123
- tilt (2.0.8)
124
- tzinfo (1.2.3)
127
+ tilt (2.0.9)
128
+ tzinfo (1.2.5)
125
129
  thread_safe (~> 0.1)
126
130
  uglifier (3.2.0)
127
131
  execjs (>= 0.3.0, < 3)
@@ -135,4 +139,4 @@ DEPENDENCIES
135
139
  middleman-livereload
136
140
 
137
141
  BUNDLED WITH
138
- 1.13.6
142
+ 2.0.1
data/example/config.rb CHANGED
@@ -1,9 +1,8 @@
1
1
  activate :headless,
2
- address: 'http://0.0.0.0:4000',
3
- app_key: '4cb0c70e-734c-487e-85a8-e85fc65bafe2',
4
- app_secret: '171445d9-020d-42c4-8513-b8674203eeaf',
5
- space: 'example',
6
- download_assets: true
2
+ address: 'http://0.0.0.0:8000',
3
+ app_key: '4b64998c-da49-4c5c-baf0-dd039f2d501d',
4
+ app_secret: '133560ba-7393-4fd4-815e-3b5ac03346a9',
5
+ space: 'example'
7
6
 
8
7
  configure :development do
9
8
  activate :livereload
@@ -18,9 +18,9 @@
18
18
 
19
19
  <% headless.posts.each do |post| %>
20
20
  <h2><%= post.title %></h2>
21
- <p><%= image_tag post.asset(:image).url(width: 400), alt: post.asset(:image).name %></p>
22
- <p><%= post.body %></p>
23
- <p>Written by <%= post.reference(:author).name %></p>
21
+ <p><%= image_tag post.asset(:image)&.url(width: 400), alt: post.asset(:image)&.name %></p>
22
+ <p><%= post.render(:body, 400) %></p>
23
+ <p>Written by <%= post.reference(:author)&.name %></p>
24
24
  <% end %>
25
25
 
26
26
  </body>
@@ -32,7 +32,7 @@ module MiddlemanHeadless
32
32
 
33
33
  def entries(content_type)
34
34
  content_type = content_type[:slug] if content_type.is_a?(Hash)
35
- path = "entries/#{@options.space}/#{content_type}"
35
+ path = "entries/#{@options.space}/#{content_type}?render-documents=true"
36
36
  @entries_cache[content_type.to_sym] ||= get(path).map do |item|
37
37
  Entry.new(item.with_indifferent_access, self)
38
38
  end
@@ -112,40 +112,27 @@ module MiddlemanHeadless
112
112
  end
113
113
 
114
114
  def field(key)
115
- v = version(I18n.locale)
116
- return nil if v.nil?
117
- v.field(key)
115
+ version(I18n.locale)&.field(key)
118
116
  end
119
117
 
120
118
  def asset(key)
121
- @interface.asset(field(key))
119
+ version(I18n.locale)&.asset(key)
122
120
  end
123
121
 
124
122
  def assets(key)
125
- assets = field(key)
126
- return [] if assets.nil?
127
-
128
- assets.map do |value|
129
- @interface.asset(value)
130
- end
123
+ version(I18n.locale)&.assets(key)
131
124
  end
132
125
 
133
126
  def reference(key, type=nil)
134
- type = key if type.nil?
135
- ref = field(key)
136
- return nil if ref.nil?
137
-
138
- Reference.new(type, ref, @interface)
127
+ version(I18n.locale)&.reference(key, type)
139
128
  end
140
129
 
141
130
  def references(key, type=nil)
142
- type = key if type.nil?
143
- refs = field(key)
144
- return [] if refs.nil?
131
+ version(I18n.locale)&.references(key, type)
132
+ end
145
133
 
146
- refs.map do |value|
147
- Reference.new(type, value, @interface)
148
- end
134
+ def render(key, width)
135
+ version(I18n.locale)&.render(key, width)
149
136
  end
150
137
 
151
138
  def method_missing(key)
@@ -171,6 +158,50 @@ module MiddlemanHeadless
171
158
  @data[:published_at]
172
159
  end
173
160
 
161
+ def asset(key)
162
+ @interface.asset(field(key))
163
+ end
164
+
165
+ def assets(key)
166
+ assets = field(key)
167
+ return [] if assets.nil?
168
+
169
+ assets.map do |value|
170
+ @interface.asset(value)
171
+ end
172
+ end
173
+
174
+ def reference(key, type=nil)
175
+ type = key if type.nil?
176
+ ref = field(key)
177
+ return nil if ref.nil?
178
+
179
+ Reference.new(type, ref, @interface)
180
+ end
181
+
182
+ def references(key, type=nil)
183
+ type = key if type.nil?
184
+ refs = field(key)
185
+ return [] if refs.nil?
186
+
187
+ refs.map do |value|
188
+ Reference.new(type, value, @interface)
189
+ end
190
+ end
191
+
192
+ def render(key, width)
193
+ doc = field(key)
194
+ return '' if doc.nil?
195
+
196
+ html = Nokogiri::HTML::DocumentFragment.parse(doc)
197
+
198
+ html.css('img').each do |img|
199
+ img['src'] += "?width=#{width}"
200
+ end
201
+
202
+ html.to_html
203
+ end
204
+
174
205
  def method_missing(key)
175
206
  field(key)
176
207
  end
@@ -223,9 +254,7 @@ module MiddlemanHeadless
223
254
  end
224
255
 
225
256
  def method_missing(*args)
226
- e = entry
227
- return nil if e.nil?
228
- entry.send(*args)
257
+ entry&.send(*args)
229
258
  end
230
259
  end
231
260
  end
@@ -1,15 +1,14 @@
1
- # -*- encoding: utf-8 -*-
2
- $:.push File.expand_path('../lib', __FILE__)
1
+ $LOAD_PATH.push File.expand_path('../lib', __FILE__)
3
2
 
4
3
  Gem::Specification.new do |s|
5
4
  s.name = 'middleman-headless'
6
- s.version = '0.4.1'
5
+ s.version = '0.5.0'
7
6
  s.licenses = ['MIT']
8
7
  s.platform = Gem::Platform::RUBY
9
8
  s.authors = ['Joël Gähwiler']
10
9
  s.email = ['joel@twomanyprojects.com']
11
10
  s.homepage = 'https://github.com/twomanyprojects/middleman-headless'
12
- s.summary = %q{Middleman extension to load content from the Headless Content Management System.}
11
+ s.summary = 'Middleman extension to load content from the Headless CMS.'
13
12
 
14
13
  s.files = `git ls-files`.split("\n")
15
14
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
@@ -17,6 +16,7 @@ Gem::Specification.new do |s|
17
16
  s.require_paths = ['lib']
18
17
 
19
18
  s.add_runtime_dependency('middleman-core', ['~> 4.1'])
20
- s.add_runtime_dependency('oauth2', ['~> 1.4'])
21
19
  s.add_runtime_dependency('mime-types', ['~> 3.1'])
20
+ s.add_runtime_dependency('nokogiri', ['~> 1.10'])
21
+ s.add_runtime_dependency('oauth2', ['~> 1.4'])
22
22
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-headless
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joël Gähwiler
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-23 00:00:00.000000000 Z
11
+ date: 2019-03-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: middleman-core
@@ -25,33 +25,47 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4.1'
27
27
  - !ruby/object:Gem::Dependency
28
- name: oauth2
28
+ name: mime-types
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '1.4'
33
+ version: '3.1'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '1.4'
40
+ version: '3.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: mime-types
42
+ name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.1'
47
+ version: '1.10'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '3.1'
54
+ version: '1.10'
55
+ - !ruby/object:Gem::Dependency
56
+ name: oauth2
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.4'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.4'
55
69
  description:
56
70
  email:
57
71
  - joel@twomanyprojects.com
@@ -60,6 +74,7 @@ extensions: []
60
74
  extra_rdoc_files: []
61
75
  files:
62
76
  - ".gitignore"
77
+ - ".ruby-version"
63
78
  - Gemfile
64
79
  - LICENSE.md
65
80
  - README.md
@@ -91,9 +106,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
106
  version: '0'
92
107
  requirements: []
93
108
  rubyforge_project:
94
- rubygems_version: 2.5.2
109
+ rubygems_version: 2.6.13
95
110
  signing_key:
96
111
  specification_version: 4
97
- summary: Middleman extension to load content from the Headless Content Management
98
- System.
112
+ summary: Middleman extension to load content from the Headless CMS.
99
113
  test_files: []