Class: Mutations::HashFilter

Inherits:
InputFilter
  • Object
show all
Defined in:
lib/mutations/additional_filter.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#input_descriptionObject

Returns the value of attribute input_description.



7
8
9
# File 'lib/mutations/additional_filter.rb', line 7

def input_description
  @input_description
end

#input_descriptionsObject

Returns the value of attribute input_descriptions.



7
8
9
# File 'lib/mutations/additional_filter.rb', line 7

def input_descriptions
  @input_descriptions
end

Class Method Details

.register_additional_filter(type_class, type_name) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/mutations/additional_filter.rb', line 19

def self.register_additional_filter(type_class, type_name)
  define_method(type_name) do |*args, &block|
    name = args[0]
    options = args[1] || {}
    # rubocop:disable Lint/AssignmentInCondition
    if described = current_input_description
      (@input_descriptions ||= {})[name.to_sym] = described
    end
    # rubocop:enable Lint/AssignmentInCondition
    @current_inputs[name.to_sym] = type_class.new(options, &block)
  end
end

Instance Method Details

#current_input_descriptionObject



13
14
15
16
17
# File 'lib/mutations/additional_filter.rb', line 13

def current_input_description
  (@input_description && @input_description.dup).tap do
    @input_description = nil
  end
end

#desc(input_description) ⇒ Object



9
10
11
# File 'lib/mutations/additional_filter.rb', line 9

def desc input_description
  @input_description = input_description
end