Sha256: f4a51a5925f811f8daacc06a960f0ec34d2763caba26d9946f2ff541514fb7cf

Contents?: true

Size: 519 Bytes

Versions: 6

Compression:

Stored size: 519 Bytes

Contents

# frozen_string_literal: true

module Gamefic
  module Scope
    # The Family scope returns an entity's parent, siblings, and descendants.
    #
    class Family < Base
      def matches
        result = context.parent ? [context.parent] : []
        result.concat subquery_accessible(context.parent)
        result.delete context
        context.children.each do |c|
          result.push c
          result.concat subquery_accessible(c)
        end
        result.uniq
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
gamefic-3.4.0 lib/gamefic/scope/family.rb
gamefic-3.3.0 lib/gamefic/scope/family.rb
gamefic-3.2.1 lib/gamefic/scope/family.rb
gamefic-3.2.0 lib/gamefic/scope/family.rb
gamefic-3.1.0 lib/gamefic/scope/family.rb
gamefic-3.0.0 lib/gamefic/scope/family.rb