Class: GlooLang::Core::GlooSystem

Inherits:
Obj
  • Object
show all
Defined in:
lib/gloo_lang/core/gloo_system.rb

Constant Summary collapse

KEYWORD =
'gloo'.freeze
KEYWORD_SHORT =
'$'.freeze

Constants inherited from Baseo

Baseo::NOT_IMPLEMENTED_ERR

Instance Attribute Summary collapse

Attributes inherited from Obj

#children, #parent

Attributes inherited from Baseo

#name

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Obj

#add_child, #add_default_children, #can_receive_message?, #child_count, #contains_child?, #delete_children, #display_value, #find_add_child, #find_child, help, inherited, #msg_reload, #msg_unload, #multiline_value?, #remove_child, #send_message, #set_parent

Constructor Details

#initialize(engine, pn) ⇒ GlooSystem

Set up the object.



21
22
23
24
# File 'lib/gloo_lang/core/gloo_system.rb', line 21

def initialize( engine, pn )
  @engine = engine
  @pn = pn
end

Instance Attribute Details

#pnObject (readonly)

Returns the value of attribute pn.



18
19
20
# File 'lib/gloo_lang/core/gloo_system.rb', line 18

def pn
  @pn
end

Class Method Details

.can_create?Boolean

Can this object be created? This is true by default and only false for some special cases such as the System object.

Returns:

  • (Boolean)


55
56
57
# File 'lib/gloo_lang/core/gloo_system.rb', line 55

def self.can_create?
  false
end

.messagesObject

Get a list of message names that this object receives.



132
133
134
# File 'lib/gloo_lang/core/gloo_system.rb', line 132

def self.messages
  return []
end

.open_for_platformObject

Get the command to open a file on this platform.



257
258
259
260
261
262
263
# File 'lib/gloo_lang/core/gloo_system.rb', line 257

def self.open_for_platform
  platform = TTY::Platform.new
  return 'open' if platform.mac?
  return 'xdg-open' if platform.linux?

  return nil
end

.short_typenameObject

The short name of the object type.



36
37
38
# File 'lib/gloo_lang/core/gloo_system.rb', line 36

def self.short_typename
  return KEYWORD_SHORT
end

.typenameObject

The name of the object type.



29
30
31
# File 'lib/gloo_lang/core/gloo_system.rb', line 29

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:

  • (Boolean)


121
122
123
# File 'lib/gloo_lang/core/gloo_system.rb', line 121

def add_children_on_create?
  return false
end

#dispatch(msg) ⇒ Object

Dispatch the message and get the value.



137
138
139
140
141
142
143
# File 'lib/gloo_lang/core/gloo_system.rb', line 137

def dispatch( msg )
  o = "msg_#{msg}"
  return self.public_send( o ) if self.respond_to? o

  @engine.log.error "Message #{msg} not implemented"
  return false
end

#msg_gloo_configObject

Get the Gloo configuration directory



171
172
173
# File 'lib/gloo_lang/core/gloo_system.rb', line 171

def msg_gloo_config
  return @engine.settings.config_path
end

#msg_gloo_homeObject

Get the Gloo home directory



166
167
168
# File 'lib/gloo_lang/core/gloo_system.rb', line 166

def msg_gloo_home
  return @engine.settings.user_root
end

#msg_gloo_logObject

Get the Gloo log directory



181
182
183
# File 'lib/gloo_lang/core/gloo_system.rb', line 181

def msg_gloo_log
  return @engine.settings.log_path
end

#msg_gloo_projectsObject

Get the Gloo projects directory



176
177
178
# File 'lib/gloo_lang/core/gloo_system.rb', line 176

def msg_gloo_projects
  return @engine.settings.project_path
end

#msg_hostnameObject

Get the system hostname.



146
147
148
# File 'lib/gloo_lang/core/gloo_system.rb', line 146

def msg_hostname
  return Socket.gethostname
end

#msg_lineObject

Carriage return (line feed)



190
191
192
# File 'lib/gloo_lang/core/gloo_system.rb', line 190

def msg_line
  return "\n"
end

#msg_platform_cpuObject

Get the platform CPU



213
214
215
216
# File 'lib/gloo_lang/core/gloo_system.rb', line 213

def msg_platform_cpu
  platform = TTY::Platform.new
  return platform.cpu
end

#msg_platform_linux?Boolean

Is the platform Linux?

Returns:

  • (Boolean)


243
244
245
246
# File 'lib/gloo_lang/core/gloo_system.rb', line 243

def msg_platform_linux?
  platform = TTY::Platform.new
  return platform.linux?
end

#msg_platform_mac?Boolean

Is the platform Mac?

Returns:

  • (Boolean)


249
250
251
252
# File 'lib/gloo_lang/core/gloo_system.rb', line 249

def msg_platform_mac?
  platform = TTY::Platform.new
  return platform.mac?
end

#msg_platform_osObject

Get the platform Operating System



219
220
221
222
# File 'lib/gloo_lang/core/gloo_system.rb', line 219

def msg_platform_os
  platform = TTY::Platform.new
  return platform.os
end

#msg_platform_unix?Boolean

Is the platform Unix?

Returns:

  • (Boolean)


237
238
239
240
# File 'lib/gloo_lang/core/gloo_system.rb', line 237

def msg_platform_unix?
  platform = TTY::Platform.new
  return platform.unix?
end

#msg_platform_versionObject

Get the platform version



225
226
227
228
# File 'lib/gloo_lang/core/gloo_system.rb', line 225

def msg_platform_version
  platform = TTY::Platform.new
  return platform.version
end

#msg_platform_windows?Boolean

Is the platform Windows?

Returns:

  • (Boolean)


231
232
233
234
# File 'lib/gloo_lang/core/gloo_system.rb', line 231

def msg_platform_windows?
  platform = TTY::Platform.new
  return platform.windows?
end

#msg_screen_colsObject

Get the number of columns on screen.



204
205
206
# File 'lib/gloo_lang/core/gloo_system.rb', line 204

def msg_screen_cols
  return GlooLang::App::Settings.cols( @engine )
end

#msg_screen_linesObject

Get the number of lines on screen.



199
200
201
# File 'lib/gloo_lang/core/gloo_system.rb', line 199

def msg_screen_lines
  return GlooLang::App::Settings.lines( @engine )
end

#msg_userObject

Get the logged in User.



151
152
153
# File 'lib/gloo_lang/core/gloo_system.rb', line 151

def msg_user
  return ENV[ 'USER' ]
end

#msg_user_homeObject

Get the user’s home directory.



156
157
158
# File 'lib/gloo_lang/core/gloo_system.rb', line 156

def msg_user_home
  return File.expand_path( '~' )
end

#msg_working_dirObject

Get the working directory.



161
162
163
# File 'lib/gloo_lang/core/gloo_system.rb', line 161

def msg_working_dir
  return Dir.pwd
end

#paramObject

Get the parameter.



66
67
68
69
70
# File 'lib/gloo_lang/core/gloo_system.rb', line 66

def param
  return nil unless @pn && @pn.segments.count > 1

  return @pn.segments[ 1..-1 ].join( '_' )
end

#root?Boolean

Is this the root object?

Returns:

  • (Boolean)


48
49
50
# File 'lib/gloo_lang/core/gloo_system.rb', line 48

def root?
  return false
end

#set_value(new_value) ⇒ Object

There is no value object in the system.



82
83
84
# File 'lib/gloo_lang/core/gloo_system.rb', line 82

def set_value( new_value )
  # overriding base functionality with dummy function
end

#type_displayObject

The object type, suitable for display.



43
44
45
# File 'lib/gloo_lang/core/gloo_system.rb', line 43

def type_display
  return self.class.typename
end

#valueObject

Get the system value.



75
76
77
# File 'lib/gloo_lang/core/gloo_system.rb', line 75

def value
  return dispatch param
end

#value_displayObject

Get the value for display purposes.



89
90
91
# File 'lib/gloo_lang/core/gloo_system.rb', line 89

def value_display
  return value
end

#value_is_array?Boolean

Is the value an Array?

Returns:

  • (Boolean)


103
104
105
# File 'lib/gloo_lang/core/gloo_system.rb', line 103

def value_is_array?
  return false
end

#value_is_blank?Boolean

Is the value a blank string?

Returns:

  • (Boolean)


110
111
112
# File 'lib/gloo_lang/core/gloo_system.rb', line 110

def value_is_blank?
  return true
end

#value_string?Boolean

Is the value a String?

Returns:

  • (Boolean)


96
97
98
# File 'lib/gloo_lang/core/gloo_system.rb', line 96

def value_string?
  return true
end