renderful 0.2.0 → 0.3.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.
metadata CHANGED
@@ -1,65 +1,87 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: renderful
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alessandro Desantis
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-17 00:00:00.000000000 Z
11
+ date: 2020-04-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: contentful
14
+ name: appraisal
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '2.11'
20
- type: :runtime
19
+ version: '2.2'
20
+ type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '2.11'
26
+ version: '2.2'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rails
28
+ name: bundler
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 5.0.0
34
- - - "<"
33
+ version: '2.1'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
35
39
  - !ruby/object:Gem::Version
36
- version: '7'
37
- type: :runtime
40
+ version: '2.1'
41
+ - !ruby/object:Gem::Dependency
42
+ name: capybara
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '3.32'
48
+ type: :development
38
49
  prerelease: false
39
50
  version_requirements: !ruby/object:Gem::Requirement
40
51
  requirements:
41
- - - ">="
52
+ - - "~>"
42
53
  - !ruby/object:Gem::Version
43
- version: 5.0.0
44
- - - "<"
54
+ version: '3.32'
55
+ - !ruby/object:Gem::Dependency
56
+ name: combustion
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
45
60
  - !ruby/object:Gem::Version
46
- version: '7'
61
+ version: '1.1'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.1'
47
69
  - !ruby/object:Gem::Dependency
48
- name: appraisal
70
+ name: contentful
49
71
  requirement: !ruby/object:Gem::Requirement
50
72
  requirements:
51
73
  - - "~>"
52
74
  - !ruby/object:Gem::Version
53
- version: '2.2'
75
+ version: '2.11'
54
76
  type: :development
55
77
  prerelease: false
56
78
  version_requirements: !ruby/object:Gem::Requirement
57
79
  requirements:
58
80
  - - "~>"
59
81
  - !ruby/object:Gem::Version
60
- version: '2.2'
82
+ version: '2.11'
61
83
  - !ruby/object:Gem::Dependency
62
- name: bundler
84
+ name: gem-release
63
85
  requirement: !ruby/object:Gem::Requirement
64
86
  requirements:
65
87
  - - "~>"
@@ -73,19 +95,53 @@ dependencies:
73
95
  - !ruby/object:Gem::Version
74
96
  version: '2.1'
75
97
  - !ruby/object:Gem::Dependency
76
- name: combustion
98
+ name: github_changelog_generator
77
99
  requirement: !ruby/object:Gem::Requirement
78
100
  requirements:
79
101
  - - "~>"
80
102
  - !ruby/object:Gem::Version
81
- version: '1.1'
103
+ version: '1.15'
82
104
  type: :development
83
105
  prerelease: false
84
106
  version_requirements: !ruby/object:Gem::Requirement
85
107
  requirements:
86
108
  - - "~>"
87
109
  - !ruby/object:Gem::Version
88
- version: '1.1'
110
+ version: '1.15'
111
+ - !ruby/object:Gem::Dependency
112
+ name: prismic.io
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - "~>"
116
+ - !ruby/object:Gem::Version
117
+ version: '1.7'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: '1.7'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rails
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: 5.0.0
132
+ - - "<"
133
+ - !ruby/object:Gem::Version
134
+ version: '7'
135
+ type: :development
136
+ prerelease: false
137
+ version_requirements: !ruby/object:Gem::Requirement
138
+ requirements:
139
+ - - ">="
140
+ - !ruby/object:Gem::Version
141
+ version: 5.0.0
142
+ - - "<"
143
+ - !ruby/object:Gem::Version
144
+ version: '7'
89
145
  - !ruby/object:Gem::Dependency
90
146
  name: rake
91
147
  requirement: !ruby/object:Gem::Requirement
@@ -170,6 +226,48 @@ dependencies:
170
226
  - - "~>"
171
227
  - !ruby/object:Gem::Version
172
228
  version: '1.37'
229
+ - !ruby/object:Gem::Dependency
230
+ name: vcr
231
+ requirement: !ruby/object:Gem::Requirement
232
+ requirements:
233
+ - - "~>"
234
+ - !ruby/object:Gem::Version
235
+ version: '5.1'
236
+ type: :development
237
+ prerelease: false
238
+ version_requirements: !ruby/object:Gem::Requirement
239
+ requirements:
240
+ - - "~>"
241
+ - !ruby/object:Gem::Version
242
+ version: '5.1'
243
+ - !ruby/object:Gem::Dependency
244
+ name: view_component
245
+ requirement: !ruby/object:Gem::Requirement
246
+ requirements:
247
+ - - "~>"
248
+ - !ruby/object:Gem::Version
249
+ version: '2.2'
250
+ type: :development
251
+ prerelease: false
252
+ version_requirements: !ruby/object:Gem::Requirement
253
+ requirements:
254
+ - - "~>"
255
+ - !ruby/object:Gem::Version
256
+ version: '2.2'
257
+ - !ruby/object:Gem::Dependency
258
+ name: webmock
259
+ requirement: !ruby/object:Gem::Requirement
260
+ requirements:
261
+ - - "~>"
262
+ - !ruby/object:Gem::Version
263
+ version: '3.8'
264
+ type: :development
265
+ prerelease: false
266
+ version_requirements: !ruby/object:Gem::Requirement
267
+ requirements:
268
+ - - "~>"
269
+ - !ruby/object:Gem::Version
270
+ version: '3.8'
173
271
  description:
174
272
  email:
175
273
  - desa.alessandro@gmail.com
@@ -193,13 +291,18 @@ files:
193
291
  - gemfiles/rails_5_2.gemfile
194
292
  - gemfiles/rails_6_0.gemfile
195
293
  - lib/renderful.rb
196
- - lib/renderful/cache.rb
294
+ - lib/renderful/cache/base.rb
295
+ - lib/renderful/cache/null.rb
197
296
  - lib/renderful/cache/redis.rb
198
- - lib/renderful/cache_invalidator.rb
199
297
  - lib/renderful/client.rb
200
- - lib/renderful/no_renderer_error.rb
201
- - lib/renderful/renderer.rb
202
- - lib/renderful/renderer/rails.rb
298
+ - lib/renderful/component/base.rb
299
+ - lib/renderful/content_entry.rb
300
+ - lib/renderful/error/base.rb
301
+ - lib/renderful/error/entry_not_found_error.rb
302
+ - lib/renderful/error/no_component_error.rb
303
+ - lib/renderful/provider/base.rb
304
+ - lib/renderful/provider/contentful.rb
305
+ - lib/renderful/provider/prismic.rb
203
306
  - lib/renderful/version.rb
204
307
  - renderful.gemspec
205
308
  homepage: https://github.com/nebulab/renderful
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Renderful
4
- class Cache
5
- def exist?(_key)
6
- raise NotImplementedError
7
- end
8
-
9
- def read(_key)
10
- raise NotImplementedError
11
- end
12
-
13
- def write(_key, _value)
14
- raise NotImplementedError
15
- end
16
-
17
- def delete(_key)
18
- raise NotImplementedError
19
- end
20
- end
21
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Renderful
4
- class CacheInvalidator
5
- attr_reader :client
6
-
7
- def initialize(client)
8
- @client = client
9
- end
10
-
11
- def process_webhook(body)
12
- return unless client.cache
13
-
14
- params = body.is_a?(String) ? JSON.parse(body) : body
15
-
16
- client.cache.delete(client.cache_key_for(
17
- content_type_id: params['sys']['contentType']['sys']['id'],
18
- entry_id: params['sys']['id'],
19
- ))
20
-
21
- client.contentful.entries(links_to_entry: params['sys']['id']).each do |linking_entry|
22
- client.cache.delete(client.cache_key_for(linking_entry))
23
- end
24
- end
25
- end
26
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Renderful
4
- class NoRendererError < StandardError
5
- attr_reader :entry
6
-
7
- def initialize(entry, *args)
8
- @entry = entry
9
-
10
- super "Cannot find renderer for content type #{entry.content_type.id}", *args
11
- end
12
- end
13
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Renderful
4
- class Renderer
5
- attr_reader :entry, :client
6
-
7
- class << self
8
- def resolve(field)
9
- define_method(field) do
10
- resolve(entry.send(field))
11
- end
12
- end
13
- end
14
-
15
- def initialize(entry, client:)
16
- @entry = entry
17
- @client = client
18
- end
19
-
20
- def render
21
- raise NotImplementedError
22
- end
23
-
24
- private
25
-
26
- def resolve(reference)
27
- if reference.is_a?(Enumerable)
28
- reference.map(&method(:resolve))
29
- elsif reference.is_a?(Contentful::Link)
30
- reference.resolve(client.contentful)
31
- else
32
- reference
33
- end
34
- end
35
- end
36
- end
@@ -1,29 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Renderful
4
- class Renderer
5
- class Rails < Renderer
6
- def render
7
- renderer.render(partial: view, locals: locals.merge(default_locals))
8
- end
9
-
10
- private
11
-
12
- def renderer
13
- ActionController::Base.renderer
14
- end
15
-
16
- def locals
17
- {}
18
- end
19
-
20
- def view
21
- "renderful/#{entry.content_type.id.demodulize.underscore}"
22
- end
23
-
24
- def default_locals
25
- { entry: entry, client: client, renderer: self }
26
- end
27
- end
28
- end
29
- end