Commit 3559327655dc6ee0b12130728261ccca6e4245e5
Exists in
theme-brasil-digital-from-staging
and in
9 other branches
Merge branch 'master' into stable
Showing
5 changed files
with
68 additions
and
14 deletions
Show diff stats
app/helpers/application_helper.rb
... | ... | @@ -1380,7 +1380,7 @@ module ApplicationHelper |
1380 | 1380 | # are old things that do not support it we are keeping this hot spot. |
1381 | 1381 | html = @plugins.pipeline(:parse_content, html, source).first |
1382 | 1382 | end |
1383 | - html.html_safe | |
1383 | + html && html.html_safe | |
1384 | 1384 | end |
1385 | 1385 | |
1386 | 1386 | def convert_macro(html, source) | ... | ... |
db/migrate/20140724134601_fix_yaml_encoding.rb
1 | 1 | class FixYamlEncoding < ActiveRecord::Migration |
2 | 2 | def self.up |
3 | - fix_encoding(Block, 'settings') | |
4 | - fix_encoding(Product, 'data') | |
5 | - fix_encoding(Environment, 'settings') | |
6 | - fix_encoding(Profile, 'data') | |
7 | - fix_encoding(ActionTracker::Record, 'params') | |
8 | - fix_encoding(Article, 'setting') | |
9 | - fix_encoding(Task, 'data') | |
3 | + ActiveRecord::Base.transaction do | |
4 | + fix_encoding(Environment, 'settings') | |
5 | + fix_encoding(Profile, 'data') | |
6 | + fix_encoding(Product, 'data') | |
7 | + fix_encoding(ActionTracker::Record, 'params') | |
8 | + fix_encoding(Article, 'setting') | |
9 | + fix_encoding(Task, 'data') | |
10 | + fix_encoding(Block, 'settings') | |
11 | + end | |
10 | 12 | end |
11 | 13 | |
12 | 14 | def self.down |
... | ... | @@ -16,15 +18,34 @@ class FixYamlEncoding < ActiveRecord::Migration |
16 | 18 | private |
17 | 19 | |
18 | 20 | def self.fix_encoding(model, param) |
19 | - result = model.find(:all, :conditions => "#{param} LIKE '%!binary%'") | |
21 | + result = model.all | |
20 | 22 | puts "Fixing #{result.count} rows of #{model} (#{param})" |
21 | - result.each {|r| r.update_column(param, deep_fix(r.send(param)).to_yaml)} | |
23 | + result.each do |r| | |
24 | + begin | |
25 | + yaml = r.send(param) | |
26 | + # if deserialization failed then a string is returned | |
27 | + if yaml.is_a? String | |
28 | + yaml.gsub! ': `', ': ' | |
29 | + yaml = YAML.load yaml | |
30 | + end | |
31 | + r.update_column param, deep_fix(yaml).to_yaml | |
32 | + rescue => e | |
33 | + puts "FAILED #{r.inspect}" | |
34 | + puts e.message | |
35 | + end | |
36 | + end | |
22 | 37 | end |
23 | 38 | |
24 | 39 | def self.deep_fix(hash) |
25 | 40 | hash.each do |value| |
26 | - value.force_encoding('UTF-8') if value.is_a?(String) && !value.frozen? && value.encoding == Encoding::ASCII_8BIT | |
27 | 41 | deep_fix(value) if value.respond_to?(:each) |
42 | + if value.is_a? String and not value.frozen? | |
43 | + if value.encoding == Encoding::ASCII_8BIT | |
44 | + value.force_encoding "utf-8" | |
45 | + else | |
46 | + value.encode!("iso-8859-1").force_encoding("utf-8") | |
47 | + end | |
48 | + end | |
28 | 49 | end |
29 | 50 | end |
30 | 51 | ... | ... |
plugins/remote_user/test/functional/remote_user_plugin_test.rb
... | ... | @@ -61,6 +61,8 @@ class AccountControllerTest < ActionController::TestCase |
61 | 61 | end |
62 | 62 | |
63 | 63 | should 'create a new user with remote_user_data even if there is a logged user but the remote user is different' do |
64 | + users = User.count | |
65 | + | |
64 | 66 | user = create_user('testuser', :email => 'testuser@example.com', :password => 'test', :password_confirmation => 'test') |
65 | 67 | user.activate |
66 | 68 | |
... | ... | @@ -71,7 +73,7 @@ class AccountControllerTest < ActionController::TestCase |
71 | 73 | @request.env["HTTP_REMOTE_USER_DATA"] = '{"email":"another_user@domain.com", "name":"Another User"}' |
72 | 74 | get :index |
73 | 75 | |
74 | - assert_equal 2, User.count | |
76 | + assert_equal users + 2, User.count | |
75 | 77 | assert_equal "another_user", User.last.login |
76 | 78 | assert_equal true, User.last.activated? |
77 | 79 | assert_equal User.last.id, session[:user] |
... | ... | @@ -96,6 +98,8 @@ class AccountControllerTest < ActionController::TestCase |
96 | 98 | end |
97 | 99 | |
98 | 100 | should 'create a new user without remote_user_data even if there is a logged user but the remote user is different' do |
101 | + users = User.count | |
102 | + | |
99 | 103 | user = create_user('testuser', :email => 'testuser@example.com', :password => 'test', :password_confirmation => 'test') |
100 | 104 | user.activate |
101 | 105 | |
... | ... | @@ -104,7 +108,7 @@ class AccountControllerTest < ActionController::TestCase |
104 | 108 | @request.env["HTTP_REMOTE_USER"] = 'another_user' |
105 | 109 | get :index |
106 | 110 | |
107 | - assert_equal 2, User.count | |
111 | + assert_equal users + 2, User.count | |
108 | 112 | assert_equal "another_user", User.last.login |
109 | 113 | assert_equal true, User.last.activated? |
110 | 114 | assert_equal User.last.id, session[:user] | ... | ... |
script/development
... | ... | @@ -5,8 +5,13 @@ set -e |
5 | 5 | export RAILS_ENV=development |
6 | 6 | |
7 | 7 | stop() { |
8 | + echo "Stopping ..." | |
8 | 9 | ./script/delayed_job stop |
9 | 10 | ./script/feed-updater stop |
11 | + if [ -f tmp/pids/thin.pid ]; then | |
12 | + kill -9 $(cat tmp/pids/thin.pid) | |
13 | + rm -f tmp/pids/thin.pid | |
14 | + fi | |
10 | 15 | exit |
11 | 16 | } |
12 | 17 | |
... | ... | @@ -15,7 +20,18 @@ start() { |
15 | 20 | ./script/feed-updater start |
16 | 21 | ./script/delayed_job start |
17 | 22 | trap stop INT TERM |
18 | - rails s $@ | |
23 | + if [ -z "$RAILS_RELATIVE_URL_ROOT" ]; then | |
24 | + rails s $@ | |
25 | + else | |
26 | + mkdir -p log | |
27 | + touch log/development.log | |
28 | + thin \ | |
29 | + --prefix "$RAILS_RELATIVE_URL_ROOT" \ | |
30 | + --pid tmp/pids/thin.pid \ | |
31 | + --daemonize \ | |
32 | + start | |
33 | + tail -n 0 -f log/development.log || true | |
34 | + fi | |
19 | 35 | } |
20 | 36 | |
21 | 37 | start $@ | ... | ... |