This is StrongParameters
from Ruby on Rails, just... without ActionController. It was literally copied from the source and reorganized so it can be used as module.
Error classes are now namespaced with StrongParameters::Error
. Other explicit references to ActionController have been removed. Please get in touch if anything lingers.
In your gemfile:
gem 'modular_strong_params', '~> 1.0.0'
lib/action_controller.rb
more or less demonstrates its use.
require 'strong_parameters'
class MyAppClass
include StrongParameters
def params
@_params ||= Parameters.new(method_that_returns_base_params_hash)
end
def params=(value)
@_params = value.is_a?(Hash) ? Parameters.new(value) : value
end
end
Those methods and the method_that_returns_base_params_hash
will need to be adapted to your environment. Alternatively, you can turn any hash into a Parameters:
StrongParameters::Parameters.new(hash)
Full credit for this code goes to those who contributed to this code in Rails.
Since this code has been copied from Rails, it will need to be maintained separately. We cannot claim to keep up on that constantly. If you come across changes to the source that are not reflected here, please submit a PR with passing tests.
Released under the MIT License.