Sha256: 0e8cf99b3b863f17725ccda919bdda46fa918e66f63b19eedc26ef0bd7a740e1

Contents?: true

Size: 1.21 KB

Versions: 11

Compression:

Stored size: 1.21 KB

Contents

class Card
  module Query
    class CardQuery
      # interpret CQL attributes that involve references from one card to another
      module ReferenceAttributes
        def self.define_reference_method methodname, reftype, ref_method, ref_field
          define_method methodname do |val|
            tie :reference,
                { ref_method => { reftype: reftype, card: val } },
                to: ref_field
          end
        end

        {
          refer_to: %w[L I],
          link_to: "L",
          include: "I",
          nest: "I"
        }.each do |methodname, reftype|
          define_reference_method methodname, reftype, :referee, :referer_id
        end

        {
          referred_to_by: %w[L I],
          linked_to_by: "L",
          included_by: "I",
          nested_by: "I"
        }.each do |methodname, reftype|
          define_reference_method methodname, reftype, :referer, :referee_id
        end

        # shortcut methods for role references
        # DEPRECATE?

        def member_of val
          interpret right_plus: [Card::RolesID, refer_to: val]
        end

        def member val
          interpret referred_to_by: { left: val, right: Card::RolesID }
        end
      end
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
card-1.101.4 lib/card/query/card_query/reference_attributes.rb
card-1.101.3 lib/card/query/card_query/reference_attributes.rb
card-1.101.2 lib/card/query/card_query/reference_attributes.rb
card-1.101.1 lib/card/query/card_query/reference_attributes.rb
card-1.101.0 lib/card/query/card_query/reference_attributes.rb
card-1.100.0 lib/card/query/card_query/reference_attributes.rb
card-1.99.6 lib/card/query/card_query/reference_attributes.rb
card-1.99.5 lib/card/query/card_query/reference_attributes.rb
card-1.99.4 lib/card/query/card_query/reference_attributes.rb
card-1.99.3 lib/card/query/card_query/reference_attributes.rb
card-1.99.2 lib/card/query/card_query/reference_attributes.rb