locomotivecms 3.3.0.rc1 → 3.3.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6fa0ccc8361eb063596917d328170297cafd835e
4
- data.tar.gz: a9bd9f70ef7a44687f0d42654e0672320a5df04c
3
+ metadata.gz: 0e9f4f8edfefcd83de371071e2fa02fd7d64e1b1
4
+ data.tar.gz: b8f8065113b1588275132a2dc46f7cf7bc878437
5
5
  SHA512:
6
- metadata.gz: 81743c70c111b18756bf436b795dbace81d7b8556c5aad17107bf112f06da723c5440bf8d3d21b36bd8566b5a98abc115dd474b8f527d6759e3e0170a0bb303b
7
- data.tar.gz: e5bb69b97e20cd06fcd02889d499514afab906d3752992959f3f273a620bc163045084330154ce068de9f52566342761e92a2f5e2587c4a3fd721186af283b40
6
+ metadata.gz: be0f754bc93350ecc01ab1bfdc312095b809a1ec02d9583c2c894165a213dc548c08fb5b23e07f6d095d8aef384112d528e3fc6a9cd38c3c328df957d27ce854
7
+ data.tar.gz: 1778764e6e160a64b4464afa58db5f93b97d2195d60c1af5b34ef67174a297b3809033d05e9ea71a0110037250196e7d2526309b2b3c93e35a641be34b592fc7
@@ -14,10 +14,18 @@ module Locomotive
14
14
 
15
15
  ## methods ##
16
16
 
17
+ # Change the content of the editable element if the value is a new version.
18
+ # This method has been overridden for 2 reasons:
19
+ # - we have to register the current locale (localized site)
20
+ # - the default_content attribute has to be turned off
21
+ #
22
+ # Called by:
23
+ # - the API: page with a YAML header defining the initial content for this editable element
24
+ # - the UI: if the content is the same as the default one or the previous one, don't do anything.
17
25
  def content=(value)
18
26
  return if value == self.content
19
27
  self.add_current_locale
20
- self.default_content = false unless self.new_record?
28
+ self.default_content = false
21
29
  super
22
30
  end
23
31
 
@@ -153,9 +153,19 @@ module Locomotive
153
153
 
154
154
  def add_or_modify_editable_element(page, attributes)
155
155
  if element = page.editable_elements.by_block_and_slug(attributes[:block], attributes[:slug]).first
156
+ # context: the editable element has been created from the page YAML header
157
+ existing_content = element._type.nil? && !element.content.blank?
158
+
156
159
  # FIXME: we don't want to deal here with the generic Locomotive::EditableElement class
157
160
  element = page.editable_elements.with_same_class!(element, "Locomotive::#{attributes[:type].to_s.classify}".constantize)
158
161
  element.attributes = attributes
162
+
163
+ # we know now this was an editable_text element. If it already had
164
+ # a content, then it shouldn't be flagged as default_content.
165
+ if element.respond_to?(:default_content?) && existing_content
166
+ element.default_content = false
167
+ end
168
+
159
169
  element
160
170
  else
161
171
  klass = "Locomotive::#{attributes[:type].to_s.classify}".constantize
@@ -34,7 +34,7 @@ module Locomotive
34
34
  def set_content_type_of_model(*args)
35
35
  content_type = file.content_type
36
36
 
37
- if content_type.blank? || content_type == 'application/octet-stream'
37
+ if content_type.blank? || ['application/octet-stream', 'text/x-csrc'].include?(content_type)
38
38
  content_type = File.mime_type?(original_filename)
39
39
  end
40
40
 
@@ -37,7 +37,8 @@ module Locomotive
37
37
  def marshal(response)
38
38
  code, headers, body = response
39
39
 
40
- _headers = headers.dup.reject! { |key, val| key =~ /[^0-9A-Z_]/ || !val.respond_to?(:to_str) }
40
+ # only keep string value headers
41
+ _headers = headers.reject { |key, val| !val.respond_to?(:to_str) }
41
42
 
42
43
  Marshal.dump([code, _headers, body])
43
44
  end
@@ -2,5 +2,5 @@
2
2
  # MAJOR.MINOR.PATCH format.
3
3
  # 1.0.0-alpha < 1.0.0-alpha.1 < 1.0.0-alpha.beta < 1.0.0-beta < 1.0.0-beta.2 < 1.0.0-beta.11 < 1.0.0-rc.1 < 1.0.0
4
4
  module Locomotive #:nodoc
5
- VERSION = '3.3.0.rc1'
5
+ VERSION = '3.3.0.rc2'
6
6
  end
@@ -8,7 +8,7 @@ describe Locomotive::Steam::Middlewares::Cache do
8
8
  let(:page) { instance_double('CachedPage', _id: '0042', cache_enabled: page_cache, redirect_url: nil) }
9
9
  let(:app) { ->(env) { [200, env, 'app'] } }
10
10
  let(:middleware) { described_class.new(app) }
11
- let(:steam_env) { { 'REQUEST_METHOD' => 'GET', 'steam.site' => site, 'steam.page' => page, 'steam.live_editing' => false, 'PATH_INFO' => 'foo', 'QUERY_STRING' => 'a=1&c=3' } }
11
+ let(:steam_env) { { 'Content-Type' => 'text/html', 'REQUEST_METHOD' => 'GET', 'steam.site' => site, 'steam.page' => page, 'steam.live_editing' => false, 'PATH_INFO' => 'foo', 'QUERY_STRING' => 'a=1&c=3' } }
12
12
 
13
13
  describe '#call' do
14
14
 
@@ -29,6 +29,7 @@ describe Locomotive::Steam::Middlewares::Cache do
29
29
  middleware.call(env_for('foo', steam_env)) # warm up the cache
30
30
  expect(middleware.app).not_to receive(:call)
31
31
  expect(subject.first).to eq 200
32
+ expect(subject[1]['Content-Type']).to eq 'text/html'
32
33
  end
33
34
 
34
35
  end
@@ -39,7 +40,7 @@ describe Locomotive::Steam::Middlewares::Cache do
39
40
 
40
41
  subject { middleware.send(:cache_key, steam_env) }
41
42
 
42
- it { expect(subject).to eq '93a2150e6ee016394b95f1a6944c1f69' }
43
+ it { expect(subject).to eq '6f10bd02e43a99e1bef1223da0e266ec' }
43
44
 
44
45
  end
45
46
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: locomotivecms
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.3.0.rc1
4
+ version: 3.3.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Didier Lafforgue
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-10 00:00:00.000000000 Z
11
+ date: 2017-03-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake