module Ensurance::HashEnsure::ClassMethods
Public Instance Methods
ensure(thing)
click to toggle source
# File lib/ensurance/hash_ensure.rb, line 13 def ensure(thing) case thing.class.name when 'NilClass' nil when 'Hash', 'HashWithIndifferentAccess' thing when 'String' JSON.parse(thing) when 'ActionController::UnfilteredParameters', 'ActionController::Parameters' thing.permit!.to_h else if thing.respond_to?(:to_h) begin thing.to_h rescue TypeError raise ArgumentError, "Unhandled Type for Hash to ensure: #{thing.class}" end else raise ArgumentError, "Unhandled Type for Hash to ensure: #{thing.class}" end end end
ensure!(thing)
click to toggle source
# File lib/ensurance/hash_ensure.rb, line 36 def ensure!(thing) result = self.ensure(thing) raise ArgumentError, "Cannot Hash.ensure(#{thing})" unless result result end