Class: Chewie::Handler::Reduced

Inherits:
Object
  • Object
show all
Defined in:
lib/chewie/handler/reduced.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(context:, handler: {}, filters: {}) ⇒ Reduced

Returns a new instance of Reduced.



10
11
12
13
14
15
16
# File 'lib/chewie/handler/reduced.rb', line 10

def initialize(context:, handler: {}, filters: {})
  @context = context
  @query = handler[:query]
  @clause = handler[:clause]
  @built_query = build_query(handler, filters)
  @clause_or_query = (@clause || @query)
end

Instance Attribute Details

#built_queryObject (readonly)

Returns the value of attribute built_query.



8
9
10
# File 'lib/chewie/handler/reduced.rb', line 8

def built_query
  @built_query
end

#clauseObject (readonly)

Returns the value of attribute clause.



8
9
10
# File 'lib/chewie/handler/reduced.rb', line 8

def clause
  @clause
end

#clause_or_queryObject (readonly)

Returns the value of attribute clause_or_query.



8
9
10
# File 'lib/chewie/handler/reduced.rb', line 8

def clause_or_query
  @clause_or_query
end

#contextObject (readonly)

Returns the value of attribute context.



8
9
10
# File 'lib/chewie/handler/reduced.rb', line 8

def context
  @context
end

#queryObject (readonly)

Returns the value of attribute query.



8
9
10
# File 'lib/chewie/handler/reduced.rb', line 8

def query
  @query
end

Instance Method Details

#reduce_with(handlers, hash) ⇒ Object



18
19
20
21
22
23
24
25
26
# File 'lib/chewie/handler/reduced.rb', line 18

def reduce_with(handlers, hash)
  has_one = handlers[query].one?

  if has_one && is_top_level_query
    set_in_hash(hash)
  else
    push_to_array(hash)
  end
end