Class: PackAPI::Querying::AbstractEnumFilter
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
#filter_name, filter_name, #type
#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_param ⇒ Object
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
|
#value ⇒ Object
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
50
51
52
|
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 50
def self.can_exclude?
true
end
|
.definition ⇒ Object
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
|
.type ⇒ Object
8
9
10
|
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 8
def self.type
:enum
end
|
Instance Method Details
#exclude? ⇒ 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
32
33
34
|
# File 'lib/pack_api/querying/abstract_enum_filter.rb', line 32
def present?
@present
end
|
#to_h ⇒ Object
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
|