Class: Gloo::Objs::HttpGet

Inherits:
Core::Obj show all
Defined in:
lib/gloo/objs/web/http_get.rb

Constant Summary collapse

KEYWORD =
'http_get'.freeze
KEYWORD_SHORT =
'get'.freeze
URL =
'uri'.freeze
DEFAULT_URL =
'https://web.site/'.freeze
PARAMS =
'params'.freeze
RESULT =
'result'.freeze
SKIP_SSL_VERIFY =
'skip_ssl_verify'.freeze

Constants inherited from Core::Baseo

Core::Baseo::NOT_IMPLEMENTED_ERR

Instance Attribute Summary

Attributes inherited from Core::Obj

#children, #parent, #value

Attributes inherited from Core::Baseo

#name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Core::Obj

#add_child, can_create?, #can_receive_message?, #child_count, #child_index, #contains_child?, #delete_children, #dispatch, #display_value, #find_add_child, #find_child, #find_child_resolve_alias, #find_child_value, help, inherited, #initialize, #is_alias?, #is_container?, #is_function?, #msg_blank?, #msg_contains?, #msg_reload, #msg_responds_to?, #msg_unload, #multiline_value?, #pn, #remove_child, #render, #root?, #send_message, #set_parent, #set_value, #sql_value, #type_display, #value_display, #value_is_array?, #value_is_blank?, #value_string?

Methods inherited from Core::Baseo

#initialize, #type_display

Constructor Details

This class inherits a constructor from Gloo::Core::Obj

Class Method Details

.doc_dataObject

Get the object's documentation data.



158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
# File 'lib/gloo/objs/web/http_get.rb', line 158

def self.doc_data
  {
    :name => KEYWORD,
    :shortcut => KEYWORD_SHORT,
    :description => 'Perform an HTTP Get.',
    :children => [
      "uri (string) — Example: 'https://web.site/'. The URI for the HTTP Get request.",
      'params (container) — Collection of parameters for the HTTP Get.',
      'result (string) — The result of the request. Whatever was returned from the HTTP Get call.',
      'skip_ssl_verify (boolean) — Optional. Skip the SSL verification as part of the request.'
    ],
    :messages => [
      'run — Run the HTTP Get and update the result.'
    ],
    :examples => <<~EXAMPLES.strip
      g [http_get] :
        uri [string] : http://api.sunrise-sunset.org/json
        params [container] :
          lat [string] : 36.7201600
          lng [string] : -4.4203400
          date [string] : today
        result [string] :

      > run g
    EXAMPLES
  }
end

.invoke_request(url, skip_ssl_verify = false) ⇒ Object

Post the content to the endpoint.



90
91
92
93
94
95
96
97
98
99
100
101
# File 'lib/gloo/objs/web/http_get.rb', line 90

def self.invoke_request( url, skip_ssl_verify = false )
  uri = URI( url )
  params = { use_ssl: uri.scheme == 'https' }

  params[ :verify_mode ] = ::OpenSSL::SSL::VERIFY_NONE if skip_ssl_verify

  Net::HTTP.start( uri.host, uri.port, params ) do |http|
    request = Net::HTTP::Get.new uri
    response = http.request request # Net::HTTPResponse object
    return response.body
  end
end

.messagesObject

Get a list of message names that this object receives.



69
70
71
# File 'lib/gloo/objs/web/http_get.rb', line 69

def self.messages
  return super + [ 'run' ]
end

.short_typenameObject

The short name of the object type.



33
34
35
# File 'lib/gloo/objs/web/http_get.rb', line 33

def self.short_typename
  return KEYWORD_SHORT
end

.typenameObject

The name of the object type.



26
27
28
# File 'lib/gloo/objs/web/http_get.rb', line 26

def self.typename
  return KEYWORD
end

Instance Method Details

#add_children_on_create?Boolean

Does this object have children to add when an object is created in interactive mode? This does not apply during obj load, etc.

Returns:



46
47
48
# File 'lib/gloo/objs/web/http_get.rb', line 46

def add_children_on_create?
  return true
end

#add_default_childrenObject

Add children to this object. This is used by containers to add children needed for default configurations.



55
56
57
58
59
60
# File 'lib/gloo/objs/web/http_get.rb', line 55

def add_default_children
  fac = @engine.factory
  fac.create_string URL, DEFAULT_URL, self
  fac.create_can PARAMS, self
  fac.create_string RESULT, nil, self
end

#msg_runObject

Post the content to the endpoint.



76
77
78
79
80
81
# File 'lib/gloo/objs/web/http_get.rb', line 76

def msg_run
  url = full_url_value
  @engine.log.debug url
  r = Gloo::Objs::HttpGet.invoke_request( url, skip_ssl_verify? )
  update_result r
end