Module: Riaction::Riaction::Event::InstanceMethods

Defined in:
lib/riaction/riaction.rb

Instance Method Summary collapse

Instance Method Details

#riaction_event_paramsObject



352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
# File 'lib/riaction/riaction.rb', line 352

def riaction_event_params
  resolved_hash = {}
  self.class.riaction_events.each_pair do |event_name, args|
    resolved_profile = riaction_resolve_param(args[:profile])
    if  resolved_profile.nil? ||
        !resolved_profile.kind_of?(ActiveRecord::Base) ||
        !resolved_profile.class.riactionary? ||
        !resolved_profile.class.riaction_profile? ||
        resolved_profile.class.riaction_profile_types_defined == 0
      next
    else
      resolved_hash[event_name] = {}
    end
    profile_keys = resolved_profile.riaction_profile_keys
    unless args[:profile_type].nil?
      if profile_keys[args[:profile_type]].nil?
        raise ConfigurationError.new("#{resolved_profile.class} does not define profile type #{args[:profile_type]} (see event #{event_name} on #{self.class})")
      else
        resolved_hash[event_name][:profile] = {
          :type => args[:profile_type],
          :id_type => profile_keys[args[:profile_type]].first.first,
          :id => profile_keys[args[:profile_type]].first.last
        }
      end
    else
      resolved_hash[event_name][:profile] = {
        :type => profile_keys.first.first,
        :id_type => profile_keys.first.last.first.first,
        :id => profile_keys.first.last.first.last
      }
    end
    resolved_hash[event_name][:params] = riaction_resolve_param(args[:params]).merge(riaction_resolve_param(self.class.riaction_options[:default_event_params]))
  end
  resolved_hash
end

#riaction_log_event?(name) ⇒ Boolean

Returns:

  • (Boolean)


388
389
390
391
392
# File 'lib/riaction/riaction.rb', line 388

def riaction_log_event?(name)
  riaction_resolve_param self.class.riaction_events.fetch(name)[:guard]
rescue KeyError
  raise ConfigurationError.new("#{self.class} does not define an event named '#{name}'")
end