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

Defined in:
lib/riaction/riaction.rb

Instance Method Summary collapse

Instance Method Details

#riaction_event_paramsObject



351
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
# File 'lib/riaction/riaction.rb', line 351

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)


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

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