Class: Graphiti::ActiveGraph::Extensions::Grouping::Params
- Inherits:
-
Object
- Object
- Graphiti::ActiveGraph::Extensions::Grouping::Params
- Defined in:
- lib/graphiti/active_graph/extensions/grouping/params.rb
Instance Attribute Summary collapse
-
#grouping_criteria_list ⇒ Object
readonly
Returns the value of attribute grouping_criteria_list.
-
#params ⇒ Object
readonly
Returns the value of attribute params.
-
#resource_class ⇒ Object
readonly
Returns the value of attribute resource_class.
Instance Method Summary collapse
- #empty? ⇒ Boolean
- #ends_with_attribute?(model, criteria) ⇒ Boolean
- #grouping_criteria_on_attribute? ⇒ Boolean
-
#initialize(params, resource_class) ⇒ Params
constructor
A new instance of Params.
- #single_grouping_criteria? ⇒ Boolean
Constructor Details
#initialize(params, resource_class) ⇒ Params
Returns a new instance of Params.
4 5 6 7 8 |
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 4 def initialize(params, resource_class) @params = params @grouping_criteria_list = params.fetch(:group_by, nil)&.split(',') || [] @resource_class = resource_class end |
Instance Attribute Details
#grouping_criteria_list ⇒ Object (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 |
#params ⇒ Object (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_class ⇒ Object (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
18 19 20 |
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 18 def empty? grouping_criteria_list.empty? end |
#ends_with_attribute?(model, criteria) ⇒ Boolean
22 23 24 25 26 |
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 22 def ends_with_attribute?(model, criteria) return false if criteria.blank? last_segment_attribute?(model, criteria.split('.')) end |
#grouping_criteria_on_attribute? ⇒ Boolean
14 15 16 |
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 14 def grouping_criteria_on_attribute? grouping_criteria_list.any? { |criteria| ends_with_attribute?(resource_class.model, criteria) } end |
#single_grouping_criteria? ⇒ Boolean
10 11 12 |
# File 'lib/graphiti/active_graph/extensions/grouping/params.rb', line 10 def single_grouping_criteria? grouping_criteria_list.size < 2 end |