trusty-cms 4.1.2 → 4.1.3
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/Gemfile +2 -2
- data/Gemfile.lock +25 -25
- data/Rakefile +7 -7
- data/app/assets/stylesheets/admin/partials/_content.scss +1 -2
- data/app/controllers/admin/assets_controller.rb +22 -21
- data/app/controllers/admin/configuration_controller.rb +9 -11
- data/app/controllers/admin/extensions_controller.rb +3 -3
- data/app/controllers/admin/layouts_controller.rb +3 -4
- data/app/controllers/admin/page_attachments_controller.rb +5 -5
- data/app/controllers/admin/page_fields_controller.rb +3 -4
- data/app/controllers/admin/page_parts_controller.rb +4 -5
- data/app/controllers/admin/pages_controller.rb +55 -56
- data/app/controllers/admin/references_controller.rb +1 -1
- data/app/controllers/admin/resource_controller.rb +132 -130
- data/app/controllers/admin/sites_controller.rb +4 -4
- data/app/controllers/admin/snippets_controller.rb +3 -4
- data/app/controllers/admin/users_controller.rb +16 -16
- data/app/controllers/application_controller.rb +47 -48
- data/app/controllers/site_controller.rb +51 -48
- data/app/controllers/social_mailer_controller.rb +13 -16
- data/app/helpers/admin/configuration_helper.rb +19 -20
- data/app/helpers/admin/layouts_helper.rb +0 -1
- data/app/helpers/admin/node_helper.rb +27 -24
- data/app/helpers/admin/pages_helper.rb +2 -2
- data/app/helpers/admin/preferences_helper.rb +0 -1
- data/app/helpers/admin/references_helper.rb +9 -10
- data/app/helpers/admin/regions_helper.rb +3 -3
- data/app/helpers/application_helper.rb +32 -33
- data/app/helpers/rad_social_helper.rb +8 -11
- data/app/helpers/scoped_helper.rb +1 -3
- data/app/helpers/sites_helper.rb +4 -4
- data/app/mailers/devise_mailer.rb +3 -4
- data/app/mailers/rad_social_mailer.rb +8 -8
- data/app/models/asset.rb +62 -63
- data/app/models/asset_type.rb +38 -39
- data/app/models/deprecated_tags.rb +3 -4
- data/app/models/file_not_found_page.rb +1 -3
- data/app/models/haml_filter.rb +1 -1
- data/app/models/layout.rb +4 -5
- data/app/models/legacy_user.rb +2 -2
- data/app/models/menu_renderer.rb +16 -18
- data/app/models/page.rb +96 -93
- data/app/models/page_attachment.rb +1 -2
- data/app/models/page_context.rb +11 -12
- data/app/models/page_part.rb +3 -4
- data/app/models/rails_page.rb +10 -12
- data/app/models/site.rb +22 -21
- data/app/models/snippet.rb +6 -8
- data/app/models/snippet_finder.rb +3 -3
- data/app/models/snippet_tags.rb +4 -4
- data/app/models/standard_tags.rb +258 -252
- data/app/models/status.rb +8 -8
- data/app/models/trusty_cms/config.rb +25 -25
- data/app/models/trusty_cms/page_response_cache_director.rb +2 -3
- data/app/models/user.rb +15 -14
- data/app/models/user_action_observer.rb +3 -3
- data/bin/rails +4 -4
- data/bin/trusty_cms +3 -5
- data/config.ru +1 -1
- data/config/application.rb +14 -15
- data/config/boot.rb +1 -2
- data/config/environment.rb +1 -1
- data/config/environments/production.rb +0 -1
- data/config/environments/test.rb +1 -2
- data/config/initializers/devise.rb +1 -1
- data/config/initializers/kraken.rb +2 -2
- data/config/initializers/tmp.rb +1 -1
- data/config/initializers/trusty_cms_config.rb +48 -48
- data/config/routes.rb +6 -6
- data/lib/active_record_extensions/active_record_extensions.rb +1 -2
- data/lib/annotatable.rb +3 -5
- data/lib/configuration_extensions/configuration_extensions.rb +1 -1
- data/lib/inheritable_class_attributes.rb +13 -9
- data/lib/login_system.rb +73 -73
- data/lib/method_observer.rb +13 -12
- data/lib/ostruct.rb +7 -10
- data/lib/simpleton.rb +0 -4
- data/lib/string_extensions/string_extensions.rb +3 -3
- data/lib/symbol_extensions/symbol_extensions.rb +1 -1
- data/lib/tasks/database.rake +28 -28
- data/lib/tasks/extensions.rake +18 -18
- data/lib/tasks/framework.rake +68 -68
- data/lib/tasks/radiant_config.rake +4 -4
- data/lib/tasks/snippets_extension_tasks.rake +11 -11
- data/lib/tasks/translate.rake +14 -14
- data/lib/tasks/upgrade_to_devise.rake +1 -1
- data/lib/translation_support.rb +22 -22
- data/lib/trusty_cms.rb +2 -2
- data/lib/trusty_cms/admin_ui.rb +19 -16
- data/lib/trusty_cms/admin_ui/region_partials.rb +4 -3
- data/lib/trusty_cms/admin_ui/region_set.rb +4 -5
- data/lib/trusty_cms/available_locales.rb +2 -4
- data/lib/trusty_cms/config/definition.rb +11 -8
- data/lib/trusty_cms/engine.rb +14 -14
- data/lib/trusty_cms/extension.rb +14 -16
- data/lib/trusty_cms/extension_loader.rb +6 -6
- data/lib/trusty_cms/extension_migrator.rb +42 -41
- data/lib/trusty_cms/extension_path.rb +20 -19
- data/lib/trusty_cms/initializer.rb +5 -8
- data/lib/trusty_cms/pagination/controller.rb +7 -10
- data/lib/trusty_cms/pagination/link_renderer.rb +2 -2
- data/lib/trusty_cms/resource_responses.rb +3 -3
- data/lib/trusty_cms/setup.rb +130 -132
- data/lib/trusty_cms/taggable.rb +19 -22
- data/lib/trusty_cms/task_support.rb +9 -6
- data/public/dispatch.fcgi +1 -1
- data/public/dispatch.rb +2 -2
- data/script/extension +1 -1
- data/script/rails +2 -2
- data/trusty_cms.gemspec +23 -23
- metadata +32 -32
data/lib/method_observer.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
class MethodObserver
|
|
2
|
-
|
|
3
2
|
attr_reader :target
|
|
4
3
|
attr_accessor :result
|
|
5
4
|
|
|
@@ -11,6 +10,7 @@ class MethodObserver
|
|
|
11
10
|
|
|
12
11
|
def observe(target)
|
|
13
12
|
raise ObserverCannotObserveTwiceError if @target
|
|
13
|
+
|
|
14
14
|
@target = target
|
|
15
15
|
make_observable(target)
|
|
16
16
|
end
|
|
@@ -26,25 +26,26 @@ class MethodObserver
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
private
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
|
|
30
|
+
def make_observable(target)
|
|
31
|
+
methods_to_observe.each do |method|
|
|
32
|
+
target.instance_eval %{
|
|
32
33
|
def #{method}(*args, &block)
|
|
33
|
-
observer = #{self.class}.instances[#{
|
|
34
|
+
observer = #{self.class}.instances[#{object_id}]
|
|
34
35
|
observer.send(:before_#{method}, *args, &block) if observer.respond_to? :before_#{method}
|
|
35
36
|
observer.result = super
|
|
36
37
|
observer.send(:after_#{method}, *args, &block) if observer.respond_to? :after_#{method}
|
|
37
38
|
observer.result
|
|
38
39
|
end
|
|
39
40
|
}
|
|
40
|
-
end
|
|
41
41
|
end
|
|
42
|
+
end
|
|
42
43
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
def methods_to_observe
|
|
45
|
+
(methods_for(:before) + methods_for(:after)).uniq
|
|
46
|
+
end
|
|
46
47
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
48
|
+
def methods_for(name)
|
|
49
|
+
methods.grep(/^#{name}_/).map { |n| n.to_s.gsub(/^#{name}_/, '').intern }
|
|
50
|
+
end
|
|
50
51
|
end
|
data/lib/ostruct.rb
CHANGED
|
@@ -2,22 +2,19 @@
|
|
|
2
2
|
# See more here: http://stackoverflow.com/questions/39278864/openstruct-issue-with-ruby-2-3-1/39280374#39280374
|
|
3
3
|
|
|
4
4
|
class OpenStruct
|
|
5
|
-
|
|
6
|
-
def initialize(hash=nil)
|
|
5
|
+
def initialize(hash = nil)
|
|
7
6
|
@table = {}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
new_ostruct_member(k)
|
|
13
|
-
end
|
|
7
|
+
hash&.each_pair do |k, v|
|
|
8
|
+
k = k.to_sym
|
|
9
|
+
@table[k] = v
|
|
10
|
+
new_ostruct_member(k)
|
|
14
11
|
end
|
|
15
12
|
end
|
|
16
13
|
|
|
17
14
|
def modifiable
|
|
18
15
|
begin
|
|
19
16
|
@modifiable = true
|
|
20
|
-
rescue
|
|
17
|
+
rescue StandardError
|
|
21
18
|
raise RuntimeError, "can't modify frozen #{self.class}", caller(3)
|
|
22
19
|
end
|
|
23
20
|
@table
|
|
@@ -41,6 +38,7 @@ class OpenStruct
|
|
|
41
38
|
if len != 1
|
|
42
39
|
raise ArgumentError, "wrong number of arguments (#{len} for 1)", caller(1)
|
|
43
40
|
end
|
|
41
|
+
|
|
44
42
|
modifiable[new_ostruct_member(mname)] = args[0]
|
|
45
43
|
elsif len == 0
|
|
46
44
|
@table[mid]
|
|
@@ -50,5 +48,4 @@ class OpenStruct
|
|
|
50
48
|
raise err
|
|
51
49
|
end
|
|
52
50
|
end
|
|
53
|
-
|
|
54
51
|
end
|
data/lib/simpleton.rb
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
module Simpleton
|
|
2
|
-
|
|
3
2
|
def self.included(base)
|
|
4
3
|
base.extend(ClassMethods)
|
|
5
4
|
end
|
|
6
5
|
|
|
7
6
|
module ClassMethods
|
|
8
|
-
|
|
9
7
|
def instance(&block)
|
|
10
8
|
@instance ||= new
|
|
11
9
|
block.call(@instance) if block_given?
|
|
@@ -15,7 +13,5 @@ module Simpleton
|
|
|
15
13
|
def method_missing(method, *args, &block)
|
|
16
14
|
instance.respond_to?(method) ? instance.send(method, *args, &block) : super
|
|
17
15
|
end
|
|
18
|
-
|
|
19
16
|
end
|
|
20
|
-
|
|
21
17
|
end
|
|
@@ -2,15 +2,15 @@ require 'stringex'
|
|
|
2
2
|
|
|
3
3
|
class String
|
|
4
4
|
def symbolize
|
|
5
|
-
|
|
5
|
+
gsub(/[^A-Za-z0-9]+/, '_').gsub(/(^_+|_+$)/, '').underscore.to_sym
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
def titlecase
|
|
9
|
-
|
|
9
|
+
gsub(/((?:^|\s)[a-z])/) { $1.to_s.upcase }
|
|
10
10
|
end
|
|
11
11
|
|
|
12
12
|
def to_name(last_part = '')
|
|
13
|
-
|
|
13
|
+
underscore.gsub('/', ' ').humanize.titlecase.gsub(/\s*#{last_part}$/, '')
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
unless methods.include?('parameterize')
|
data/lib/tasks/database.rake
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
1
|
namespace :db do
|
|
2
|
-
desc
|
|
3
|
-
task :
|
|
2
|
+
desc 'Migrate schema to version 0 and back up again. WARNING: Destroys all data in tables!!'
|
|
3
|
+
task remigrate: :environment do
|
|
4
4
|
require 'highline/import'
|
|
5
|
-
if ENV['OVERWRITE'].to_s.downcase == 'true'
|
|
5
|
+
if (ENV['OVERWRITE'].to_s.downcase == 'true') || agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [yn] ")
|
|
6
6
|
|
|
7
7
|
# Migrate downward
|
|
8
8
|
ActiveRecord::Migrator.migrate("#{TRUSTY_CMS_ROOT}/db/migrate/", 0)
|
|
9
9
|
|
|
10
10
|
# Migrate upward
|
|
11
|
-
Rake::Task[
|
|
11
|
+
Rake::Task['db:migrate'].invoke
|
|
12
12
|
|
|
13
13
|
# Dump the schema
|
|
14
|
-
Rake::Task[
|
|
14
|
+
Rake::Task['db:schema:dump'].invoke
|
|
15
15
|
else
|
|
16
|
-
say
|
|
16
|
+
say 'Task cancelled.'
|
|
17
17
|
exit
|
|
18
18
|
end
|
|
19
19
|
end
|
|
20
20
|
|
|
21
|
-
task :
|
|
21
|
+
task remigrate: :environment do
|
|
22
22
|
require 'highline/import'
|
|
23
|
-
if ENV['OVERWRITE'].to_s.downcase == 'true'
|
|
23
|
+
if (ENV['OVERWRITE'].to_s.downcase == 'true') || agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [yn] ")
|
|
24
24
|
|
|
25
25
|
# Migrate downward
|
|
26
26
|
ActiveRecord::Migrator.migrate("#{TRUSTY_CMS_ROOT}/db/migrate/", 0)
|
|
27
27
|
|
|
28
28
|
# Migrate upward
|
|
29
|
-
Rake::Task[
|
|
29
|
+
Rake::Task['db:migrate'].invoke
|
|
30
30
|
|
|
31
31
|
# Dump the schema
|
|
32
|
-
Rake::Task[
|
|
32
|
+
Rake::Task['db:schema:dump'].invoke
|
|
33
33
|
else
|
|
34
|
-
say
|
|
34
|
+
say 'Task cancelled.'
|
|
35
35
|
exit
|
|
36
36
|
end
|
|
37
37
|
end
|
|
38
38
|
|
|
39
|
-
task :
|
|
39
|
+
task initialize: :environment do
|
|
40
40
|
require 'highline/import'
|
|
41
|
-
if ENV['OVERWRITE'].to_s.downcase == 'true'
|
|
41
|
+
if (ENV['OVERWRITE'].to_s.downcase == 'true') || agree("This task will destroy any data in the database. Are you sure you want to \ncontinue? [yn] ")
|
|
42
42
|
|
|
43
43
|
# We need to erase and remove all existing trusty-cms tables, but we don't want to
|
|
44
44
|
# assume that the administrator has access to drop and create the database.
|
|
@@ -48,21 +48,21 @@ namespace :db do
|
|
|
48
48
|
ActiveRecord::Base.connection.tables.each do |table|
|
|
49
49
|
ActiveRecord::Migration[5.2].drop_table table
|
|
50
50
|
end
|
|
51
|
-
Rake::Task[
|
|
51
|
+
Rake::Task['db:migrate'].invoke
|
|
52
52
|
else
|
|
53
|
-
say
|
|
53
|
+
say 'Task cancelled.'
|
|
54
54
|
exit
|
|
55
55
|
end
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
desc
|
|
59
|
-
task :
|
|
58
|
+
desc 'Bootstrap your database for TrustyCms.'
|
|
59
|
+
task bootstrap: :initialize do
|
|
60
60
|
require 'trusty_cms/setup'
|
|
61
61
|
TrustyCms::Setup.bootstrap(
|
|
62
|
-
:
|
|
63
|
-
:
|
|
64
|
-
:
|
|
65
|
-
:
|
|
62
|
+
admin_name: ENV['ADMIN_NAME'],
|
|
63
|
+
admin_username: ENV['ADMIN_USERNAME'],
|
|
64
|
+
admin_password: ENV['ADMIN_PASSWORD'],
|
|
65
|
+
database_template: ENV['DATABASE_TEMPLATE'],
|
|
66
66
|
)
|
|
67
67
|
puts %{
|
|
68
68
|
Your TrustyCms application is ready to use. Run `rails s -e production` to
|
|
@@ -78,16 +78,16 @@ To add more extensions just add them to your Gemfile and run `bundle install`.
|
|
|
78
78
|
}
|
|
79
79
|
end
|
|
80
80
|
|
|
81
|
-
desc
|
|
82
|
-
task :
|
|
83
|
-
ActiveRecord::Migration[5.2].verbose = ENV[
|
|
84
|
-
Rake::Task[
|
|
81
|
+
desc 'Migrate the database through all available migration scripts (looks for db/migrate/* in trusty-cms, in extensions and in your site) and update db/schema.rb by invoking db:schema:dump. Turn off output with VERBOSE=false.'
|
|
82
|
+
task migrate: [:environment, 'db:migrate:trusty_cms', 'db:migrate:extensions'] do
|
|
83
|
+
ActiveRecord::Migration[5.2].verbose = ENV['VERBOSE'] ? ENV['VERBOSE'] == 'true' : true
|
|
84
|
+
Rake::Task['db:schema:dump'].invoke if ActiveRecord::Base.schema_format == :ruby
|
|
85
85
|
end
|
|
86
86
|
|
|
87
87
|
namespace :migrate do
|
|
88
|
-
desc
|
|
89
|
-
task :
|
|
90
|
-
ActiveRecord::Migration[5.2].verbose = ENV[
|
|
88
|
+
desc 'Migrates the database through steps defined in the core trusty-cms distribution. Usual db:migrate options can apply.'
|
|
89
|
+
task trusty_cms: :environment do
|
|
90
|
+
ActiveRecord::Migration[5.2].verbose = ENV['VERBOSE'] ? ENV['VERBOSE'] == 'true' : true
|
|
91
91
|
Rake::Task['db:migrate'].invoke
|
|
92
92
|
end
|
|
93
93
|
end
|
data/lib/tasks/extensions.rake
CHANGED
|
@@ -2,20 +2,20 @@ require 'rake/testtask'
|
|
|
2
2
|
|
|
3
3
|
namespace :db do
|
|
4
4
|
namespace :migrate do
|
|
5
|
-
desc
|
|
6
|
-
task :
|
|
5
|
+
desc 'Run all TrustyCms extension migrations'
|
|
6
|
+
task extensions: :environment do
|
|
7
7
|
require 'trusty_cms/extension_migrator'
|
|
8
8
|
TrustyCms::ExtensionMigrator.migrate_extensions
|
|
9
9
|
Rake::Task['db:schema:dump'].invoke
|
|
10
10
|
end
|
|
11
11
|
end
|
|
12
12
|
namespace :remigrate do
|
|
13
|
-
desc
|
|
14
|
-
task :
|
|
13
|
+
desc 'Migrate down and back up all TrustyCms extension migrations'
|
|
14
|
+
task extensions: :environment do
|
|
15
15
|
require 'highline/import'
|
|
16
16
|
if agree("This task will destroy any data stored by extensions in the database. Are you sure you want to \ncontinue? [yn] ")
|
|
17
17
|
require 'trusty_cms/extension_migrator'
|
|
18
|
-
TrustyCms::Extension.descendants.each {|ext| ext.migrator.migrate(0) }
|
|
18
|
+
TrustyCms::Extension.descendants.each { |ext| ext.migrator.migrate(0) }
|
|
19
19
|
Rake::Task['db:migrate:extensions'].invoke
|
|
20
20
|
Rake::Task['db:schema:dump'].invoke
|
|
21
21
|
end
|
|
@@ -24,13 +24,13 @@ namespace :db do
|
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
namespace :test do
|
|
27
|
-
desc
|
|
28
|
-
task :
|
|
27
|
+
desc 'Runs tests on all available TrustyCms extensions, pass EXT=extension_name to test a single extension'
|
|
28
|
+
task extensions: 'db:test:prepare' do
|
|
29
29
|
extensions = TrustyCms.configuration.enabled_extensions
|
|
30
|
-
if ENV[
|
|
31
|
-
extensions = extensions & [ENV[
|
|
30
|
+
if ENV['EXT']
|
|
31
|
+
extensions = extensions & [ENV['EXT'].to_sym]
|
|
32
32
|
if extensions.empty?
|
|
33
|
-
puts
|
|
33
|
+
puts 'Sorry, that extension is not installed.'
|
|
34
34
|
end
|
|
35
35
|
end
|
|
36
36
|
extensions.each do |extension|
|
|
@@ -49,13 +49,13 @@ namespace :test do
|
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
namespace :spec do
|
|
52
|
-
desc
|
|
53
|
-
task :
|
|
52
|
+
desc 'Runs specs on all available TrustyCms extensions, pass EXT=extension_name to test a single extension'
|
|
53
|
+
task extensions: 'db:test:prepare' do
|
|
54
54
|
extensions = TrustyCms.configuration.enabled_extensions
|
|
55
|
-
if ENV[
|
|
56
|
-
extensions = extensions & [ENV[
|
|
55
|
+
if ENV['EXT']
|
|
56
|
+
extensions = extensions & [ENV['EXT'].to_sym]
|
|
57
57
|
if extensions.empty?
|
|
58
|
-
puts
|
|
58
|
+
puts 'Sorry, that extension is not installed.'
|
|
59
59
|
end
|
|
60
60
|
end
|
|
61
61
|
extensions.each do |extension|
|
|
@@ -76,10 +76,10 @@ end
|
|
|
76
76
|
|
|
77
77
|
namespace :trusty_cms do
|
|
78
78
|
namespace :extensions do
|
|
79
|
-
desc
|
|
80
|
-
task :
|
|
79
|
+
desc 'Runs update asset task for all extensions'
|
|
80
|
+
task update_all: [:environment] do
|
|
81
81
|
extension_update_tasks = TrustyCms.configuration.enabled_extensions.map { |n| "trusty_cms:extensions:#{n}:update" }.select { |t| Rake::Task.task_defined?(t) }
|
|
82
|
-
extension_update_tasks.each {|t| Rake::Task[t].invoke }
|
|
82
|
+
extension_update_tasks.each { |t| Rake::Task[t].invoke }
|
|
83
83
|
end
|
|
84
84
|
end
|
|
85
85
|
end
|
data/lib/tasks/framework.rake
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
unless File.directory? "#{Rails.root}/app"
|
|
3
3
|
namespace :trusty_cms do
|
|
4
4
|
namespace :freeze do
|
|
5
|
-
desc
|
|
5
|
+
desc 'Lock this application to the current gems (by unpacking them into vendor/trusty)'
|
|
6
6
|
task :gems do
|
|
7
7
|
require 'rubygems'
|
|
8
8
|
require 'rubygems/gem_runner'
|
|
9
9
|
|
|
10
10
|
trusty = (version = ENV['VERSION']) ?
|
|
11
11
|
Gem.cache.search('trusty-cms', "= #{version}").first :
|
|
12
|
-
Gem.cache.search('trusty-cms').
|
|
12
|
+
Gem.cache.search('trusty-cms').max_by { |g| g.version }
|
|
13
13
|
|
|
14
14
|
version ||= trusty.version
|
|
15
15
|
|
|
@@ -19,49 +19,48 @@ unless File.directory? "#{Rails.root}/app"
|
|
|
19
19
|
end
|
|
20
20
|
|
|
21
21
|
puts "Freezing to the gems for TrustyCms #{trusty.version}"
|
|
22
|
-
rm_rf
|
|
22
|
+
rm_rf 'vendor/trusty'
|
|
23
23
|
|
|
24
|
-
chdir(
|
|
25
|
-
Gem::GemRunner.new.run([
|
|
26
|
-
FileUtils.mv(Dir.glob(
|
|
24
|
+
chdir('vendor') do
|
|
25
|
+
Gem::GemRunner.new.run(['unpack', 'trusty', '--version', "=#{version}"])
|
|
26
|
+
FileUtils.mv(Dir.glob('trusty*').first, 'trusty')
|
|
27
27
|
end
|
|
28
28
|
end
|
|
29
29
|
|
|
30
|
-
desc
|
|
30
|
+
desc 'Lock to latest Edge TrustyCms or a specific revision with REVISION=X (ex: REVISION=245484e), a tag with TAG=Y (ex: TAG=0.6.6), or a branch with BRANCH=Z (ex: BRANCH=mental)'
|
|
31
31
|
task :edge do
|
|
32
32
|
$verbose = false
|
|
33
|
-
unless system
|
|
34
|
-
|
|
33
|
+
unless system 'git --version'
|
|
34
|
+
warn 'ERROR: Must have git available in the PATH to lock this application to Edge TrustyCms'
|
|
35
35
|
exit 1
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
trusty_git =
|
|
38
|
+
trusty_git = 'git://github.com/pgharts/trusty-cms.git'
|
|
39
39
|
|
|
40
|
-
if File.exist?(
|
|
41
|
-
cd(
|
|
40
|
+
if File.exist?('vendor/trusty_cms/.git/HEAD')
|
|
41
|
+
cd('vendor/trusty') { system 'git checkout master'; system 'git pull origin master' }
|
|
42
42
|
else
|
|
43
43
|
system "git clone #{trusty_git} vendor/trusty"
|
|
44
44
|
end
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
cd("vendor/trusty") { system "git checkout -b REV_#{ENV['REVISION']} #{ENV['REVISION']}"}
|
|
46
|
+
if ENV['TAG']
|
|
47
|
+
cd('vendor/trusty') { system "git checkout -b v#{ENV['TAG']} #{ENV['TAG']}" }
|
|
48
|
+
elsif ENV['BRANCH']
|
|
49
|
+
cd('vendor/trusty') { system "git checkout --track -b #{ENV['BRANCH']} origin/#{ENV['BRANCH']}" }
|
|
50
|
+
elsif ENV['REVISION']
|
|
51
|
+
cd('vendor/trusty') { system "git checkout -b REV_#{ENV['REVISION']} #{ENV['REVISION']}" }
|
|
53
52
|
end
|
|
54
53
|
|
|
55
|
-
cd(
|
|
54
|
+
cd('vendor/trusty') { system 'git submodule update --init' }
|
|
56
55
|
end
|
|
57
56
|
end
|
|
58
57
|
|
|
59
|
-
desc
|
|
58
|
+
desc 'Unlock this application from freeze of gems or edge and return to a fluid use of system gems'
|
|
60
59
|
task :unfreeze do
|
|
61
|
-
rm_rf
|
|
60
|
+
rm_rf 'vendor/trusty'
|
|
62
61
|
end
|
|
63
62
|
|
|
64
|
-
desc
|
|
63
|
+
desc 'Update configs, scripts, html, images, sass, stylesheets and javascripts from TrustyCms.'
|
|
65
64
|
task :update do
|
|
66
65
|
tasks = %w{scripts javascripts configs static_html images sass stylesheets cached_assets bundle}
|
|
67
66
|
tasks = tasks & ENV['ONLY'].split(',') if ENV['ONLY']
|
|
@@ -74,9 +73,9 @@ unless File.directory? "#{Rails.root}/app"
|
|
|
74
73
|
end
|
|
75
74
|
|
|
76
75
|
namespace :update do
|
|
77
|
-
desc
|
|
76
|
+
desc 'Add new scripts to the instance script/ directory'
|
|
78
77
|
task :scripts do
|
|
79
|
-
local_base =
|
|
78
|
+
local_base = 'script'
|
|
80
79
|
edge_base = "#{File.dirname(__FILE__)}/../../script"
|
|
81
80
|
|
|
82
81
|
local = Dir["#{local_base}/**/*"].reject { |path| File.directory?(path) }
|
|
@@ -84,33 +83,34 @@ unless File.directory? "#{Rails.root}/app"
|
|
|
84
83
|
edge = edge.reject { |f| f =~ /(generate|plugin|destroy)$/ }
|
|
85
84
|
|
|
86
85
|
edge.each do |script|
|
|
87
|
-
base_name = script[(edge_base.length+1)..-1]
|
|
88
|
-
next if local.detect { |path| base_name == path[(local_base.length+1)..-1] }
|
|
86
|
+
base_name = script[(edge_base.length + 1)..-1]
|
|
87
|
+
next if local.detect { |path| base_name == path[(local_base.length + 1)..-1] }
|
|
88
|
+
|
|
89
89
|
if !File.directory?("#{local_base}/#{File.dirname(base_name)}")
|
|
90
90
|
mkdir_p "#{local_base}/#{File.dirname(base_name)}"
|
|
91
91
|
end
|
|
92
|
-
install script, "#{local_base}/#{base_name}", :
|
|
92
|
+
install script, "#{local_base}/#{base_name}", mode: 0o755
|
|
93
93
|
end
|
|
94
|
-
install "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_generate", "#{local_base}/generate", :
|
|
94
|
+
install "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_generate", "#{local_base}/generate", mode: 0o755
|
|
95
95
|
end
|
|
96
96
|
|
|
97
|
-
desc
|
|
97
|
+
desc 'Update your javascripts from your current trusty install'
|
|
98
98
|
task :javascripts do
|
|
99
99
|
FileUtils.mkdir_p("#{Rails.root}/public/javascripts/admin/")
|
|
100
100
|
copy_javascripts = proc do |project_dir, scripts|
|
|
101
|
-
scripts.reject!{|s| File.basename(s) == 'overrides.js'} if File.exists?(project_dir + 'overrides.js')
|
|
101
|
+
scripts.reject! { |s| File.basename(s) == 'overrides.js' } if File.exists?(project_dir + 'overrides.js')
|
|
102
102
|
FileUtils.cp(scripts, project_dir)
|
|
103
103
|
end
|
|
104
104
|
copy_javascripts[Rails.root + '/public/javascripts/', Dir["#{File.dirname(__FILE__)}/../../public/javascripts/*.js"]]
|
|
105
105
|
copy_javascripts[Rails.root + '/public/javascripts/admin/', Dir["#{File.dirname(__FILE__)}/../../public/javascripts/admin/*.js"]]
|
|
106
106
|
end
|
|
107
107
|
|
|
108
|
-
desc
|
|
108
|
+
desc 'Update the cached assets for the admin UI'
|
|
109
109
|
task :cached_assets do
|
|
110
110
|
TrustyCms::TaskSupport.cache_admin_js
|
|
111
111
|
end
|
|
112
112
|
|
|
113
|
-
desc
|
|
113
|
+
desc 'Update Gemfile from your current trusty install, backing up if required.'
|
|
114
114
|
task :bundle do
|
|
115
115
|
require 'erb'
|
|
116
116
|
file = "#{Rails.root}/Gemfile"
|
|
@@ -123,7 +123,7 @@ unless File.directory? "#{Rails.root}/app"
|
|
|
123
123
|
'mysql2' => 'mysql2',
|
|
124
124
|
'pg' => 'postgresql',
|
|
125
125
|
'db2' => 'db2',
|
|
126
|
-
'activerecord-sqlserver-adapter' => 'sqlserver'
|
|
126
|
+
'activerecord-sqlserver-adapter' => 'sqlserver',
|
|
127
127
|
}
|
|
128
128
|
active_db_gem = db_gems.keys.find { |g| Gem.loaded_specs[g] } || 'sqlite3'
|
|
129
129
|
|
|
@@ -134,7 +134,7 @@ unless File.directory? "#{Rails.root}/app"
|
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
unless File.exist?(file) && FileUtils.compare_file(file, tmpfile)
|
|
137
|
-
warning =
|
|
137
|
+
warning = ''
|
|
138
138
|
if File.exist?(file)
|
|
139
139
|
FileUtils.cp(file, backfile)
|
|
140
140
|
warning << "** WARNING **
|
|
@@ -149,44 +149,44 @@ A Gemfile has been created in your application directory. If you have config.gem
|
|
|
149
149
|
puts warning
|
|
150
150
|
end
|
|
151
151
|
|
|
152
|
-
desc
|
|
152
|
+
desc 'Update configuration files from your current trusty install'
|
|
153
153
|
task :configs do
|
|
154
154
|
require 'erb'
|
|
155
155
|
instances = {
|
|
156
|
-
:
|
|
157
|
-
:
|
|
158
|
-
:
|
|
159
|
-
:
|
|
160
|
-
:
|
|
156
|
+
env: "#{Rails.root}/config/environment.rb",
|
|
157
|
+
development: "#{Rails.root}/config/environments/development.rb",
|
|
158
|
+
test: "#{Rails.root}/config/environments/test.rb",
|
|
159
|
+
cucumber: "#{Rails.root}/config/environments/cucumber.rb",
|
|
160
|
+
production: "#{Rails.root}/config/environments/production.rb",
|
|
161
161
|
}
|
|
162
162
|
tmps = {
|
|
163
|
-
:
|
|
164
|
-
:
|
|
165
|
-
:
|
|
166
|
-
:
|
|
167
|
-
:
|
|
163
|
+
env: "#{Rails.root}/config/environment.tmp",
|
|
164
|
+
development: "#{Rails.root}/config/environments/development.tmp",
|
|
165
|
+
test: "#{Rails.root}/config/environments/test.tmp",
|
|
166
|
+
cucumber: "#{Rails.root}/config/environments/cucumber.rb",
|
|
167
|
+
production: "#{Rails.root}/config/environments/production.tmp",
|
|
168
168
|
}
|
|
169
169
|
gens = {
|
|
170
|
-
:
|
|
171
|
-
:
|
|
172
|
-
:
|
|
173
|
-
:
|
|
174
|
-
:
|
|
170
|
+
env: "#{File.dirname(__FILE__)}/../generators/instance/templates/instance_environment.rb",
|
|
171
|
+
development: "#{File.dirname(__FILE__)}/../../config/environments/development.rb",
|
|
172
|
+
test: "#{File.dirname(__FILE__)}/../../config/environments/test.rb",
|
|
173
|
+
cucumber: "#{File.dirname(__FILE__)}/../../config/environments/cucumber.rb",
|
|
174
|
+
production: "#{File.dirname(__FILE__)}/../../config/environments/production.rb",
|
|
175
175
|
}
|
|
176
176
|
backups = {
|
|
177
|
-
:
|
|
178
|
-
:
|
|
179
|
-
:
|
|
180
|
-
:
|
|
181
|
-
:
|
|
177
|
+
env: "#{Rails.root}/config/environment.bak",
|
|
178
|
+
development: "#{Rails.root}/config/environments/development.bak",
|
|
179
|
+
test: "#{Rails.root}/config/environments/test.bak",
|
|
180
|
+
cucumber: "#{Rails.root}/config/environments/cucumber.bak",
|
|
181
|
+
production: "#{Rails.root}/config/environments/production.bak",
|
|
182
182
|
}
|
|
183
183
|
|
|
184
184
|
FileUtils.cp("#{File.dirname(__FILE__)}/../generators/instance/templates/instance_boot.rb", Rails.root + '/config/boot.rb')
|
|
185
185
|
FileUtils.cp("#{File.dirname(__FILE__)}/../../config/preinitializer.rb", Rails.root + '/config/preinitializer.rb')
|
|
186
|
-
warning =
|
|
187
|
-
[
|
|
186
|
+
warning = ''
|
|
187
|
+
%i[env development test cucumber production].each do |env_file|
|
|
188
188
|
File.open(tmps[env_file], 'w') do |f|
|
|
189
|
-
app_name
|
|
189
|
+
app_name = File.basename(File.expand_path(Rails.root))
|
|
190
190
|
trusty_version = TrustyCms::VERSION.to_s
|
|
191
191
|
f.write ERB.new(File.read(gens[env_file])).result(binding)
|
|
192
192
|
end
|
|
@@ -206,14 +206,14 @@ the new files: #{warning}"
|
|
|
206
206
|
end
|
|
207
207
|
end
|
|
208
208
|
|
|
209
|
-
desc
|
|
209
|
+
desc 'Update static HTML files from your current trusty install'
|
|
210
210
|
task :static_html do
|
|
211
|
-
project_dir = Rails.root +
|
|
211
|
+
project_dir = Rails.root + '/public/'
|
|
212
212
|
html_files = Dir["#{File.dirname(__FILE__)}/../../public/*.html"].delete_if { |f| f =~ /404.html|500.html/ }
|
|
213
213
|
FileUtils.cp(html_files, project_dir)
|
|
214
214
|
end
|
|
215
215
|
|
|
216
|
-
desc
|
|
216
|
+
desc 'Update admin and trusty images from your current trusty install'
|
|
217
217
|
task :images do
|
|
218
218
|
%w{admin trusty}.each do |d|
|
|
219
219
|
project_dir = Rails.root + "/public/images/#{d}/"
|
|
@@ -223,22 +223,22 @@ the new files: #{warning}"
|
|
|
223
223
|
end
|
|
224
224
|
end
|
|
225
225
|
|
|
226
|
-
desc
|
|
226
|
+
desc 'Update admin stylesheets from your current trusty install'
|
|
227
227
|
task :stylesheets do
|
|
228
228
|
project_dir = Rails.root + '/public/stylesheets/admin/'
|
|
229
229
|
|
|
230
230
|
copy_stylesheets = proc do |project_dir, styles|
|
|
231
|
-
styles.reject!{|s| File.basename(s) == 'overrides.css'} if File.exists?(project_dir + 'overrides.css')
|
|
231
|
+
styles.reject! { |s| File.basename(s) == 'overrides.css' } if File.exists?(project_dir + 'overrides.css')
|
|
232
232
|
FileUtils.cp(styles, project_dir)
|
|
233
233
|
end
|
|
234
|
-
copy_stylesheets[Rails.root + '/public/stylesheets/admin/',Dir["#{File.dirname(__FILE__)}/../../public/stylesheets/admin/*.css"]]
|
|
234
|
+
copy_stylesheets[Rails.root + '/public/stylesheets/admin/', Dir["#{File.dirname(__FILE__)}/../../public/stylesheets/admin/*.css"]]
|
|
235
235
|
end
|
|
236
236
|
|
|
237
|
-
desc
|
|
237
|
+
desc 'Update admin sass files from your current trusty install'
|
|
238
238
|
task :sass do
|
|
239
239
|
copy_sass = proc do |project_dir, sass_files|
|
|
240
|
-
sass_files.reject!{|s| File.basename(s) == 'overrides.sass'} if File.exists?(project_dir + 'overrides.sass') || File.exists?(project_dir + '../overrides.css')
|
|
241
|
-
sass_files.reject!{|s| File.directory?(s) }
|
|
240
|
+
sass_files.reject! { |s| File.basename(s) == 'overrides.sass' } if File.exists?(project_dir + 'overrides.sass') || File.exists?(project_dir + '../overrides.css')
|
|
241
|
+
sass_files.reject! { |s| File.directory?(s) }
|
|
242
242
|
FileUtils.mkpath(project_dir)
|
|
243
243
|
FileUtils.cp(sass_files, project_dir)
|
|
244
244
|
end
|