class ActsInRelation::Roles::Target

Public Instance Methods

define() click to toggle source
# File lib/acts_in_relation/roles/target.rb, line 4
      def define
        actions.each do |action|
          @class.class_eval <<-RUBY
            has_many :"#{action.pluralize}_as_target",
              foreign_key: :"target_#{target}_id",
              class_name: action.capitalize,
              dependent: :destroy

            has_many :"#{peoplize(action)}",
              through: :"#{action.pluralize}_as_target",
              source: :"#{source}"

            def #{pastize(action)}_by?(source)
              source.#{action.pluralize}.exists?(target_#{target}_id: id)
            end
          RUBY
        end
      end