Sha256: 4859b5434927fc5f6964ec63edeac9b5fd1a9c2c01a4bbcad5f1954fcee8c6bc

Contents?: true

Size: 655 Bytes

Versions: 3

Compression:

Stored size: 655 Bytes

Contents

module ActsInRelation
  module Target
    def define
      with.each do |action|
        action.extend ActsInRelation::Supports::Verb

        class_object.class_eval <<-RUBY
          has_many :"#{action.pluralize}_as_target",
            foreign_key: :"target_#{target}_id",
            class_name: action.capitalize,
            dependent: :destroy

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

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

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
acts_in_relation-0.1.1 lib/acts_in_relation/target.rb
acts_in_relation-0.1.0 lib/acts_in_relation/target.rb
acts_in_relation-0.0.1 lib/acts_in_relation/target.rb