Sha256: 117b4f5fadb9c5379dd08220c1d0f62948b605c3713b811e3147075c38784673

Contents?: true

Size: 476 Bytes

Versions: 12

Compression:

Stored size: 476 Bytes

Contents

module JsonapiCompliable
  class Scoping::ExtraFields < Scoping::Base
    def apply
      each_extra_field do |callable|
        @scope = callable.call(@scope)
      end

      @scope
    end

    private

    def each_extra_field
      resource.extra_fields.each_pair do |name, callable|
        if extra_fields.include?(name)
          yield callable
        end
      end
    end

    def extra_fields
      query_hash[:extra_fields][resource.type] || []
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
jsonapi_compliable-0.6.4 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.6.3 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.6.2 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.6.1 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.6.0 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.5.7 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.5.6 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.5.5 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.5.4 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.5.3 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.5.2 lib/jsonapi_compliable/scoping/extra_fields.rb
jsonapi_compliable-0.5.1 lib/jsonapi_compliable/scoping/extra_fields.rb