Sha256: f3e4ac643718301cf6e1fae30e8d6516cbe7fc5c19498918146fc7b564b48b19

Contents?: true

Size: 752 Bytes

Versions: 8

Compression:

Stored size: 752 Bytes

Contents

module GraphQL
  module ResultCache
    class Result
      extend Forwardable

      attr_reader :value

      def_delegators :@value, :to_json, :as_json

      def initialize query_result
        @_result = query_result
        @value = process_with_result_cache
      end

      private

      def process_with_result_cache
        return process_each(@_result) unless @_result.is_a?(Array)
        @_result.map { |result| process_each(result) }
      end

      def process_each result
        result_cache_config = result.query.context[:result_cache]
        blank?(result_cache_config) ? result : result_cache_config.process(result)
      end

      def blank? obj
        obj.respond_to?(:empty?) ? !!obj.empty? : !obj
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
graphql-result_cache-0.1.8 lib/graphql/result_cache/result.rb
graphql-result_cache-0.1.7 lib/graphql/result_cache/result.rb
graphql-result_cache-0.1.6 lib/graphql/result_cache/result.rb
graphql-result_cache-0.1.5 lib/graphql/result_cache/result.rb
graphql-result_cache-0.1.4 lib/graphql/result_cache/result.rb
graphql-result_cache-0.1.3 lib/graphql/result_cache/result.rb
graphql-result_cache-0.1.2 lib/graphql/result_cache/result.rb
graphql-result_cache-0.1.1 lib/graphql/result_cache/result.rb