lib/ext/glimmer/config.rb in glimmer-dsl-swt-4.18.4.5 vs lib/ext/glimmer/config.rb in glimmer-dsl-swt-4.18.4.6
- old
+ new
@@ -1,167 +1,167 @@
-# Copyright (c) 2007-2021 Andy Maleh
-#
-# Permission is hereby granted, free of charge, to any person obtaining
-# a copy of this software and associated documentation files (the
-# "Software"), to deal in the Software without restriction, including
-# without limitation the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the Software, and to
-# permit persons to whom the Software is furnished to do so, subject to
-# the following conditions:
-#
-# The above copyright notice and this permission notice shall be
-# included in all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-require 'glimmer/config'
-
-module Glimmer
- module Config
- DEFAULT_IMPORT_SWT_PACKAGES = [
- 'org.eclipse.swt',
- 'org.eclipse.swt.widgets',
- 'org.eclipse.swt.layout',
- 'org.eclipse.swt.graphics',
- 'org.eclipse.swt.browser',
- 'org.eclipse.swt.custom',
- 'org.eclipse.swt.dnd',
- ]
- DEFAULT_AUTO_SYNC_EXEC = false
- GUI_THREAD = Thread.current
-
- class << self
- # Tells Glimmer to import SWT packages into including class (default: true)
- def import_swt_packages=(value)
- @@import_swt_packages = value
- end
-
- # Returns whether Glimmer will import SWT packages into including class
- def import_swt_packages
- @@import_swt_packages = DEFAULT_IMPORT_SWT_PACKAGES if !defined?(@@import_swt_packages) || (defined?(@@import_swt_packages) && @@import_swt_packages == true)
- @@import_swt_packages
- end
-
- # Tells Glimmer to avoid automatic use of sync_exec when invoking GUI calls from another thread (default: true)
- def auto_sync_exec=(value)
- @@auto_sync_exec = value
- end
-
- # Returns whether Glimmer will import SWT packages into including class
- def auto_sync_exec
- @@auto_sync_exec = DEFAULT_AUTO_SYNC_EXEC if !defined?(@@auto_sync_exec)
- @@auto_sync_exec
- end
- alias auto_sync_exec? auto_sync_exec
-
- def require_sync_exec?
- Thread.current != GUI_THREAD
- end
-
- # Returns Logging Devices. Default is [:stdout, :syslog]
- def logging_devices
- unless defined? @@logging_devices
- @@logging_devices = [:stdout, :syslog]
- end
- @@logging_devices
- end
-
- # Logging Devices is an array of these possible values: :stdout (default), :stderr, :file, :syslog (default), :stringio
- def logging_devices=(devices)
- @@logging_devices = devices
- reset_logger!
- end
-
- def logging_device_file_options
- @@logging_device_file_options = {size: 1_000_000, age: 'daily', roll_by: 'number'} unless defined? @@logging_device_file_options
- @@logging_device_file_options
- end
-
- def logging_device_file_options=(custom_options)
- @@logging_device_file_options = custom_options
- reset_logger!
- end
-
- def logging_appender_options
- @@logging_appender_options = {async: true, auto_flushing: 500, write_size: 500, flush_period: 60, immediate_at: [:error, :fatal], layout: logging_layout} unless defined? @@logging_appender_options
- # TODO make this a glimmer command option
- if ENV['GLIMMER_LOGGER_ASYNC'].to_s.downcase == 'false'
- @@logging_appender_options.merge!(async: false, auto_flushing: 1, immediate_at: [:debug, :info, :warn, :error, :fatal])
- end
- @@logging_appender_options
- end
-
- def logging_appender_options=(custom_options)
- @@logging_appender_options = custom_options
- reset_logger!
- end
-
- def logging_layout
- unless defined? @@logging_layout
- @@logging_layout = Logging.layouts.pattern(
- pattern: '[%d] %-5l %c: %m\n',
- date_pattern: '%Y-%m-%d %H:%M:%S'
- )
- end
- @@logging_layout
- end
-
- def logging_layout=(custom_layout)
- @@logging_layout = custom_layout
- reset_logger!
- end
-
- def reset_logger!
- @first_time = !defined?(@@logger)
- old_level = logger.level unless @first_time
- self.logger = Logging.logger['glimmer'].tap do |logger|
- logger.level = old_level || :error
- appenders = []
- appenders << Logging.appenders.stdout(logging_appender_options) if logging_devices.include?(:stdout)
- appenders << Logging.appenders.stderr(logging_appender_options) if logging_devices.include?(:stderr)
- if logging_devices.include?(:file)
- require 'fileutils'
- FileUtils.mkdir_p('log')
- appenders << Logging.appenders.rolling_file('log/glimmer.log', logging_appender_options.merge(logging_device_file_options)) if logging_devices.include?(:file)
- end
- if Object.const_defined?(:Syslog) && logging_devices.include?(:syslog)
- Syslog.close if Syslog.opened?
- appenders << Logging.appenders.syslog('glimmer', logging_appender_options)
- end
- logger.appenders = appenders
- end
-
- end
-
- end
-
- end
-
-end
-
-Glimmer::Config.reset_logger! unless ENV['GLIMMER_LOGGER_ENABLED'].to_s.downcase == 'false'
-if ENV['GLIMMER_LOGGER_LEVEL']
- # if glimmer log level is being overridden for debugging purposes, then disable async logging making logging immediate
- Glimmer::Config.logging_appender_options = Glimmer::Config.logging_appender_options.merge(async: false, auto_flushing: 1)
- Glimmer::Config.logging_devices = [:stdout]
- begin
- Glimmer::Config.logger.level = ENV['GLIMMER_LOGGER_LEVEL'].strip
- rescue => e
- puts e.message
- end
-end
-
-Glimmer::Config.excluded_keyword_checkers << lambda do |method_symbol, *args|
- method = method_symbol.to_s
- return true if method == 'post_initialize_child'
- return true if method == 'handle'
- return true if method.end_with?('=')
- return true if ['drag_source_proxy', 'drop_target_proxy'].include?(method) && is_a?(Glimmer::UI::CustomWidget)
- return true if method == 'dispose' && is_a?(Glimmer::UI::CustomWidget) && respond_to?(method)
- return true if ['finish_edit!', 'search', 'all_tree_items', 'depth_first_search'].include?(method) && is_a?(Glimmer::UI::CustomWidget) && body_root.respond_to?(method)
-end
+# Copyright (c) 2007-2021 Andy Maleh
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+require 'glimmer/config'
+
+module Glimmer
+ module Config
+ DEFAULT_IMPORT_SWT_PACKAGES = [
+ 'org.eclipse.swt',
+ 'org.eclipse.swt.widgets',
+ 'org.eclipse.swt.layout',
+ 'org.eclipse.swt.graphics',
+ 'org.eclipse.swt.browser',
+ 'org.eclipse.swt.custom',
+ 'org.eclipse.swt.dnd',
+ ]
+ DEFAULT_AUTO_SYNC_EXEC = false
+ GUI_THREAD = Thread.current
+
+ class << self
+ # Tells Glimmer to import SWT packages into including class (default: true)
+ def import_swt_packages=(value)
+ @@import_swt_packages = value
+ end
+
+ # Returns whether Glimmer will import SWT packages into including class
+ def import_swt_packages
+ @@import_swt_packages = DEFAULT_IMPORT_SWT_PACKAGES if !defined?(@@import_swt_packages) || (defined?(@@import_swt_packages) && @@import_swt_packages == true)
+ @@import_swt_packages
+ end
+
+ # Tells Glimmer to avoid automatic use of sync_exec when invoking GUI calls from another thread (default: true)
+ def auto_sync_exec=(value)
+ @@auto_sync_exec = value
+ end
+
+ # Returns whether Glimmer will import SWT packages into including class
+ def auto_sync_exec
+ @@auto_sync_exec = DEFAULT_AUTO_SYNC_EXEC if !defined?(@@auto_sync_exec)
+ @@auto_sync_exec
+ end
+ alias auto_sync_exec? auto_sync_exec
+
+ def require_sync_exec?
+ Thread.current != GUI_THREAD
+ end
+
+ # Returns Logging Devices. Default is [:stdout, :syslog]
+ def logging_devices
+ unless defined? @@logging_devices
+ @@logging_devices = [:stdout, :syslog]
+ end
+ @@logging_devices
+ end
+
+ # Logging Devices is an array of these possible values: :stdout (default), :stderr, :file, :syslog (default), :stringio
+ def logging_devices=(devices)
+ @@logging_devices = devices
+ reset_logger!
+ end
+
+ def logging_device_file_options
+ @@logging_device_file_options = {size: 1_000_000, age: 'daily', roll_by: 'number'} unless defined? @@logging_device_file_options
+ @@logging_device_file_options
+ end
+
+ def logging_device_file_options=(custom_options)
+ @@logging_device_file_options = custom_options
+ reset_logger!
+ end
+
+ def logging_appender_options
+ @@logging_appender_options = {async: true, auto_flushing: 500, write_size: 500, flush_period: 60, immediate_at: [:error, :fatal], layout: logging_layout} unless defined? @@logging_appender_options
+ # TODO make this a glimmer command option
+ if ENV['GLIMMER_LOGGER_ASYNC'].to_s.downcase == 'false'
+ @@logging_appender_options.merge!(async: false, auto_flushing: 1, immediate_at: [:debug, :info, :warn, :error, :fatal])
+ end
+ @@logging_appender_options
+ end
+
+ def logging_appender_options=(custom_options)
+ @@logging_appender_options = custom_options
+ reset_logger!
+ end
+
+ def logging_layout
+ unless defined? @@logging_layout
+ @@logging_layout = Logging.layouts.pattern(
+ pattern: '[%d] %-5l %c: %m\n',
+ date_pattern: '%Y-%m-%d %H:%M:%S'
+ )
+ end
+ @@logging_layout
+ end
+
+ def logging_layout=(custom_layout)
+ @@logging_layout = custom_layout
+ reset_logger!
+ end
+
+ def reset_logger!
+ @first_time = !defined?(@@logger)
+ old_level = logger.level unless @first_time
+ self.logger = Logging.logger['glimmer'].tap do |logger|
+ logger.level = old_level || :error
+ appenders = []
+ appenders << Logging.appenders.stdout(logging_appender_options) if logging_devices.include?(:stdout)
+ appenders << Logging.appenders.stderr(logging_appender_options) if logging_devices.include?(:stderr)
+ if logging_devices.include?(:file)
+ require 'fileutils'
+ FileUtils.mkdir_p('log')
+ appenders << Logging.appenders.rolling_file('log/glimmer.log', logging_appender_options.merge(logging_device_file_options)) if logging_devices.include?(:file)
+ end
+ if Object.const_defined?(:Syslog) && logging_devices.include?(:syslog)
+ Syslog.close if Syslog.opened?
+ appenders << Logging.appenders.syslog('glimmer', logging_appender_options)
+ end
+ logger.appenders = appenders
+ end
+
+ end
+
+ end
+
+ end
+
+end
+
+Glimmer::Config.reset_logger! unless ENV['GLIMMER_LOGGER_ENABLED'].to_s.downcase == 'false'
+if ENV['GLIMMER_LOGGER_LEVEL']
+ # if glimmer log level is being overridden for debugging purposes, then disable async logging making logging immediate
+ Glimmer::Config.logging_appender_options = Glimmer::Config.logging_appender_options.merge(async: false, auto_flushing: 1)
+ Glimmer::Config.logging_devices = [:stdout]
+ begin
+ Glimmer::Config.logger.level = ENV['GLIMMER_LOGGER_LEVEL'].strip
+ rescue => e
+ puts e.message
+ end
+end
+
+Glimmer::Config.excluded_keyword_checkers << lambda do |method_symbol, *args|
+ method = method_symbol.to_s
+ return true if method == 'post_initialize_child'
+ return true if method == 'handle'
+ return true if method.end_with?('=')
+ return true if ['drag_source_proxy', 'drop_target_proxy'].include?(method) && is_a?(Glimmer::UI::CustomWidget)
+ return true if method == 'dispose' && is_a?(Glimmer::UI::CustomWidget) && respond_to?(method)
+ return true if ['finish_edit!', 'search', 'all_tree_items', 'depth_first_search'].include?(method) && is_a?(Glimmer::UI::CustomWidget) && body_root.respond_to?(method)
+end