Class: PackAPI::Querying::AbstractEnumFilter

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

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

Constructor Details

#initialize(value: nil, exclude: nil) ⇒ AbstractEnumFilter

Returns a new instance of AbstractEnumFilter.



25
26
27
28
29
30
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 25

def initialize(value: nil, exclude: nil)
  super()
  @present = !value.nil?
  @value = Array.wrap(value.presence)
  @exclude_param = exclude
end

Instance Attribute Details

#exclude_paramObject

Returns the value of attribute exclude_param.



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

def exclude_param
  @exclude_param
end

#valueObject

Returns the value of attribute value.



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

def value
  @value
end

Class Method Details

.can_exclude?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 50

def self.can_exclude?
  true
end

.definitionObject



12
13
14
15
16
17
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 12

def self.definition(**)
  PackAPI::Types::EnumFilterDefinition.new(name: filter_name,
                                  type:,
                                  options: filter_options(**),
                                  can_exclude: can_exclude?)
end

.typeObject



8
9
10
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 8

def self.type
  :enum
end

Instance Method Details

#exclude?Boolean

Returns:

  • (Boolean)


36
37
38
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 36

def exclude?
  exclude_param.to_s.downcase == 'true'
end

#present?Boolean

Returns:

  • (Boolean)


32
33
34
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 32

def present?
  @present
end

#to_hObject

Raises:

  • (NotImplementedError)


40
41
42
43
44
45
46
47
48
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 40

def to_h
  raise NotImplementedError unless self.class.filter_name

  payload = present? ?
              { value: } :
              { value: nil }
  payload[:exclude] = exclude?.to_s if self.class.can_exclude?
  { self.class.filter_name => payload }
end