cmor_cms 0.0.59.pre → 0.0.60.pre
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 +4 -4
- data/app/resolvers/cmor/cms/database_resolver.rb +65 -27
- data/app/services/cmor/cms/add_homepages_service.rb +1 -0
- data/lib/generators/cmor/cms/install/install_generator.rb +14 -6
- data/lib/generators/cmor/cms/install/templates/routes.source +7 -0
- data/lib/generators/cmor/cms/install/templates/routes_without_root.source +14 -0
- data/lib/tasks/cmor_cms_tasks.rake +7 -2
- metadata +7 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bbc08f4ce3bcb2c2753ba1939cd871591a64716629711206892a911489bddf9e
|
4
|
+
data.tar.gz: 9c2b42cc5b4df4a2ccdb7ed61f5619c570091951f981586ec0a49c07787b01a5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1263916512e708c1897e1db50a83c4bea1dd34217852a1b3c13aa8dc1b559a9ea99a2ca3c0675aa573d82b085febe6486bae9198cd7e83f149c4d41663cf8089
|
7
|
+
data.tar.gz: 8e71a0b45c061464471062def6d22d2a950978c29127956fc49042c070e2842626d4925cf158b04a1255dba3a695d1abda1677c612c3594d0cb44b1c7c6fd6cb
|
@@ -11,40 +11,79 @@ module Cmor
|
|
11
11
|
end
|
12
12
|
|
13
13
|
# instance methods go here
|
14
|
-
|
15
|
-
|
14
|
+
if Rails.version < '6.0'
|
15
|
+
def find_templates(name, prefix, partial, details, outside_app_allowed = false)
|
16
|
+
return [] unless resolve(partial)
|
17
|
+
|
18
|
+
conditions = {
|
19
|
+
pathname: assert_slashs(prefix.to_s),
|
20
|
+
basename: normalize_basename(name),
|
21
|
+
locale: normalize_array(details[:locale]).first,
|
22
|
+
format: normalize_array(details[:formats]).first,
|
23
|
+
handler: normalize_array(details[:handlers])
|
24
|
+
}
|
25
|
+
|
26
|
+
format = conditions.delete(:format)
|
27
|
+
locale = conditions.delete(:locale)
|
28
|
+
|
29
|
+
query = template_class.constantize.where(conditions)
|
16
30
|
|
17
|
-
|
18
|
-
|
19
|
-
basename: normalize_basename(name),
|
20
|
-
locale: normalize_array(details[:locale]).first,
|
21
|
-
format: normalize_array(details[:formats]).first,
|
22
|
-
handler: normalize_array(details[:handlers])
|
23
|
-
}
|
31
|
+
# 1) Only include published templates
|
32
|
+
query = query.published
|
24
33
|
|
25
|
-
|
26
|
-
|
34
|
+
# 2) Check for templates with the given format or format is nil
|
35
|
+
query = query.where(["format = ? OR format = '' OR format IS NULL", format])
|
27
36
|
|
28
|
-
|
37
|
+
# 3) Ensure templates with format come first
|
38
|
+
query = query.order('format DESC')
|
29
39
|
|
30
|
-
|
31
|
-
|
40
|
+
# 4) Check for templates with the given locale or locale is nil
|
41
|
+
query = query.where(["locale = ? OR locale = '' OR locale IS NULL", locale])
|
32
42
|
|
33
|
-
|
34
|
-
|
43
|
+
# 5) Ensure templates with locale come first
|
44
|
+
query = query.order('locale DESC')
|
35
45
|
|
36
|
-
|
37
|
-
|
46
|
+
# 6) Now trigger the query passing on conditions to initialization
|
47
|
+
query.map do |record|
|
48
|
+
initialize_template(record, details)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
else
|
52
|
+
def find_templates(name, prefix, partial, details, locals)
|
53
|
+
return [] unless resolve(partial)
|
54
|
+
|
55
|
+
conditions = {
|
56
|
+
pathname: assert_slashs(prefix.to_s),
|
57
|
+
basename: normalize_basename(name),
|
58
|
+
locale: normalize_array(details[:locale]).first,
|
59
|
+
format: normalize_array(details[:formats]).first,
|
60
|
+
handler: normalize_array(details[:handlers])
|
61
|
+
}
|
38
62
|
|
39
|
-
|
40
|
-
|
63
|
+
format = conditions.delete(:format)
|
64
|
+
locale = conditions.delete(:locale)
|
41
65
|
|
42
|
-
|
43
|
-
query = query.order('locale DESC')
|
66
|
+
query = template_class.constantize.where(conditions)
|
44
67
|
|
45
|
-
|
46
|
-
|
47
|
-
|
68
|
+
# 1) Only include published templates
|
69
|
+
query = query.published
|
70
|
+
|
71
|
+
# 2) Check for templates with the given format or format is nil
|
72
|
+
query = query.where(["format = ? OR format = '' OR format IS NULL", format])
|
73
|
+
|
74
|
+
# 3) Ensure templates with format come first
|
75
|
+
query = query.order('format DESC')
|
76
|
+
|
77
|
+
# 4) Check for templates with the given locale or locale is nil
|
78
|
+
query = query.where(["locale = ? OR locale = '' OR locale IS NULL", locale])
|
79
|
+
|
80
|
+
# 5) Ensure templates with locale come first
|
81
|
+
query = query.order('locale DESC')
|
82
|
+
|
83
|
+
# 6) Now trigger the query passing on conditions to initialization
|
84
|
+
query.map do |record|
|
85
|
+
initialize_template(record, details, locals)
|
86
|
+
end
|
48
87
|
end
|
49
88
|
end
|
50
89
|
|
@@ -71,13 +110,12 @@ module Cmor
|
|
71
110
|
::ActionView::Template.new(source, identifier, handler, details)
|
72
111
|
end
|
73
112
|
else
|
74
|
-
def initialize_template(record, details)
|
113
|
+
def initialize_template(record, details, locals)
|
75
114
|
source = build_source(record)
|
76
115
|
identifier = "#{record.class} - #{record.id} - #{record.pathname}#{record.basename}"
|
77
116
|
handler = ::ActionView::Template.registered_template_handler(record.handler)
|
78
117
|
virtual_path = "#{record.pathname}#{record.basename}"
|
79
118
|
layout = record.layout if record.respond_to?(:layout) && record.layout.present?
|
80
|
-
locals = []
|
81
119
|
|
82
120
|
# 5) Check for the record.format, if none is given, try the template
|
83
121
|
# handler format and fallback to the one given on conditions
|
@@ -18,16 +18,24 @@ module Cmor
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def generate_routes
|
21
|
+
if Rails.application.routes.url_helpers.respond_to?(:root_path)
|
22
|
+
routes_source = 'routes_without_root.source'
|
23
|
+
else
|
24
|
+
routes_source = 'routes.source'
|
25
|
+
end
|
26
|
+
|
21
27
|
inject_into_file 'config/routes.rb', before: "\nend" do
|
22
|
-
File.read(File.join(File.expand_path('../templates', __FILE__),
|
28
|
+
File.read(File.join(File.expand_path('../templates', __FILE__), routes_source))
|
23
29
|
end
|
24
30
|
end
|
25
31
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
32
|
+
def add_homepages
|
33
|
+
begin
|
34
|
+
AddHomepagesService.call(locales: [I18n.locale])
|
35
|
+
rescue ActiveRecord::StatementInvalid => e
|
36
|
+
puts "[Cmor::Cms] Could not generate homepage: #{e.message}"
|
37
|
+
end
|
38
|
+
end
|
31
39
|
end
|
32
40
|
end
|
33
41
|
end
|
@@ -1,4 +1,11 @@
|
|
1
1
|
|
2
2
|
mount Cmor::Cms::Engine, at: '/' # This one is greedy and has to go last!
|
3
3
|
|
4
|
+
# Cmor::Cms adds a root route to redirect the root of your application
|
5
|
+
# to the default locale.
|
6
|
+
#
|
7
|
+
# For example if your default locale is en and you access www.example.com
|
8
|
+
# it redirects to www.example.com/en. At /en the request is handled by
|
9
|
+
# by Cmor::Cms.
|
10
|
+
#
|
4
11
|
root to: redirect("/#{I18n.locale}")
|
@@ -0,0 +1,14 @@
|
|
1
|
+
|
2
|
+
mount Cmor::Cms::Engine, at: '/' # This one is greedy and has to go last!
|
3
|
+
|
4
|
+
# Cmor::Cms adds a root route to redirect the root of your application
|
5
|
+
# to the default locale.
|
6
|
+
#
|
7
|
+
# For example if your default locale is en and you access www.example.com
|
8
|
+
# it redirects to www.example.com/en. At /en the request is handled by
|
9
|
+
# by Cmor::Cms.
|
10
|
+
#
|
11
|
+
# WARNING: As you already have a root route this default was not added.
|
12
|
+
# Please review your routing.
|
13
|
+
#
|
14
|
+
# root to: redirect("/#{I18n.locale}")
|
@@ -6,10 +6,15 @@ namespace :cmor do
|
|
6
6
|
Cmor::Cms::ImportPartialsService.call(args)
|
7
7
|
end
|
8
8
|
|
9
|
-
desc 'Adds homepages for all (or given) locales'
|
9
|
+
desc 'Adds homepages for all (or given) locales (Specify locales like this: rails cmor:cms:add_homepages["en de"])'
|
10
10
|
task :add_homepages, [:locales] => [:environment] do |_t, args|
|
11
11
|
args.with_defaults(locales: I18n.available_locales)
|
12
|
-
|
12
|
+
options = args.to_h
|
13
|
+
if options[:locales].is_a?(String)
|
14
|
+
options[:locales] = options[:locales].split.map(&:to_sym) & I18n.available_locales
|
15
|
+
end
|
16
|
+
|
17
|
+
Cmor::Cms::AddHomepagesService.call(options)
|
13
18
|
end
|
14
19
|
end
|
15
20
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cmor_cms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.60.pre
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roberto Vasquez Angel
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -30,28 +30,28 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.0.
|
33
|
+
version: 0.0.60.pre
|
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: 0.0.
|
40
|
+
version: 0.0.60.pre
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: cmor_core_frontend
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 0.0.
|
47
|
+
version: 0.0.60.pre
|
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: 0.0.
|
54
|
+
version: 0.0.60.pre
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: sqlite3
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -499,6 +499,7 @@ files:
|
|
499
499
|
- lib/generators/cmor/cms/install/install_generator.rb
|
500
500
|
- lib/generators/cmor/cms/install/templates/initializer.rb
|
501
501
|
- lib/generators/cmor/cms/install/templates/routes.source
|
502
|
+
- lib/generators/cmor/cms/install/templates/routes_without_root.source
|
502
503
|
- lib/tasks/cmor_cms_tasks.rake
|
503
504
|
- spec/factories/cmor/cms/content_block.rb
|
504
505
|
- spec/factories/cmor/cms/content_box.rb
|