contao 0.6.1 → 0.6.2

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.
@@ -1,4 +1,5 @@
1
1
  require 'contao/generators/base'
2
+ require 'contao/application'
2
3
  require 'contao/system'
3
4
 
4
5
  module TechnoGate
@@ -2,6 +2,8 @@ module TechnoGate
2
2
  module Contao
3
3
  module Generators
4
4
  class Base
5
+ attr_reader :options
6
+
5
7
  def initialize(options = {})
6
8
  @options = options
7
9
  end
@@ -10,7 +10,7 @@ module TechnoGate
10
10
  def generate
11
11
  config = build_config
12
12
  File.open initializer_path, 'w' do |f|
13
- f.write ERB.new(File.read TEMPLATE).result(binding)
13
+ f.write ERB.new(File.read(TEMPLATE), nil, '-').result(binding)
14
14
  end
15
15
  end
16
16
 
@@ -0,0 +1,29 @@
1
+ require 'contao/generators/base'
2
+
3
+ module TechnoGate
4
+ module Contao
5
+ module Generators
6
+ class Localconfig < Base
7
+ class LocalconfigRequired < RuntimeError; end
8
+
9
+ def generate
10
+ require_localconfig
11
+
12
+ config = Contao::Application.config
13
+ File.open localconfig_path, 'w' do |f|
14
+ f.write ERB.new(File.read(options[:template]), nil, '-').result(binding)
15
+ end
16
+ end
17
+
18
+ protected
19
+ def require_localconfig
20
+ raise LocalconfigRequired unless options[:template]
21
+ end
22
+
23
+ def localconfig_path
24
+ Pathname.new(Rails.public_path).join 'system/config/localconfig.php'
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -21,7 +21,7 @@ module ContaoTemplate
21
21
 
22
22
  # Enable SMTP ?
23
23
  config.contao.smtp.enabled = <%= config.smtp_enabled %>
24
- <% if config.smtp_enabled %>
24
+ <%- if config.smtp_enabled %>
25
25
  # SMTP Host
26
26
  config.contao.smtp.host = '<%= config.smtp_host %>'
27
27
 
@@ -36,6 +36,6 @@ module ContaoTemplate
36
36
 
37
37
  # SMTP Port
38
38
  config.contao.smtp.port = <%= config.smtp_port %>
39
- <% end %>
39
+ <%- end %>
40
40
  end
41
41
  end
@@ -1,3 +1,3 @@
1
1
  module Contao
2
- VERSION = '0.6.1'
2
+ VERSION = '0.6.2'
3
3
  end
@@ -96,21 +96,12 @@ namespace :contao do
96
96
 
97
97
  desc "Generate the localconfig.php"
98
98
  task :generate_localconfig => :environment do
99
- require 'active_support/core_ext/object/blank'
100
- config = Rails.application.config.contao.dup
99
+ require 'contao/generators/localconfig'
101
100
 
102
- config.db_server_app = 'mysql'
103
- config.db_hostname = config.global.mysql.host
104
- config.db_port = config.global.mysql.port
105
- config.db_username = config.global.mysql.user
106
- config.db_password = config.global.mysql.pass
107
- config.db_database = config.application_name
108
-
109
- localconfig_template = Rails.root.join 'config/examples/localconfig.php.erb'
110
- localconfig_path = public_path.join 'system/config/localconfig.php'
111
-
112
- localconfig = ERB.new(File.read(localconfig_template), nil, '-').result(binding)
113
- File.open(localconfig_path, 'w') {|f| f.write localconfig }
101
+ TechnoGate::Contao::Generators::Localconfig.new(
102
+ path: Rails.root,
103
+ template: Rails.root.join('config/examples/localconfig.php.erb'),
104
+ ).generate
114
105
 
115
106
  TechnoGate::Contao::Notifier.notify 'The configuration file localconfig.php was generated successfully.'
116
107
  end
@@ -1,5 +1,5 @@
1
1
  require 'spec_helper'
2
- require 'contao/generators/contao_initializer.rb'
2
+ require 'contao/generators/contao_initializer'
3
3
 
4
4
  module TechnoGate
5
5
  module Contao
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+ require 'contao/generators/localconfig'
3
+
4
+ module TechnoGate
5
+ module Contao
6
+ module Generators
7
+ describe Localconfig, :fakefs => true do
8
+ let(:klass) { Localconfig }
9
+
10
+ subject {
11
+ klass.new path: @path, template: @template
12
+ }
13
+
14
+ before :each do
15
+ @path = '/root/my_awesome_project'
16
+ @template = "#{@path}/config/examples/localconfig.php.erb"
17
+
18
+ stub_filesystem! :global_config => {
19
+ 'mysql' => {
20
+ 'host' => 'localhost',
21
+ 'user' => 'myuser',
22
+ 'pass' => 'mypass',
23
+ 'port' => 3306,
24
+ },
25
+ }
26
+
27
+ Contao::Application.send :load_global_config!
28
+ end
29
+
30
+ it_should_behave_like 'Generator'
31
+
32
+ describe '#generate' do
33
+ it 'should require a template' do
34
+ expect do
35
+ klass.new(path: @path).generate
36
+ end.to raise_error Localconfig::LocalconfigRequired
37
+ end
38
+
39
+ it 'should generate a localconfig file' do
40
+ subject.generate
41
+ File.exists?('/root/my_awesome_project/public/system/config/localconfig.php').should be_true
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -3,12 +3,14 @@ def stub_filesystem!(options = {})
3
3
 
4
4
  '/root/my_awesome_project/config',
5
5
  '/root/my_awesome_project/config/initializers',
6
+ '/root/my_awesome_project/config/examples',
6
7
  '/root/my_awesome_project/app/assets/javascripts',
7
8
  '/root/my_awesome_project/app/assets/stylesheets',
8
9
  '/root/my_awesome_project/app/assets/images',
9
10
  '/root/my_awesome_project/contao/non_existing_folder',
10
11
  '/root/my_awesome_project/contao/system/modules/some_extension',
11
12
  '/root/my_awesome_project/public/resources',
13
+ '/root/my_awesome_project/public/system/config',
12
14
  '/root/my_awesome_project/public/system/modules/frontend',
13
15
  '/root/my_awesome_project/vendor/assets/javascripts',
14
16
  '/tmp',
@@ -22,6 +24,86 @@ def stub_filesystem!(options = {})
22
24
 
23
25
  stub_global_config_file!(options[:global_config] || {})
24
26
  stub_config_application!(options[:application_name])
27
+ stub_localconfig!
28
+ end
29
+
30
+ def stub_localconfig!
31
+ localconfig_path = '/root/my_awesome_project/config/examples/localconfig.php.erb'
32
+ File.open localconfig_path, 'w' do |f|
33
+ f.write <<-EOS
34
+ <?php if (!defined('TL_ROOT')) die('You cannot access this file directly!');
35
+
36
+ /**
37
+ * Contao Open Source CMS
38
+ * Copyright (C) 2005-2011 Leo Feyer
39
+ *
40
+ * Formerly known as TYPOlight Open Source CMS.
41
+ *
42
+ * This program is free software: you can redistribute it and/or
43
+ * modify it under the terms of the GNU Lesser General Public
44
+ * License as published by the Free Software Foundation, either
45
+ * version 3 of the License, or (at your option) any later version.
46
+ *
47
+ * This program is distributed in the hope that it will be useful,
48
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
49
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
50
+ * Lesser General Public License for more details.
51
+ *
52
+ * You should have received a copy of the GNU Lesser General Public
53
+ * License along with this program. If not, please visit the Free
54
+ * Software Foundation website at <http://www.gnu.org/licenses/>.
55
+ *
56
+ * PHP version 5
57
+ * @copyright Leo Feyer 2005-2011
58
+ * @author Leo Feyer <http://www.contao.org>
59
+ * @package Config
60
+ * @license LGPL
61
+ * @filesource
62
+ */
63
+
64
+ ### INSTALL SCRIPT START ###
65
+ $GLOBALS['TL_CONFIG']['websitePath'] = '';
66
+ $GLOBALS['TL_CONFIG']['licenseAccepted'] = true;
67
+ $GLOBALS['TL_CONFIG']['installPassword'] = '<%= config.install_password %>';
68
+ $GLOBALS['TL_CONFIG']['installCount'] = 0;
69
+ $GLOBALS['TL_CONFIG']['encryptionKey'] = '<%= config.encryption_key %>';
70
+ <% if config.db_server_app == 'mysql' -%>
71
+ $GLOBALS['TL_CONFIG']['dbDriver'] = 'MySQL';
72
+ <% end -%>
73
+ $GLOBALS['TL_CONFIG']['dbHost'] = '<%= config.db_hostname || 'localhost' %>';
74
+ $GLOBALS['TL_CONFIG']['dbPort'] = <%= config.db_port || 3306 %>;
75
+ $GLOBALS['TL_CONFIG']['dbUser'] = '<%= config.db_username %>';
76
+ $GLOBALS['TL_CONFIG']['dbPass'] = '<%= config.db_password %>';
77
+ $GLOBALS['TL_CONFIG']['dbDatabase'] = '<%= config.db_database %>';
78
+ $GLOBALS['TL_CONFIG']['dbPconnect'] = false;
79
+ $GLOBALS['TL_CONFIG']['dbCharset'] = 'UTF8';
80
+ $GLOBALS['TL_CONFIG']['adminEmail'] = '<%= config.admin_email %>';
81
+ $GLOBALS['TL_CONFIG']['cron_weekly'] = 201126;
82
+ $GLOBALS['TL_CONFIG']['latestVersion'] = '2.11.3';
83
+ $GLOBALS['TL_CONFIG']['cron_daily'] = 20110701;
84
+ $GLOBALS['TL_CONFIG']['timeZone'] = '<%= config.time_zone %>';
85
+ $GLOBALS['TL_CONFIG']['rewriteURL'] = true;
86
+ $GLOBALS['TL_CONFIG']['allowedTags'] = '<a><abbr><acronym><address><area><article><aside><b><big><blockquote><br><base><bdo><button><caption><cite><code><col><colgroup><dd><del><div><dfn><dl><dt><em><figure><figcaption><form><fieldset><footer><header><hr><h1><h2><h3><h4><h5><h6><i><iframe><img><input><ins><label><legend><li><link><map><nav><object><ol><optgroup><option><p><pre><param><q><section><select><small><span><strong><sub><sup><style><table><tbody><td><textarea><tfoot><th><thead><tr><tt><u><ul>';
87
+ <% if config.smtp.enabled -%>
88
+ $GLOBALS['TL_CONFIG']['useSMTP'] = true;
89
+ $GLOBALS['TL_CONFIG']['smtpHost'] = '<%= config.smtp.host %>';
90
+ $GLOBALS['TL_CONFIG']['smtpUser'] = '<%= config.smtp.user %>';
91
+ $GLOBALS['TL_CONFIG']['smtpPass'] = '<%= config.smtp.pass %>';
92
+ <% end -%>
93
+ <% if config.smtp.ssl -%>
94
+ $GLOBALS['TL_CONFIG']['smtpEnc'] = 'ssl';
95
+ $GLOBALS['TL_CONFIG']['smtpPort'] = <%= config.smtp.port || 465 %>;
96
+ <% end -%>
97
+ <% unless Rails.env.production? -%>
98
+ $GLOBALS['TL_CONFIG']['cacheMode'] = 'none';
99
+ $GLOBALS['TL_CONFIG']['displayErrors'] = true;
100
+ $GLOBALS['TL_CONFIG']['disableRefererCheck'] = true;
101
+ <% end -%>
102
+ ### INSTALL SCRIPT STOP ###
103
+
104
+ ?>
105
+ EOS
106
+ end
25
107
  end
26
108
 
27
109
  def stub_global_config_file!(config = {})
@@ -6,6 +6,18 @@ module Rails
6
6
  end
7
7
 
8
8
  def self.env
9
+ self
10
+ end
11
+
12
+ def self.production?
13
+ false
14
+ end
15
+
16
+ def self.to_s
17
+ @@env
18
+ end
19
+
20
+ def self.to_str
9
21
  @@env
10
22
  end
11
23
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: contao
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -166,6 +166,7 @@ files:
166
166
  - lib/contao/generators/base.rb
167
167
  - lib/contao/generators/config.rb
168
168
  - lib/contao/generators/contao_initializer.rb
169
+ - lib/contao/generators/localconfig.rb
169
170
  - lib/contao/notifier.rb
170
171
  - lib/contao/password.rb
171
172
  - lib/contao/railties.rb
@@ -181,6 +182,7 @@ files:
181
182
  - spec/lib/contao/generators/base_spec.rb
182
183
  - spec/lib/contao/generators/config_spec.rb
183
184
  - spec/lib/contao/generators/contao_initializer_spec.rb
185
+ - spec/lib/contao/generators/localconfig_spec.rb
184
186
  - spec/lib/contao/notifier_spec.rb
185
187
  - spec/lib/contao/password_spec.rb
186
188
  - spec/spec_helper.rb
@@ -209,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
209
211
  version: '0'
210
212
  segments:
211
213
  - 0
212
- hash: -745897341125477947
214
+ hash: 775829207634762625
213
215
  requirements: []
214
216
  rubyforge_project:
215
217
  rubygems_version: 1.8.23
@@ -227,6 +229,7 @@ test_files:
227
229
  - spec/lib/contao/generators/base_spec.rb
228
230
  - spec/lib/contao/generators/config_spec.rb
229
231
  - spec/lib/contao/generators/contao_initializer_spec.rb
232
+ - spec/lib/contao/generators/localconfig_spec.rb
230
233
  - spec/lib/contao/notifier_spec.rb
231
234
  - spec/lib/contao/password_spec.rb
232
235
  - spec/spec_helper.rb