Class: Graphiti::ActiveGraph::Extensions::Grouping::Params

Inherits:
Object
  • Object
show all
Defined in:
lib/graphiti/active_graph/extensions/grouping/params.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(params, resource_class) ⇒ Params

Returns a new instance of Params.



5
6
7
8
9
10
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 5

def initialize(params, resource_class)
  @params = params
  group_by_string = params.fetch(:group_by, nil)
  @grouping_criteria_list = split_grouping_criteria(group_by_string)
  @resource_class = resource_class
end

Instance Attribute Details

#grouping_criteria_listObject (readonly)

Returns the value of attribute grouping_criteria_list.



3
4
5
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 3

def grouping_criteria_list
  @grouping_criteria_list
end

#paramsObject (readonly)

Returns the value of attribute params.



3
4
5
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 3

def params
  @params
end

#resource_classObject (readonly)

Returns the value of attribute resource_class.



3
4
5
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 3

def resource_class
  @resource_class
end

Instance Method Details

#empty?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 20

def empty?
  grouping_criteria_list.empty?
end

#ends_with_attribute?(model, criteria) ⇒ Boolean

Returns:

  • (Boolean)


24
25
26
27
28
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 24

def ends_with_attribute?(model, criteria)
  return false if criteria.blank?

  last_segment_attribute?(model, criteria.split('.'))
end

#grouping_criteria_on_attribute?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 16

def grouping_criteria_on_attribute?
  grouping_criteria_list.any? { |criteria| ends_with_attribute?(resource_class.model, criteria) }
end

#single_grouping_criteria?Boolean

Returns:

  • (Boolean)


12
13
14
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 12

def single_grouping_criteria?
  grouping_criteria_list.size < 2
end