Class: Rwc::Queries::SimpleInput

Inherits:
Object
  • Object
show all
Defined in:
lib/rwc/core/queries/simple_input.rb

Class Attribute Summary collapse

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(fields:, type: :group, **context) ⇒ SimpleInput

Returns a new instance of SimpleInput.



16
17
18
19
20
# File 'lib/rwc/core/queries/simple_input.rb', line 16

def initialize(fields:, type: :group, **context)
  @params = fields
  @type = type
  @_context = context || {}
end

Class Attribute Details

.target_klassObject (readonly)

Returns the value of attribute target_klass.



9
10
11
# File 'lib/rwc/core/queries/simple_input.rb', line 9

def target_klass
  @target_klass
end

Instance Attribute Details

#paramsObject (readonly)

Returns the value of attribute params.



6
7
8
# File 'lib/rwc/core/queries/simple_input.rb', line 6

def params
  @params
end

Class Method Details

.input_for(klass) ⇒ Object



11
12
13
# File 'lib/rwc/core/queries/simple_input.rb', line 11

def input_for(klass)
  @target_klass = klass
end

Instance Method Details

#__raw__Object



44
45
46
# File 'lib/rwc/core/queries/simple_input.rb', line 44

def __raw__
  OpenStruct.new(**params)
end

#conditionsObject



22
23
24
# File 'lib/rwc/core/queries/simple_input.rb', line 22

def conditions
  params.slice(*valid_fields)
end

#contextObject



30
31
32
# File 'lib/rwc/core/queries/simple_input.rb', line 30

def context
  @context ||= OpenStruct.new(**@_context)
end

#includesObject



26
27
28
# File 'lib/rwc/core/queries/simple_input.rb', line 26

def includes
  params.dig(:includes)&.map(&:to_sym) & valid_includes
end

#sanitize!Object



34
35
36
37
38
# File 'lib/rwc/core/queries/simple_input.rb', line 34

def sanitize!
  # for now just remove nil keys
  params.compact!
  self
end

#single?Boolean

Returns:

  • (Boolean)


40
41
42
# File 'lib/rwc/core/queries/simple_input.rb', line 40

def single?
  type == :single
end