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.



59
60
61
62
# File 'lib/gapic/presenters/resource_presenter.rb', line 59

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.



64
65
66
# File 'lib/gapic/presenters/resource_presenter.rb', line 64

def path_string
  @path_string
end

Instance Method Details

#argumentsObject



74
75
76
# File 'lib/gapic/presenters/resource_presenter.rb', line 74

def arguments
  @parsed_pattern.arguments
end

#arguments_keyObject



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

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

#arguments_with_dummy_valuesObject



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

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.



79
80
81
# File 'lib/gapic/presenters/resource_presenter.rb', line 79

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

#expected_path_for_dummy_valuesObject



95
96
97
98
99
100
101
102
103
104
105
106
# File 'lib/gapic/presenters/resource_presenter.rb', line 95

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



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

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

#patternObject



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

def pattern
  @parsed_pattern.path_pattern
end

#pattern_templateObject



66
67
68
# File 'lib/gapic/presenters/resource_presenter.rb', line 66

def pattern_template
  @parsed_pattern.template
end

#useful_for_helpers?Boolean

Returns:

  • (Boolean)


70
71
72
# File 'lib/gapic/presenters/resource_presenter.rb', line 70

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