Class: Prmd::UrlGenerator::Generators::Default Private

Inherits:
Object
  • Object
show all
Defined in:
lib/prmd/url_generators/generators/default.rb

Overview

This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.

Default URL Generator

Class Method Summary collapse

Class Method Details

.generate(params) ⇒ Object

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • params (Hash<Symbol, Object>)


14
15
16
17
18
# File 'lib/prmd/url_generators/generators/default.rb', line 14

def self.generate(params)
  data = {}
  data.merge!(params[:schema].schema_example(params[:link]['schema']))
  generate_params(data)
end

.generate_params(obj, prefix = nil) ⇒ String

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • obj (Hash)
  • prefix (String) (defaults to: nil)

Returns:

  • (String)


37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/prmd/url_generators/generators/default.rb', line 37

def self.generate_params(obj, prefix = nil)
  result = []
  obj.each do |key,value|
    if value.is_a?(Hash)
      newprefix = if prefix
        "#{prefix}[#{key}]"
      else
        key
      end
      result << generate_params(value, newprefix)
    elsif value.is_a?(Array)
      value.each do |val|
        result << [param_name(key, prefix, true), CGI.escape(val.to_s)].join('=')
      end
    else
      next unless value # ignores parameters with empty examples
      result << [param_name(key, prefix), CGI.escape(value.to_s)].join('=')
    end
  end
  result.flatten
end

.param_name(key, prefix, array = false) ⇒ String

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Parameters:

  • key (String)
  • prefix (String)

Returns:

  • (String)


23
24
25
26
27
28
29
30
31
32
# File 'lib/prmd/url_generators/generators/default.rb', line 23

def self.param_name(key, prefix, array = false)
  result = if prefix
    "#{prefix}[#{key}]"
  else
    key
  end

  result += '[]' if array
  result
end