module Memorable::Controller
Private Instance Methods
extract_memorable_options()
click to toggle source
# File lib/memorable/controller.rb, line 35 def extract_memorable_options options = ActiveSupport::HashWithIndifferentAccess.new ({ user_id: current_user.try(:id), meta: { controller: controller_name, action: action_name } }) if memorable_resource resource_previous = Hash[memorable_resource.previous_changes.map {|key, value| ["previous_#{key}", value[0]]}] resource_attributes = memorable_resource.attributes resource_options = { resource_id: memorable_resource.id, resource_type: memorable_resource.class.to_s } options[:meta].merge!(resource_previous).merge!(resource_attributes).merge!(resource_options) options.merge!(resource_options) end custom_method_name = "memorable_#{action_name}" if respond_to? custom_method_name, true custom_locals = self.send custom_method_name options[:meta].merge!(custom_locals) if custom_locals.is_a?(Hash) end options end
memorable?()
click to toggle source
# File lib/memorable/controller.rb, line 29 def memorable? Registration.registered?(controller_name, action_name) && Registration.condition_matched?(self) && response.successful? end
memorable_resource()
click to toggle source
# File lib/memorable/controller.rb, line 66 def memorable_resource @memorable_resource ||= self.instance_variable_get("@#{memorable_resource_name}") || self.send(:resource) rescue nil end
memorable_resource_name()
click to toggle source
# File lib/memorable/controller.rb, line 70 def memorable_resource_name Registration.resource_name(controller_name) || controller_name.singularize end
memorize_callback()
click to toggle source
# File lib/memorable/controller.rb, line 15 def memorize_callback return unless memorable? # prepare locals for action options = extract_memorable_options # write to database Memorable.config.journals_model.create_with_params!(options) rescue Exception => e raise e if Rails.env.development? # for debug Rails.logger.error e.message end