editmode 1.1.9 → 1.2.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
  SHA256:
3
- metadata.gz: fbdfaaca69c2832debd4fb728c6684b48abe8e9337cbaa8f4323a20cf175cf77
4
- data.tar.gz: 51841cadd3a89aea58a0089b9e7c541a286f9da46fa2d7db0f32e9d7a07797ed
3
+ metadata.gz: c56cee03d73400139003e5a7b643e5ba0cc87827dd8373f973e4e5bbbf41e234
4
+ data.tar.gz: 5cc247b0737cf3a34a7b7507895ff5b6b67d14363bd4ef328ab0630155ac8cd2
5
5
  SHA512:
6
- metadata.gz: 9966ac6b514c9c237db8e2e1f77613431a365f2c4259565422892b9abdd749a2c294575bfd0e1242d9ac682a5340b940bacde295560fa1845e93ddd03ef500f1
7
- data.tar.gz: fee7262f68522bb8e4f76d0de9f9da8c267c2a311105e89c72d7989408d46f124f6bbbf4170d712c0544aa4453b17f2837525c93f47da9afae2a729a0a2c47a5
6
+ metadata.gz: 909f2860b00987679e572d4c7c3202fe208fc7cc99ae75df7b698e5371b97f90861f65598193a0882fd924ec653978c0547d57bdc66ec2ad76651b6d1358aff1
7
+ data.tar.gz: 6ccc29e44f1cd14ad281c182a78904f74a199b1b9fc22fe5cf7757753b24b3ac5eeb9a0db2098e34662b0e1448a49831e9bc99db7f78ff931485ae64cded024b
data/README.md CHANGED
@@ -47,6 +47,7 @@ Editmode provides helper methods for use in your rails views and controllers.
47
47
  ```erb
48
48
  <%= E('cnk_x4ts............') %> # Using a chunk identifier
49
49
  <%= E('marketing_page_headline') %> # Using a content key
50
+ <%= E('cnk_x4ts...', class: "a-css-class") %> # Render a chunk with inline css class
50
51
  ```
51
52
 
52
53
  ### Content can also be accessed in Controllers
@@ -79,15 +80,13 @@ e("cnk_16e04a02d577afb610ce", "Email Content", variables: variable_values)
79
80
 
80
81
  ### Use collections for repeatable content
81
82
  ```erb
82
- <%= c('col_j8fbs...') do |chunk| %>
83
- <div class="user-profile">
84
- <h3 class="name">
85
- <%= F("Name") %>
86
- </h3>
87
- <p class="description">
88
- <%= f("Description") %>
89
- </p>
90
- </div>
83
+ <%= c('col_j8fbs...', class: "profiles-container", item_class: "profile-item") do %>
84
+ <h3 class="name">
85
+ <%= F("Name", class: "profile-name") %>
86
+ </h3>
87
+ <p class="description">
88
+ <%= f("Description"), class: "profile-description" %>
89
+ </p>
91
90
  <% end %>
92
91
  ```
93
92
 
@@ -13,8 +13,7 @@ class EditmodeController < ApplicationController
13
13
  Rails.cache.delete("chunk_#{project_id}_variables")
14
14
  render status: 200, json: {:response => "success"}
15
15
  elsif params[:identifier]
16
- Rails.cache.delete("chunk_#{params[:identifier]}")
17
- Rails.cache.delete("chunk_#{params[:identifier]}_type")
16
+ Rails.cache.delete_matched("#{params[:identifier]}")
18
17
  render status: 200, json: {:response => "success"}
19
18
  else
20
19
  render status: 404, json: {:response => "no identifier specified"}
@@ -113,6 +113,7 @@ module Editmode
113
113
  chunk_content = variable_parse!(chunk_content, options[:variable_fallbacks], options[:variable_values])
114
114
 
115
115
  css_class = options[:class]
116
+ cache_id = options[:cache_identifier]
116
117
 
117
118
  if chunk_type == "image"
118
119
  display_type = "image"
@@ -124,6 +125,7 @@ module Editmode
124
125
 
125
126
  chunk_data.merge!({parent_identifier: options[:parent_identifier]}) if options[:parent_identifier].present?
126
127
  chunk_data.merge!({custom_field_identifier: options[:custom_field_identifier]}) if options[:custom_field_identifier].present?
128
+ chunk_data.merge!({chunk_cache_id: cache_id}) if cache_id.present?
127
129
 
128
130
  case display_type
129
131
  when "span"
@@ -159,7 +161,8 @@ module Editmode
159
161
  cache_identifier = "chunk_#{identifier}#{branch_id}#{field}"
160
162
  url = "#{api_root_url}/chunks/#{identifier}?project_id=#{Editmode.project_id}&#{branch_params}"
161
163
  cached_content_present = Rails.cache.exist?(cache_identifier)
162
-
164
+ parent_identifier = identifier if field.present?
165
+
163
166
  if !cached_content_present
164
167
  response = HTTParty.get(url)
165
168
  response_received = true if response.code == 200
@@ -173,7 +176,9 @@ module Editmode
173
176
  if field_content
174
177
  content = field_content["content"]
175
178
  type = field_content["chunk_type"]
176
- identifier = field_content["identifier"]
179
+ identifier = Rails.cache.fetch("#{cache_identifier}_field_identifier") do
180
+ field_content["identifier"]
181
+ end
177
182
  end
178
183
  end
179
184
 
@@ -189,11 +194,16 @@ module Editmode
189
194
  type.presence || response['chunk_type']
190
195
  end
191
196
 
197
+ identifier = Rails.cache.fetch("#{cache_identifier}_field_identifier") do
198
+ identifier
199
+ end
200
+
192
201
  options[:variable_fallbacks] = variable_fallbacks
193
202
  options[:variable_values] = options[:variables].presence || {}
194
203
 
204
+ options[:cache_identifier] = parent_identifier.presence || identifier
205
+
195
206
  render_chunk_content(identifier,chunk_content,chunk_type, options)
196
-
197
207
  end
198
208
 
199
209
  rescue => error
@@ -15,7 +15,7 @@ module Editmode
15
15
  get_content
16
16
  end
17
17
 
18
- def field(field = nil)
18
+ def field(field = nil)
19
19
  # Field ID can be a slug or field_name
20
20
  if chunk_type == 'collection_item'
21
21
  if field.present?
@@ -75,7 +75,7 @@ module Editmode
75
75
  @content = response['content']
76
76
  @chunk_type = response['chunk_type']
77
77
  @project_id = response['project_id']
78
- @variable_fallbacks = response['variable_fallbacks']
78
+ @variable_fallbacks = response['variable_fallbacks'].presence || {}
79
79
  end
80
80
  end
81
81
 
@@ -5,7 +5,7 @@ module Editmode
5
5
  field, options = parse_arguments(args)
6
6
  begin
7
7
  chunk = Editmode::ChunkValue.new(identifier, options)
8
-
8
+
9
9
  if chunk.chunk_type == 'collection_item'
10
10
  chunk.field(field)
11
11
  else
@@ -1,3 +1,3 @@
1
1
  module Editmode
2
- VERSION = "1.1.9"
2
+ VERSION = "1.2.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: editmode
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.9
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tony Ennis
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-07 00:00:00.000000000 Z
11
+ date: 2020-10-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler