SslRequirement module

This is a question is about the SslRequirement rails plugin. However,
it’s also about core concepts behind ruby modules.

Here’s the code for the plugin.

http://pastie.caboo.se/73773

Here’s an example of how you use it.

http://pastie.caboo.se/73774

I’ve used this plugin all over the place in my app. But now, I want
to do some performance testing on the app WITHOUT using https (mainly
because I don’t have control over port 443 on the test machine).
Ideally, I want to add a toggle variable to the module that I can set
from an environment file or application_controller if I must. What I
don’t want to do is go around the app and comment out all my
ssl_required statements.

I’m at a loss as where to inject this toggle, and whether it should be
a class variable or class instance variable or maybe something
completely different. Any and all advice is welcome.

–RYAN

PS - Yes, I’ve double posted this in the rails talk and ruby
discussion groups.

You could change the third line of the ensure_proper_protocol method
in the plugin like so:

if ssl_required? && !request.ssl? && RAILS_ENV == ‘production’

Or you could use your imagination and make some similar kind of
change somewhere in that method based on an environment variable, a
constant you set in one of the environment config files, etc.

Basically, you just want that method to not redirect and return
false, and there a number of ways you could accomplish that.


Benjamin C.
http://www.bencurtis.com/ – blog
http://agilewebdevelopment.com/rails-ecommerce – build e-commerce
sites with Rails

Sure, you could do a variety of more clever things like stub a method
in the plugin that can be overridden in the controller, like
acts_as_authenticated does with the authorized method. However, I
don’t know that doing something like that is really better than a
simple tweak to the plugin.

Ya, I saw that in another post here. That would work fine, but I feel
there is a better way – A meta-programming way. Unfortunately, I’m
still getting my feet wet with injecting class variables / class
instance variables via eval. I know it’s more advanced then most
rails talk, but any insight is appreciated.

– RYAN