Class: Gapic::Schema::ParameterSchema

Inherits:
Object
  • Object
show all
Defined in:
lib/gapic/schema/parameter_schema.rb

Overview

Contains information about known parameter names and the types expected to be parsed from the request options string

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bool_params = {}, string_params = {}, array_params = {}, map_params = {}) ⇒ ParameterSchema

Creates a schema with given alias-parameter maps

Parameters:

  • bool_params (Hash{String => String}) (defaults to: {})
  • string_params (Hash{String => String}) (defaults to: {})
  • array_params (Hash{String => String}) (defaults to: {})
  • map_params (Hash{String => String}) (defaults to: {})


32
33
34
35
36
37
# File 'lib/gapic/schema/parameter_schema.rb', line 32

def initialize bool_params = {}, string_params = {}, array_params = {}, map_params = {}
  @bool_params = bool_params
  @string_params = string_params
  @array_params = array_params
  @map_params = map_params
end

Instance Attribute Details

#array_paramsObject

Returns the value of attribute array_params.



24
25
26
# File 'lib/gapic/schema/parameter_schema.rb', line 24

def array_params
  @array_params
end

#bool_paramsObject

Returns the value of attribute bool_params.



22
23
24
# File 'lib/gapic/schema/parameter_schema.rb', line 22

def bool_params
  @bool_params
end

#map_paramsObject

Returns the value of attribute map_params.



25
26
27
# File 'lib/gapic/schema/parameter_schema.rb', line 25

def map_params
  @map_params
end

#string_paramsObject

Returns the value of attribute string_params.



23
24
25
# File 'lib/gapic/schema/parameter_schema.rb', line 23

def string_params
  @string_params
end

Class Method Details

.create(bool_params_list: [], string_params_list: [], array_params_list: [], map_params_list: []) ⇒ Object

Creates a schema from given parameter lists

Parameters:

  • bool_params_list (Array<String>) (defaults to: [])
  • string_params_list (Array<String>) (defaults to: [])
  • array_params_list (Array<String>) (defaults to: [])
  • map_params_list (Array<String>) (defaults to: [])

Returns:

  • Gapic::Schema::ParameterSchema



45
46
47
48
49
50
51
52
# File 'lib/gapic/schema/parameter_schema.rb', line 45

def self.create bool_params_list: [], string_params_list: [], array_params_list: [], map_params_list: []
  bool_params = bool_params_list.to_h { |val| [val, val] }
  string_params = string_params_list.to_h { |val| [val, val] }
  array_params = array_params_list.to_h { |val| [val, val] }
  map_params = map_params_list.to_h { |val| [val, val] }

  ParameterSchema.new bool_params, string_params, array_params, map_params
end

Instance Method Details

#extend_with_aliases(bool_aliases: {}, string_aliases: {}, array_aliases: {}, map_aliases: {}) ⇒ Object

Creates a new schema from this by adding aliases to existing parameters

Parameters:

  • bool_aliases (Hash{String => String}) (defaults to: {})
  • string_aliases (Hash{String => String}) (defaults to: {})
  • array_aliases (Hash{String => String}) (defaults to: {})
  • map_aliases (Hash{String => String}) (defaults to: {})

Returns:

  • Gapic::Schema::ParameterSchema



60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gapic/schema/parameter_schema.rb', line 60

def extend_with_aliases bool_aliases: {}, string_aliases: {}, array_aliases: {}, map_aliases: {}
  bool_params = @bool_params.dup
  bool_aliases.each { |param_alias, param| bool_params[param_alias] = param if bool_params.key? param }

  string_params = @string_params.dup
  string_aliases.each { |param_alias, param| string_params[param_alias] = param if string_params.key? param }

  array_params = @array_params.dup
  array_aliases.each { |param_alias, param| array_params[param_alias] = param if array_params.key? param }

  map_params = @map_params.dup
  map_aliases.each { |param_alias, param| map_params[param_alias] = param if map_params.key? param }

  ParameterSchema.new bool_params, string_params, array_params, map_params
end

#schema_name_type_for(param_name) ⇒ Array<Symbol, String>

Looks up a parameter by name (including aliases) and return a type label (or :unknown) and a configuration name

Parameters:

  • param_name (String)

    Input parameter name

Returns:

  • (Array<Symbol, String>)

    An array of [:detected_type, config_parameter_name]



80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/gapic/schema/parameter_schema.rb', line 80

def schema_name_type_for param_name
  if @bool_params.key? param_name
    [:bool, @bool_params[param_name]]
  elsif @string_params.key? param_name
    [:string, @string_params[param_name]]
  elsif @array_params.key? param_name
    [:array, @array_params[param_name]]
  elsif @map_params.key? param_name
    [:map, @map_params[param_name]]
  else
    [:unknown, param_name]
  end
end