class Gapic::PathPattern::Pattern
A parsed pattern. @see google.aip.dev/122 AIP-122 Resource names @see google.aip.dev/123 AIP-123 Resource types
@!attribute [r] path_pattern
@return [String] The path pattern
@!attribute [r] segments
@return [Array<PositionalSegment|ResourceIdSegment|CollectionIdSegment>] The parsed segments of the path pattern
Attributes
path_pattern[R]
segments[R]
Public Class Methods
new(path_pattern, segments)
click to toggle source
# File lib/gapic/path_pattern/pattern.rb, line 35 def initialize path_pattern, segments @path_pattern = path_pattern @segments = segments end
Public Instance Methods
arguments()
click to toggle source
All argument names from this pattern @return [Array<String>]
# File lib/gapic/path_pattern/pattern.rb, line 43 def arguments @segments.select(&:provides_arguments?).map(&:arguments).flatten end
nontrivial_pattern_segments?()
click to toggle source
Whether pattern contains a segment with a nontrivial resource pattern @return [Boolean]
# File lib/gapic/path_pattern/pattern.rb, line 57 def nontrivial_pattern_segments? @segments.any?(&:nontrivial_resource_pattern?) end
parent_template()
click to toggle source
A parent template to this pattern or an empty string if a pattern can not have a parent (too short) @return [String]
# File lib/gapic/path_pattern/pattern.rb, line 73 def parent_template return nil if segments.length <= 2 last_segment = segments.last parent_pattern_segments = last_segment.provides_arguments? ? segments[0...-2] : segments[0...-1] parent_pattern_segments.map(&:pattern_template).join("/") end
positional_segments?()
click to toggle source
Whether pattern contains a positional segment @return [Boolean]
# File lib/gapic/path_pattern/pattern.rb, line 50 def positional_segments? @segments.any?(&:positional?) end
template()
click to toggle source
A template of this pattern - all resource id segments are stripped and replaced by '*' @return [String]
# File lib/gapic/path_pattern/pattern.rb, line 65 def template @segments.map(&:pattern_template).join("/") end