contao 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -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