Class: Gloo::Objs::Uri
- Inherits:
-
Core::Obj
- Object
- Core::Baseo
- Core::Obj
- Gloo::Objs::Uri
- Defined in:
- lib/gloo/objs/web/uri.rb
Constant Summary collapse
- KEYWORD =
'uri'.freeze
- KEYWORD_SHORT =
'url'.freeze
Constants inherited from Core::Baseo
Core::Baseo::NOT_IMPLEMENTED_ERR
Instance Attribute Summary
Attributes inherited from Core::Obj
Attributes inherited from Core::Baseo
Class Method Summary collapse
-
.messages ⇒ Object
Get a list of message names that this object receives.
-
.open_url(url, engine = nil) ⇒ Object
Open the given URL with platform command.
-
.short_typename ⇒ Object
The short name of the object type.
-
.typename ⇒ Object
The name of the object type.
Instance Method Summary collapse
-
#msg_get_cert_expires ⇒ Object
Get the expiration date for the certificate.
-
#msg_get_fragment ⇒ Object
Get the URI fragment that comes after the ‘#’ in the URL.
-
#msg_get_host ⇒ Object
Get the URI host.
-
#msg_get_path ⇒ Object
Get the URI path.
-
#msg_get_query ⇒ Object
Get the URI query parameters.
-
#msg_get_scheme ⇒ Object
Get the URI Scheme.
-
#msg_open ⇒ Object
Open the URI in the default browser.
-
#multiline_value? ⇒ Boolean
Does this object support multi-line values? Initially only true for scripts.
-
#set_value(new_value) ⇒ Object
Set the value with any necessary type conversions.
Methods inherited from Core::Obj
#add_child, #add_children_on_create?, #add_default_children, 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_unload, #pn, #remove_child, #render, #root?, #send_message, #set_parent, #sql_value, #type_display, #value_display, #value_is_array?, #value_is_blank?, #value_string?
Methods inherited from Core::Baseo
Constructor Details
This class inherits a constructor from Gloo::Core::Obj
Class Method Details
.messages ⇒ Object
Get a list of message names that this object receives.
53 54 55 56 57 58 |
# File 'lib/gloo/objs/web/uri.rb', line 53 def self. basic = %w[open] gets = %w[get_scheme get_host get_path] more = %w[get_query get_fragment get_cert_expires] return super + basic + gets + more end |
.open_url(url, engine = nil) ⇒ Object
Open the given URL with platform command.
152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
# File 'lib/gloo/objs/web/uri.rb', line 152 def self.open_url( url, engine=nil ) cmd = Gloo::Core::GlooSystem.open_for_platform cmd_with_param = "#{cmd} \"#{url}\"" if OS.mac? engine.log.warn 'Opening URL.' if engine `#{cmd_with_param}` else # This does not work in Linux or in WSL on Windows: # exec cmd_with_param engine.log.warn 'Opening URL not supported on this platform.' if engine end end |
.short_typename ⇒ Object
The short name of the object type.
27 28 29 |
# File 'lib/gloo/objs/web/uri.rb', line 27 def self.short_typename return KEYWORD_SHORT end |
.typename ⇒ Object
The name of the object type.
20 21 22 |
# File 'lib/gloo/objs/web/uri.rb', line 20 def self.typename return KEYWORD end |
Instance Method Details
#msg_get_cert_expires ⇒ Object
Get the expiration date for the certificate.
63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/gloo/objs/web/uri.rb', line 63 def msg_get_cert_expires return unless value o = value uri = URI( value ) response = Net::HTTP.start( uri.host, uri.port, :use_ssl => true ) cert = response.peer_cert o = cert.not_after @engine.heap.it.set_to o return o end |
#msg_get_fragment ⇒ Object
Get the URI fragment that comes after the ‘#’ in the URL. Might be used to scroll down in the page.
79 80 81 82 83 84 85 |
# File 'lib/gloo/objs/web/uri.rb', line 79 def msg_get_fragment return unless value o = URI( value ).fragment @engine.heap.it.set_to o return o end |
#msg_get_host ⇒ Object
Get the URI host. Example: google.com
115 116 117 118 119 120 121 |
# File 'lib/gloo/objs/web/uri.rb', line 115 def msg_get_host return unless value o = URI( value ).host @engine.heap.it.set_to o return o end |
#msg_get_path ⇒ Object
Get the URI path. Example: /posts
103 104 105 106 107 108 109 |
# File 'lib/gloo/objs/web/uri.rb', line 103 def msg_get_path return unless value o = URI( value ).path @engine.heap.it.set_to o return o end |
#msg_get_query ⇒ Object
Get the URI query parameters. Example: id=121
91 92 93 94 95 96 97 |
# File 'lib/gloo/objs/web/uri.rb', line 91 def msg_get_query return unless value o = URI( value ).query @engine.heap.it.set_to o return o end |
#msg_get_scheme ⇒ Object
Get the URI Scheme. Example: http
127 128 129 130 131 132 133 |
# File 'lib/gloo/objs/web/uri.rb', line 127 def msg_get_scheme return unless value o = URI( value ).scheme @engine.heap.it.set_to o return o end |
#msg_open ⇒ Object
Open the URI in the default browser.
138 139 140 141 142 |
# File 'lib/gloo/objs/web/uri.rb', line 138 def msg_open return unless value Gloo::Objs::Uri.open_url value, @engine end |
#multiline_value? ⇒ Boolean
Does this object support multi-line values? Initially only true for scripts.
42 43 44 |
# File 'lib/gloo/objs/web/uri.rb', line 42 def multiline_value? return false end |
#set_value(new_value) ⇒ Object
Set the value with any necessary type conversions.
34 35 36 |
# File 'lib/gloo/objs/web/uri.rb', line 34 def set_value( new_value ) self.value = new_value.to_s end |