Class: Graphiti::ActiveGraph::Util::Transformers::RelationParam

Inherits:
Object
  • Object
show all
Defined in:
lib/graphiti/active_graph/util/transformers/relation_param.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(relation_param_str) ⇒ RelationParam

Returns a new instance of RelationParam.



7
8
9
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 7

def initialize(relation_param_str)
  @map = Graphiti::ActiveGraph::Util::Parsers::RelChain.new.rel_param_rule.parse(relation_param_str.to_s)
end

Instance Attribute Details

#mapObject (readonly)

Returns the value of attribute map.



5
6
7
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 5

def map
  @map
end

Instance Method Details

#rel_length(length_part = nil) ⇒ Object



40
41
42
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 40

def rel_length(length_part = nil)
  join(length_part || map[:length_part])
end

#rel_length_numberObject



44
45
46
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 44

def rel_length_number
  rel_length(map[:length_part]&.except(:ast))
end

#rel_limit(limit_part = nil) ⇒ Object



24
25
26
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 24

def rel_limit(limit_part = nil)
  join(limit_part || map[:limit_part])
end

#rel_limit_numberObject



28
29
30
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 28

def rel_limit_number
  rel_limit(map[:limit_part]&.except(:limit_ast))
end

#rel_nameObject



32
33
34
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 32

def rel_name
  map[:rel_name].to_s
end

#rel_name_n_lengthObject



20
21
22
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 20

def rel_name_n_length
  "#{rel_name}#{rel_length}"
end

#rel_name_symObject



36
37
38
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 36

def rel_name_sym
  rel_name.to_sym
end

#split_rel_length(retain_rel_limit) ⇒ Object



11
12
13
14
15
16
17
18
# File 'lib/graphiti/active_graph/util/transformers/relation_param.rb', line 11

def split_rel_length(retain_rel_limit)
  rel_name_part = if retain_rel_limit
                    (rel_limit || '') + rel_name
                  else
                    rel_name_sym
                  end
  [rel_name_part.to_sym, rel_length_number]
end