Sha256: c6cc00bbf8b9a8845e24dcb931ce3c3e7dfd932d5838e144fdb2eca9863ebf33

Contents?: true

Size: 842 Bytes

Versions: 1

Compression:

Stored size: 842 Bytes

Contents

module ModelExplorer
  module Associations
    class Many < Base
      def export
        {
          name: name,
          type: macro,
          scopes: scopes,
          count: records.count,
          records: export_records
        }
      end

      def records
        ensure_valid_scopes!

        super
      end

      private

      def query
        scopes.inject(default_query) do |relation, scope|
          relation.public_send(scope)
        end
      end

      def scopes
        association[:scopes] || []
      end

      def ensure_valid_scopes!
        model_explorer_scopes = klass.model_explorer_scopes.map(&:to_s)

        scopes.each do |scope|
          next if model_explorer_scopes.include?(scope)

          raise ArgumentError, "Unknown scope #{scope} for #{klass.name}"
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
model_explorer-0.1.0 lib/model_explorer/associations/many.rb