Class: Apiwork::Adapter::Capability::API::Base

Inherits:
Builder::API::Base show all
Defined in:
lib/apiwork/adapter/capability/api/base.rb

Overview

Base class for capability API builders.

Provides access to capability options and aggregated configuration across all representations.

Instance Attribute Summary collapse

Attributes inherited from Builder::API::Base

#data_type

Instance Method Summary collapse

Methods inherited from Builder::API::Base

#build, #enum, #enum?, #object, #type?, #union

Constructor Details

#initialize(api_class, capability_name: nil, options: nil) ⇒ Base

Returns a new instance of Base.



26
27
28
29
30
31
# File 'lib/apiwork/adapter/capability/api/base.rb', line 26

def initialize(api_class, capability_name: nil, options: nil)
  super(api_class)
  @capability_name = capability_name
  @scope = Scope.new(api_class)
  @options = options
end

Instance Attribute Details

#optionsConfiguration (readonly)

The options for this API.

Returns:



23
24
25
# File 'lib/apiwork/adapter/capability/api/base.rb', line 23

def options
  @options
end

#scopeObject (readonly)



23
24
# File 'lib/apiwork/adapter/capability/api/base.rb', line 23

attr_reader :options,
:scope

Instance Method Details

#configured(key) ⇒ Set

The configured values for a key.

Examples:

Check if any representation uses cursor pagination

if configured(:strategy).include?(:cursor)
  # build cursor pagination schema
end

Parameters:

  • key (Symbol)

    The configuration key.

Returns:

  • (Set)


44
45
46
# File 'lib/apiwork/adapter/capability/api/base.rb', line 44

def configured(key)
  scope.configured(@capability_name, key)
end