Sha256: 407bab905b3e7e40297b5e8be8b77fa14312552cbf323cc82bf8fa11d2b521f1

Contents?: true

Size: 640 Bytes

Versions: 4

Compression:

Stored size: 640 Bytes

Contents

# frozen_string_literal: true

module TableSaw
  module DependencyGraph
    class AddDirective
      attr_reader :table_name, :partial, :has_many
      attr_accessor :ids

      def initialize(table_name, ids: [], partial: true, has_many: {})
        @table_name = table_name
        @ids = ids
        @partial = partial
        @has_many = has_many
      end

      alias partial? partial

      def selectable?
        partial? && Array(ids).size.positive?
      end

      def queryable?
        !partial || selectable?
      end

      def primary_key
        TableSaw.schema_cache.primary_keys(table_name)
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
table_saw-3.2.0 lib/table_saw/dependency_graph/add_directive.rb
table_saw-3.1.0 lib/table_saw/dependency_graph/add_directive.rb
table_saw-3.0.0 lib/table_saw/dependency_graph/add_directive.rb
table_saw-2.10.0 lib/table_saw/dependency_graph/add_directive.rb