Commit 2c68eefb65304097a2133ea097d7fe23e6a7ee89
Committed by
Daniela Feitosa
1 parent
7590a7c4
Exists in
master
and in
22 other branches
Merging web2.0.yml and mail.yml into noosfero.yml
- new config entry: addthis_enabled - new Rails initializer to load config file (ActionItem1820)
Showing
14 changed files
with
69 additions
and
105 deletions
Show diff stats
app/helpers/application_helper.rb
| ... | ... | @@ -30,17 +30,6 @@ module ApplicationHelper |
| 30 | 30 | (@page && !@page.language.blank?) ? @page.language : FastGettext.locale |
| 31 | 31 | end |
| 32 | 32 | |
| 33 | - def load_web2_conf | |
| 34 | - if File.exists?( RAILS_ROOT + '/config/web2.0.yml') | |
| 35 | - YAML.load_file( RAILS_ROOT + '/config/web2.0.yml' ) | |
| 36 | - else | |
| 37 | - {} | |
| 38 | - end | |
| 39 | - end | |
| 40 | - def web2_conf | |
| 41 | - @web_conf ||= load_web2_conf | |
| 42 | - end | |
| 43 | - | |
| 44 | 33 | # Displays context help. You can pass the content of the help message as the |
| 45 | 34 | # first parameter or using template code inside a block passed to this |
| 46 | 35 | # method. *Note*: the block is ignored if <tt>content</tt> is not |
| ... | ... | @@ -570,12 +559,12 @@ module ApplicationHelper |
| 570 | 559 | :protocol => 'http://', |
| 571 | 560 | :only_path => false, |
| 572 | 561 | :controller => 'avatar.php', |
| 573 | - :d => web2_conf['gravatar'] ? web2_conf['gravatar']['default'] : nil | |
| 562 | + :d => NOOSFERO_CONF['gravatar'] ? NOOSFERO_CONF['gravatar'] : nil | |
| 574 | 563 | }.merge(options) ) |
| 575 | 564 | end |
| 576 | 565 | |
| 577 | 566 | def str_gravatar_url_for(email, options = {}) |
| 578 | - default = web2_conf['gravatar'] ? web2_conf['gravatar']['default'] : nil | |
| 567 | + default = NOOSFERO_CONF['gravatar'] ? NOOSFERO_CONF['gravatar'] : nil | |
| 579 | 568 | url = 'http://www.gravatar.com/avatar.php?gravatar_id=' + |
| 580 | 569 | Digest::MD5.hexdigest(email) |
| 581 | 570 | { | ... | ... |
app/models/google_maps.rb
| ... | ... | @@ -6,14 +6,6 @@ class GoogleMaps |
| 6 | 6 | |
| 7 | 7 | include ApplicationHelper |
| 8 | 8 | |
| 9 | - def erase_config | |
| 10 | - @config = nil | |
| 11 | - end | |
| 12 | - | |
| 13 | - def config | |
| 14 | - @config ||= (web2_conf['googlemaps'] || {}) | |
| 15 | - end | |
| 16 | - | |
| 17 | 9 | def enabled?(domain) |
| 18 | 10 | domain = Domain.find_by_name(domain) |
| 19 | 11 | domain ? !domain.google_maps_key.nil? : false |
| ... | ... | @@ -25,7 +17,7 @@ class GoogleMaps |
| 25 | 17 | end |
| 26 | 18 | |
| 27 | 19 | def initial_zoom |
| 28 | - config['initial_zoom'] || 4 | |
| 20 | + NOOSFERO_CONF['googlemaps_initial_zoom'] || 4 | |
| 29 | 21 | end |
| 30 | 22 | |
| 31 | 23 | def api_url(domain) | ... | ... |
app/models/mail_conf.rb
| 1 | 1 | class MailConf |
| 2 | 2 | class << self |
| 3 | 3 | |
| 4 | - def config_file | |
| 5 | - File.join(RAILS_ROOT, 'config', 'mail.yml') | |
| 6 | - end | |
| 7 | - | |
| 8 | - def config | |
| 9 | - if File.exists?(config_file) | |
| 10 | - YAML.load_file(config_file) | |
| 11 | - else | |
| 12 | - { 'webmail_url' => 'http://webmail.example.com' } | |
| 13 | - end | |
| 4 | + def default_webmail_url | |
| 5 | + 'http://webmail.example.com' | |
| 14 | 6 | end |
| 15 | 7 | |
| 16 | 8 | def enabled? |
| 17 | - config['enabled'] || false | |
| 9 | + NOOSFERO_CONF['mail_enabled'] || false | |
| 18 | 10 | end |
| 19 | 11 | |
| 20 | 12 | def webmail_url(username, domain) |
| 21 | - config['webmail_url'] % [username, domain] | |
| 13 | + (NOOSFERO_CONF['webmail_url'] || default_webmail_url) % [username, domain] | |
| 22 | 14 | end |
| 23 | 15 | |
| 24 | 16 | end | ... | ... |
app/views/content_viewer/view_page.rhtml
| ... | ... | @@ -101,21 +101,14 @@ |
| 101 | 101 | |
| 102 | 102 | <%= display_source_info(@page) %> |
| 103 | 103 | |
| 104 | -<% | |
| 105 | - # AddThis Button | |
| 106 | - if block_given? && web2_conf['addthis'] | |
| 107 | - opts = web2_conf['addthis'] | |
| 108 | -%> | |
| 104 | +<% if NOOSFERO_CONF['addthis_enabled'] %> | |
| 109 | 105 | <div id="addThis"> |
| 110 | 106 | <script type="text/javascript"> |
| 111 | 107 | addthis_brand = '<%= escape_javascript( @environment.name ) %>'; |
| 112 | -<%= | |
| 113 | - str = '' | |
| 114 | - opts.each { |k, v| | |
| 115 | - str += ' addthis_'+ k +' = "'+ escape_javascript( v ) +"\";\n" | |
| 116 | - } | |
| 117 | - str | |
| 118 | -%></script> | |
| 108 | + addthis_pub = '<%= escape_javascript( NOOSFERO_CONF['addthis_pub'] ) %>'; | |
| 109 | + addthis_logo = '<%= escape_javascript( NOOSFERO_CONF['addthis_logo'] ) %>'; | |
| 110 | + addthis_options = '<%= escape_javascript( NOOSFERO_CONF['addthis_options'] ) %>'; | |
| 111 | +</script> | |
| 119 | 112 | <a href="http://www.addthis.com/bookmark.php" id="bt_addThis" target="_blank" onmouseover="return addthis_open(this, '', '[URL]')" onmouseout="addthis_close()" onclick="return addthis_sendto()"><img src="/images/bt-bookmark.gif" width="53" height="16" border="0" alt="" /></a><script type="text/javascript" src="http://s7.addthis.com/js/152/addthis_widget.js"></script> |
| 120 | 113 | </div> |
| 121 | 114 | <% end %> | ... | ... |
| ... | ... | @@ -0,0 +1 @@ |
| 1 | +NOOSFERO_CONF = YAML.load_file("#{RAILS_ROOT}/config/noosfero.yml")[RAILS_ENV] | ... | ... |
config/mail.yml.dist
| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | +development: &DEVELOPMENT | |
| 2 | + mail_enabled: true | |
| 3 | + webmail_url: "http://localhost.localdomain/" | |
| 4 | + addthis_enabled: true | |
| 5 | + addthis_pub: your-user-name | |
| 6 | + addthis_logo: http://localhost:3000/images/logo-200x50.png | |
| 7 | + addthis_options: favorites, email, digg, delicious, technorati, slashdot, twitter, more | |
| 8 | + gravatar: wavatar | |
| 9 | + googlemaps_initial_zoom: 4 | |
| 10 | + | |
| 11 | +test: &TEST | |
| 12 | + <<: *DEVELOPMENT | |
| 13 | + | |
| 14 | +production: | ... | ... |
config/web2.0.yml.dist
| ... | ... | @@ -1,12 +0,0 @@ |
| 1 | -# This file configures all Web 2.0 services used by this noosfero instalation | |
| 2 | - | |
| 3 | -# You can add (or remove) any addthis option here. | |
| 4 | -# Know more: http://www.addthis.com/customization.php | |
| 5 | -addthis: | |
| 6 | - pub: your-user-name | |
| 7 | - logo: http://localhost:3000/images/logo-200x50.png | |
| 8 | - options: favorites, email, digg, delicious, technorati, slashdot, twitter, more | |
| 9 | -googlemaps: | |
| 10 | - key: <id google> | |
| 11 | -gravatar: | |
| 12 | - default: wavatar |
gitignore.example
test/test_helper.rb
| ... | ... | @@ -250,4 +250,16 @@ class ActionController::IntegrationTest |
| 250 | 250 | |
| 251 | 251 | end |
| 252 | 252 | |
| 253 | +def with_constants(constants, &block) | |
| 254 | + old_constants = Hash.new | |
| 255 | + constants.each do |constant, val| | |
| 256 | + old_constants[constant] = Object.const_get(constant) | |
| 257 | + silence_stderr{ Object.const_set(constant, val) } | |
| 258 | + end | |
| 259 | + block.call | |
| 260 | + old_constants.each do |constant, val| | |
| 261 | + silence_stderr{ Object.const_set(constant, val) } | |
| 262 | + end | |
| 263 | +end | |
| 264 | + | |
| 253 | 265 | Profile | ... | ... |
test/unit/application_helper_test.rb
| ... | ... | @@ -8,17 +8,6 @@ class ApplicationHelperTest < Test::Unit::TestCase |
| 8 | 8 | self.stubs(:session).returns({}) |
| 9 | 9 | end |
| 10 | 10 | |
| 11 | - should 'retrieve conf from "web2.0" config file' do | |
| 12 | - yml = RAILS_ROOT + '/config/web2.0.yml' | |
| 13 | - conf = { | |
| 14 | - 'addthis'=>{'pub'=>'mylogin', 'options'=>'favorites, email'}, | |
| 15 | - 'gravatar'=>{'default'=>'wavatar'} | |
| 16 | - } | |
| 17 | - File.expects(:exists?).with(yml).returns(true) | |
| 18 | - YAML.expects(:load_file).with(yml).returns(conf) | |
| 19 | - assert_equal conf, web2_conf | |
| 20 | - end | |
| 21 | - | |
| 22 | 11 | should 'calculate correctly partial for object' do |
| 23 | 12 | self.stubs(:params).returns({:controller => 'test'}) |
| 24 | 13 | |
| ... | ... | @@ -436,12 +425,13 @@ class ApplicationHelperTest < Test::Unit::TestCase |
| 436 | 425 | end |
| 437 | 426 | |
| 438 | 427 | should 'generate a gravatar url' do |
| 439 | - stubs(:web2_conf).returns({"gravatar" => {"default" => "wavatar"}}) | |
| 440 | - url = str_gravatar_url_for( 'rms@gnu.org', :size => 50 ) | |
| 441 | - assert_match(/^http:\/\/www\.gravatar\.com\/avatar\.php\?/, url) | |
| 442 | - assert_match(/(\?|&)gravatar_id=ed5214d4b49154ba0dc397a28ee90eb7(&|$)/, url) | |
| 443 | - assert_match(/(\?|&)d=wavatar(&|$)/, url) | |
| 444 | - assert_match(/(\?|&)size=50(&|$)/, url) | |
| 428 | + with_constants :NOOSFERO_CONF => {'gravatar' => 'crazyvatar'} do | |
| 429 | + url = str_gravatar_url_for( 'rms@gnu.org', :size => 50 ) | |
| 430 | + assert_match(/^http:\/\/www\.gravatar\.com\/avatar\.php\?/, url) | |
| 431 | + assert_match(/(\?|&)gravatar_id=ed5214d4b49154ba0dc397a28ee90eb7(&|$)/, url) | |
| 432 | + assert_match(/(\?|&)d=crazyvatar(&|$)/, url) | |
| 433 | + assert_match(/(\?|&)size=50(&|$)/, url) | |
| 434 | + end | |
| 445 | 435 | end |
| 446 | 436 | |
| 447 | 437 | should 'use theme passed via param when in development mode' do | ... | ... |
test/unit/google_maps_test.rb
| ... | ... | @@ -4,8 +4,6 @@ class GoogleMapsTest < Test::Unit::TestCase |
| 4 | 4 | |
| 5 | 5 | def setup |
| 6 | 6 | @domain = fast_create(Domain, :name => 'example-domain', :google_maps_key => 'DOMAIN_KEY') |
| 7 | - # force loading of config at every test | |
| 8 | - GoogleMaps.erase_config | |
| 9 | 7 | end |
| 10 | 8 | |
| 11 | 9 | attr_reader :domain |
| ... | ... | @@ -19,18 +17,14 @@ class GoogleMapsTest < Test::Unit::TestCase |
| 19 | 17 | assert !GoogleMaps.enabled?('domain-without-key') |
| 20 | 18 | end |
| 21 | 19 | |
| 22 | - should 'not crash if config not informed' do | |
| 23 | - GoogleMaps.stubs(:config).returns({}) | |
| 24 | - assert_equal({}, GoogleMaps.config) | |
| 25 | - end | |
| 26 | - | |
| 27 | 20 | should 'point correctly to google maps' do |
| 28 | 21 | assert_equal 'http://maps.google.com/maps?file=api&v=2&key=DOMAIN_KEY', GoogleMaps.api_url(domain.name) |
| 29 | 22 | end |
| 30 | 23 | |
| 31 | 24 | should 'provide initial_zoom setting' do |
| 32 | - GoogleMaps.stubs(:config).returns({'initial_zoom' => 2}) | |
| 33 | - assert_equal 2, GoogleMaps.initial_zoom | |
| 25 | + with_constants :NOOSFERO_CONF => {'googlemaps_initial_zoom' => 2} do | |
| 26 | + assert_equal 2, GoogleMaps.initial_zoom | |
| 27 | + end | |
| 34 | 28 | end |
| 35 | 29 | |
| 36 | 30 | should 'use 4 as default initial_zoom' do | ... | ... |
| ... | ... | @@ -0,0 +1,14 @@ |
| 1 | +require File.dirname(__FILE__) + '/../test_helper' | |
| 2 | + | |
| 3 | +class LoadConfigTest < Test::Unit::TestCase | |
| 4 | + | |
| 5 | + should 'ensure YAML file exists' do | |
| 6 | + assert File.exists?("#{RAILS_ROOT}/config/noosfero.yml") | |
| 7 | + end | |
| 8 | + | |
| 9 | + should 'ensure YAML file was loaded' do | |
| 10 | + assert NOOSFERO_CONF | |
| 11 | + assert_kind_of Hash, NOOSFERO_CONF | |
| 12 | + end | |
| 13 | + | |
| 14 | +end | ... | ... |
test/unit/mail_conf_test.rb
| ... | ... | @@ -2,36 +2,23 @@ require File.dirname(__FILE__) + '/../test_helper' |
| 2 | 2 | |
| 3 | 3 | class MailConfTest < ActiveSupport::TestCase |
| 4 | 4 | |
| 5 | - CONFIG_FILE = '/not/existing.yml' | |
| 6 | - | |
| 7 | - should 'use config/mail.yml as config' do | |
| 8 | - assert_equal RAILS_ROOT + '/config/mail.yml', MailConf.config_file | |
| 9 | - end | |
| 10 | - | |
| 11 | 5 | should 'enable if told to' do |
| 12 | - MailConf.stubs(:config_file).returns(CONFIG_FILE) | |
| 13 | - File.expects(:exists?).with(CONFIG_FILE).returns(true) | |
| 14 | - YAML.expects(:load_file).with(CONFIG_FILE).returns({ 'enabled' => true}) | |
| 6 | + NOOSFERO_CONF['mail_enabled'] = true | |
| 15 | 7 | assert_equal true, MailConf.enabled? |
| 16 | 8 | end |
| 17 | 9 | |
| 18 | 10 | should 'disable if told to' do |
| 19 | - MailConf.stubs(:config_file).returns(CONFIG_FILE) | |
| 20 | - File.expects(:exists?).with(CONFIG_FILE).returns(true) | |
| 21 | - YAML.expects(:load_file).with(CONFIG_FILE).returns({ 'enabled' => false }) | |
| 11 | + NOOSFERO_CONF['mail_enabled'] = false | |
| 22 | 12 | assert_equal false, MailConf.enabled? |
| 23 | 13 | end |
| 24 | 14 | |
| 25 | - should 'disable if config file not present' do | |
| 26 | - MailConf.stubs(:config_file).returns(CONFIG_FILE) | |
| 27 | - File.expects(:exists?).with(CONFIG_FILE).returns(false) | |
| 15 | + should 'disable by default' do | |
| 16 | + NOOSFERO_CONF['mail_enabled'] = nil | |
| 28 | 17 | assert_equal false, MailConf.enabled? |
| 29 | 18 | end |
| 30 | 19 | |
| 31 | 20 | should 'provide webmail url preference' do |
| 32 | - MailConf.stubs(:config_file).returns(CONFIG_FILE) | |
| 33 | - File.expects(:exists?).with(CONFIG_FILE).returns(true) | |
| 34 | - YAML.expects(:load_file).with(CONFIG_FILE).returns({ 'enabled' => false, 'webmail_url' => 'http://some.url/webmail/%s/%s' }) | |
| 21 | + NOOSFERO_CONF['webmail_url'] = 'http://some.url/webmail/%s/%s' | |
| 35 | 22 | assert_equal 'http://some.url/webmail/login/example.com', MailConf.webmail_url('login', 'example.com') |
| 36 | 23 | end |
| 37 | 24 | ... | ... |