Class: PackAPI::Querying::AbstractBooleanFilter

Inherits:
DiscoverableFilter show all
Defined in:
lib/pack_api/querying/abstract_boolean_filter.rb

Constant Summary collapse

YES_VALUE =
'Yes'
NO_VALUE =
'No'
NOT_APPLICABLE_VALUE =
''

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from DiscoverableFilter

#filter_name, filter_name, #type

Methods inherited from AbstractFilter

#apply_to, #present?

Constructor Details

#initialize(value:) ⇒ AbstractBooleanFilter

Returns a new instance of AbstractBooleanFilter.



25
26
27
28
# File 'lib/pack_api/querying/abstract_boolean_filter.rb', line 25

def initialize(value:)
  super()
  @value = value
end

Instance Attribute Details

#valueObject

Returns the value of attribute value.



5
6
7
# File 'lib/pack_api/querying/abstract_boolean_filter.rb', line 5

def value
  @value
end

Class Method Details

.definitionObject



15
16
17
18
19
20
21
22
23
# File 'lib/pack_api/querying/abstract_boolean_filter.rb', line 15

def self.definition(**)
  options = [
    PackAPI::Types::FilterOption.new(label: 'N/A', value: NOT_APPLICABLE_VALUE),
    PackAPI::Types::FilterOption.new(label: 'Yes', value: YES_VALUE),
    PackAPI::Types::FilterOption.new(label: 'No', value: NO_VALUE)
  ]

  PackAPI::Types::BooleanFilterDefinition.new(name: filter_name, type:, options:)
end

.typeObject



11
12
13
# File 'lib/pack_api/querying/abstract_boolean_filter.rb', line 11

def self.type
  :tri_state_boolean
end

Instance Method Details

#to_hObject

Raises:

  • (NotImplementedError)


32
33
34
35
36
# File 'lib/pack_api/querying/abstract_boolean_filter.rb', line 32

def to_h
  raise NotImplementedError unless self.class.filter_name

  { self.class.filter_name => { value: } }
end