Disable Active Storage in Rails 5.2 - rails-activestorage

Upgrading Rails to 5.2, and I found out that I must commit the storage.yml into version control. I don't plan to use ActiveStorage. Is there a way to disable it?

Remove next line from config/application.rb
require "active_storage/engine"
Remove next line from environments config/environments/*.rb
config.active_storage.service = :local
Remove next line from app/assets/javascripts/application.js
//= require activestorage
ActiveStorage rails routes will vanish
In case there is statement require 'rails/all' in application.rb then you can use solution provided below where you need to require dependency by dependency and to omit active_storage.

The only solution I've found so far is in config/application.rb, replacing:
require 'rails/all'
With:
require "rails"
# Include each railties manually, excluding `active_storage/engine`
%w(
active_record/railtie
action_controller/railtie
action_view/railtie
action_mailer/railtie
active_job/railtie
action_cable/engine
rails/test_unit/railtie
sprockets/railtie
).each do |railtie|
begin
require railtie
rescue LoadError
end
end
which is taken from Rails' source.

Remove lines like the following from config/environments/*.rb
config.active_storage.service = :local
Rails will then not load the yaml file.

Related

Inserting a string into a file with Puppet with iteration

I'm running a .each iteration with Puppet:
$extensions_list = ["RT::Extension::ActivityReports",
"RT::Extension::JSGantt",
]
$extensions_list.each |$extls| {
cpan { $extls:
ensure => present,
require => Class['::cpan'],
}
}
As you can see I'm just installing two Perl modules with a cpan module from Puppet Forge. This part works just as expected.
What I would like to happen is each time a new Perl module is installed in this way it will be added to added to the config line of RT (Request Tracker). That file lives here:
/opt/rt4/etc/RT_SiteConfig.pm
and the format of the line is:
Plugins('RT::MODULE::ONE RT::MODULE::TWO');
So, in the end I would like it to look like this:
Plugins('RT::Extension::ActivityReports RT::Extension::JSGantt');
Having Puppet add each new module in turn to that line as they are installed. As in if I decided to install RT::Authen::ExternalAuth a month from now I can just add it to my above iteration and after Puppet runs this:
Plugins('RT::Extension::ActivityReports RT::Extension::JSGantt');
would become this:
Plugins('RT::Extension::ActivityReports RT::Extension::JSGantt RT::Authen::ExternalAuth');
With no other intervention on my part then to add it to the iteration statement.
Assuming that you don't have any other Puppet code managing /opt/rt4/etc/RT_SiteConfig.pm, then you have a few options for making sure that you have the correct Plugins line in that file.
If you only want to manage just that one line then I would recommend using join and a file_line resource from stdlib.
For example:
include stdlib
$ext_string = join($extensions_list, ' ')
file_line { 'rt extensions':
ensure => present,
path => '/opt/rt4/etc/RT_SiteConfig.pm',
line => "Plugins('${ext_string}');",
match => '^\s*Plugins\(',
}
This will add a line containing the list of plugins and will replace any existing plugin line.
If there are several settings that you want to manage then it might make sense to just templatize the entire file. In that case you could simply have the line
Plugins('<%= #extensions_list.join(' ') %>');
in your template.

invalid SSL_version specified at /usr/local/share/perl5/IO/Socket/SSL.pm line 598

When I try send an email using Net::SMTP::TLS from perl script I am getting below:
invalid SSL_version specified at /usr/local/share/perl5/IO/Socket/SSL.pm line 598
OS:Linux
You know what the problem is and what I have to do to fix it?
Thank you!
Net::SMTP::TLS is not maintained since 10 years and it is broken in that it causes exactly the error you describe. If you insist of using this broken module you need to fix it. Change the code in line 182 to remove the invalid setting of SSL_version:
if(not IO::Socket::SSL::socket_to_SSL($me->{sock},
- SSL_version => "SSLv3 TLSv1")){
+ )){
croak "Couldn't start TLS: ".IO::Socket::SSL::errstr."\n";
}
Instead of using the broken and unmaintained Net::SMTP::TLS or its successor but again unmaintained Net::SMTP::TLS::ButMaintained I suggest you use the latest version of Net::SMTP which has built in support for both kinds of SMTP+SSL and for IPv6 too. It comes already by default with newer Perl versions.
If using a new Net::SMTP is not possible you might use Net::SSLGlue::SMTP which monkey patches older Net::SMTP version to add SSL support. And there is also Net::SMTPS which provides a similar functionality.
Let me summarize as I had just fixed my problem (Thanks to the contributors above)
Open [Perl_dir]/site/lib/Net/SMTP/TLS.pm
Look for line 182, which looks like
if(not IO::Socket::SSL::socket_to_SSL($me->{sock}, SSL_version=>"SSLv3 TLSv1")){
Changed to line below by removing "SSL_version=>"SSLv3 TLSv1"
if(not IO::Socket::SSL::socket_to_SSL($me->{sock})){
Save [Perl_dir]/site/lib/Net/SMTP/TLS.pm
Other ref URL:
http://www.pclinuxos.com/forum/index.php/topic,143156.msg1223280.html#msg1223280

Seaside - How do I install Scriptaculous on a clean Seaside install (via Configuration Browser) on Pharo?

I used the method described here to install Seaside3 on Pharo. All is well, but Scriptaculous doesn't come preinstalled. How do I get it?
Seaside3 :
1: Go to the configuration manager
2: Select the Seaside 3 configuration. Click on Install.
3: Wait while it loads. Takes a couple of minutes on an i7 and a decent network link.
4: Open a Workspace and start a ZincServerAdaptor on the port you like (here 8080):
ZnZincServerAdaptor startOn: 8080. (then CMD+d for Do It)
7: Access Seaside from your browser.
8: Install Scriptaculous, but how?
Johan B's input:
http://forum.world.st/Seaside-How-do-I-install-Scriptaculous-on-a-clean-Seaside-install-via-Configuration-Browser-on-Pharo-td4802930.html
Pharo’s Configuration browser loads the default group of the Metacello configuration, which unfortunately was set to ‘Core’ for Seaside 3.1.
So, you will need to load additional groups programmatically:
(ConfigurationOfSeaside3 project version: #stable) load: #('Scriptaculous' 'JSON')
If you want to get the list of possible groups to load, inspect:
(ConfigurationOfSeaside3 project version: #stable) groups
Install from scratch with:
(ConfigurationOfSeaside3 project version: #stable) load: #('default' 'Scriptaculous' 'JSON')
This is something we fixed for Seaside 3.2, where the default will load everything to help newcomers.
We prefer not to change the existing 3.1 configuration versions to not break existing uses, but it’s fixed in the upcoming version.
Btw, Scriptaculous is really outdated. You will prefer to use jQuery and jQuery-UI (or any other JS framework…)
My findings on the subject:
Well, finally figured it out.
The packages needed for Scriptaculous to work are listed in the book here:
http://book.seaside.st/book/web-20/scriptaculous/frameworks/installation
Then you need to find a repository to get them from, after a little poking around here:
http://www.smalltalkhub.com/mc/Seaside/
I chose the Seaside31 repository, which is what I apparently managed to install a few hours ago.
http://www.smalltalkhub.com/mc/Seaside/Seaside31/main
Then I had to Do-It a couple of times on (maybe there is a faster way to do this):
Gofer new
url:'http://www.smalltalkhub.com/mc/Seaside/Seaside31/main';
package: 'Javascript-Core';
load.
Gofer new
url:'http://www.smalltalkhub.com/mc/Seaside/Seaside31/main';
package: 'Prototype-Core';
load.
Gofer new
url:'http://www.smalltalkhub.com/mc/Seaside/Seaside31/main';
package: 'Scriptaculous-Core';
load.
Gofer new
url:'http://www.smalltalkhub.com/mc/Seaside/Seaside31/main';
package: 'Scriptaculous-Components';
load.
For those looking to install jQuery into Seaside can use these:
Gofer new
url:'http://www.smalltalkhub.com/mc/Seaside/Seaside31/main';
package: 'Javascript-Core';
load.
Gofer new
url:'http://www.smalltalkhub.com/mc/Seaside/Seaside31/main';
package: 'JQuery-Core';
load.
Gofer new
url:'http://www.smalltalkhub.com/mc/Seaside/Seaside31/main';
package: 'JQuery-UI'; "notice that there is no -Core on this one, I don't know why"
load.
If one wants to load a full fledged configuration in Pharo 4.0 (after having loaded Seaside from the configuration browser):
| config groups |
config := (ConfigurationOfSeaside3 project version: #release3).
"Inspect this in case you want to see what's available"
groups := config groups.
"Load the usual suspects"
config load: #('OneClick' 'Javascript' 'Javascript Tests' 'JQuery' 'JQuery Tests' 'JQueryUI' 'JQueryUI Tests' 'JQueryUI Examples' 'REST' 'REST Tests' 'JSON' 'JSON Tests').
An additional interesting configuration to load is Bootstrap.
Check the configuration browser.

PHP deprecated warnings on Drupal pages despite turning them off in php.ini

I have PHP deprecated errors flooding log files and Drupal status pages like this:
: Function ereg() is deprecated in mysite/includes/file.inc on line 893.
I should be able to turn off E_DEPRECATED errors in my php.ini, but it is having no effect despite being set to:
error_reporting = E_ALL & ~E_DEPRECATED
phpInfo() reports error_reporting master value and local value both 22527.
I did a
grep -R error_reporting
in my document root in the hopes of finding any hard coded error levels and no luck:
./includes/common.inc: // If the # error suppression operator was used, error_reporting will have
./includes/common.inc: if (error_reporting() == 0) {
./modules/system/system.module: 'page arguments' => array('system_error_reporting_settings'),
./modules/system/system.admin.inc:function system_error_reporting_settings() {
./modules/system/system.install: $err = error_reporting(0);
./modules/system/system.install: error_reporting($err);
Nothing that I can see that is supect except possibly the first line in system.install but if I'm right that should turn all errors OFF.
I'm not setting error_reporting in .htaccess, but doing that does not have any effect either.
I'm hoping that there is a solution that doesn't involve hard coding error levels in common.inc (which DOES work, I've tried - but obviously undesirable).
I know the deprecated errors are a result of upgrading to PHP 5.3, but downgrading PHP is not option (new sites are going live now on the same server that have been tested on 5.3, and the sites where these errors occur have 2 months to live). I also cannot upgrade to Drupal versions that play nicely with 5.3 as unfortunately the previous owner haxxed the core modules without documenting his changes.
Version stuff:
PHP 5.3.2-1, Ubuntu 10.04, Drupal 6.13 on one site, 6.5 (!!1!) on the other, Apache 2.2
Did you try editing index.php to be
error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED);
require_once './includes/bootstrap.inc';
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
I have used this on my php.ini file and could hide those deprecated errors. Hope it helps you! =)
error_reporting = E_ALL & ~E_DEPRECATED & -E_WARNING
I don't know about disabling error reporting but you can replace all ereg functions by preg_match..!

PHPUnit + Kohana: Undefined index: HTTP_HOST

Trying to run PHPUnit on my Kohana 2.3.4 install:
phpunit --colors --bootstrap=index.php ../../modules/phpunit/libraries/Tests.php
Getting an error at one of my modules:
<p><tt>modules/core/helpers/MY_url.php <strong>[118]:</strong></tt></p>
<p><code class="block">Undefined index: HTTP_HOST</code></p>
I realize this is happening since I'm going via command line so HTTP_HOST won't be set. Is there any way around this without rewriting HTTP_HOST in that module? I know I could rewrite it to be exec(hostname), but am trying to avoid rewriting every instance of HTTP_HOST in my code.
Any workaround you can think of?
Quick and dirty way to fix it would be to set the value in the bootstrap if you're in cli mode.
The "better" way would be to set it in the test's setUp method
Is this $_SERVER['HTTP_HOST']?
If so, have a look at adding an xml config file and setting it in there:
https://phpunit.de/manual/current/en/appendixes.configuration.html
We actually decided to use a different bootstrap, load in variables there, then require the Kohana index file.
Works like a charm. Thanks, Matt, for getting me started down that path.

Resources