Class: Gapic::Presenters::ResourcePresenter::PatternPresenter

Inherits:
Object
  • Object
show all
Defined in:
lib/gapic/presenters/resource_presenter.rb

Overview

A presenter for a particular pattern

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(pattern_string) ⇒ PatternPresenter

Returns a new instance of PatternPresenter.



81
82
83
84
# File 'lib/gapic/presenters/resource_presenter.rb', line 81

def initialize pattern_string
  @parsed_pattern = Gapic::PathPattern.parse pattern_string
  @path_string = build_path_string
end

Instance Attribute Details

#path_stringObject (readonly)

Returns the value of attribute path_string.



86
87
88
# File 'lib/gapic/presenters/resource_presenter.rb', line 86

def path_string
  @path_string
end

Instance Method Details

#argumentsObject



96
97
98
# File 'lib/gapic/presenters/resource_presenter.rb', line 96

def arguments
  @parsed_pattern.arguments
end

#arguments_keyObject



109
110
111
# File 'lib/gapic/presenters/resource_presenter.rb', line 109

def arguments_key
  @parsed_pattern.arguments.sort.join ":"
end

#arguments_with_dummy_valuesObject



113
114
115
# File 'lib/gapic/presenters/resource_presenter.rb', line 113

def arguments_with_dummy_values
  @parsed_pattern.arguments.each_with_index.map { |name, index| "#{name}: \"value#{index}\"" }.join ", "
end

#escape_argument(arg) ⇒ String

Returns The conflicting argument name escaped with local binding.

Returns:

  • (String)

    The conflicting argument name escaped with local binding.



101
102
103
# File 'lib/gapic/presenters/resource_presenter.rb', line 101

def escape_argument arg
  Gapic::RubyInfo.keywords.include?(arg) ? "binding.local_variable_get(:#{arg})" : arg
end

#expected_path_for_dummy_valuesObject



117
118
119
120
121
122
123
124
125
126
127
128
# File 'lib/gapic/presenters/resource_presenter.rb', line 117

def expected_path_for_dummy_values
  index = 0
  @parsed_pattern.segments.map do |segment|
    if segment.provides_arguments?
      segment_dummy_path = segment.expected_path_for_dummy_values index
      index += segment.arguments.length
      segment_dummy_path
    else
      segment.pattern
    end
  end.join "/"
end

#formal_argumentsObject



105
106
107
# File 'lib/gapic/presenters/resource_presenter.rb', line 105

def formal_arguments
  @parsed_pattern.arguments.map { |name| "#{name}:" }.join ", "
end

#patternObject



130
131
132
# File 'lib/gapic/presenters/resource_presenter.rb', line 130

def pattern
  @parsed_pattern.path_pattern
end

#pattern_templateObject



88
89
90
# File 'lib/gapic/presenters/resource_presenter.rb', line 88

def pattern_template
  @parsed_pattern.template
end

#useful_for_helpers?Boolean

Returns:

  • (Boolean)


92
93
94
# File 'lib/gapic/presenters/resource_presenter.rb', line 92

def useful_for_helpers?
  !@parsed_pattern.positional_segments? && !@parsed_pattern.nontrivial_pattern_segments?
end