diff --git a/CHANGELOG.md b/CHANGELOG.md index 8975d7c9..4ef99629 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ - Add -BinstalldirChooser=true / -Bcopyright=string / -Bvendor=string / -Bwin.menuGroup=string to Package class to support Windows packaging - Configure 'logging' to generate log files on Windows/Linux/Mac and syslog where available - Configure 'logging' to do async buffered logging via a thread to avoid impacting app performance with logging +- Update all logger calls to be lazy blocks ### 0.4.1 diff --git a/TODO.md b/TODO.md index c38b00c2..b3ff191e 100644 --- a/TODO.md +++ b/TODO.md @@ -6,7 +6,8 @@ Here is a list of tasks to do (moved to [CHANGELOG.md](CHANGELOG.md) once done). ### 0.5.0 -- Update all logger calls to be lazy blocks +- Consider making "DSL keyword cannot be handled" errors at level :warn +- Lower logging level for unimportant debug info - Upgrade to glimmer 0.10.0 to take advantage of the new logging library ### 0.6.0 diff --git a/lib/glimmer/dsl/swt/custom_widget_expression.rb b/lib/glimmer/dsl/swt/custom_widget_expression.rb index 48bab03f..880a644b 100644 --- a/lib/glimmer/dsl/swt/custom_widget_expression.rb +++ b/lib/glimmer/dsl/swt/custom_widget_expression.rb @@ -1,3 +1,4 @@ + require 'glimmer' require 'glimmer/dsl/expression' require 'glimmer/dsl/parent_expression' diff --git a/lib/glimmer/dsl/swt/tab_item_expression.rb b/lib/glimmer/dsl/swt/tab_item_expression.rb index 483f9aab..e5a78606 100644 --- a/lib/glimmer/dsl/swt/tab_item_expression.rb +++ b/lib/glimmer/dsl/swt/tab_item_expression.rb @@ -18,7 +18,7 @@ def can_interpret?(parent, keyword, *args, &block) if parent.swt_widget.is_a?(TabFolder) return true else - Glimmer::Config.logger&.error "tab_item widget may only be used directly under a tab_folder widget!" + Glimmer::Config.logger.error {"tab_item widget may only be used directly under a tab_folder widget!"} end end false diff --git a/lib/glimmer/dsl/swt/widget_listener_expression.rb b/lib/glimmer/dsl/swt/widget_listener_expression.rb index 0bb57f37..b2515ae3 100644 --- a/lib/glimmer/dsl/swt/widget_listener_expression.rb +++ b/lib/glimmer/dsl/swt/widget_listener_expression.rb @@ -8,17 +8,17 @@ class WidgetListenerExpression < Expression include_package 'org.eclipse.swt.widgets' def can_interpret?(parent, keyword, *args, &block) - Glimmer::Config.logger&.debug "keyword starts with on_: #{keyword.start_with?('on_')}" + Glimmer::Config.logger.debug {"keyword starts with on_: #{keyword.start_with?('on_')}"} return false unless keyword.start_with?('on_') widget_or_display_parentage = parent.respond_to?(:swt_widget) || parent.is_a?(Glimmer::SWT::DisplayProxy) - Glimmer::Config.logger&.debug "parent is a widget or display: #{widget_or_display_parentage}" + Glimmer::Config.logger.debug {"parent is a widget or display: #{widget_or_display_parentage}"} return false unless widget_or_display_parentage - Glimmer::Config.logger&.debug "block exists?: #{!block.nil?}" + Glimmer::Config.logger.debug {"block exists?: #{!block.nil?}"} raise Glimmer::Error, "Listener is missing block for keyword: #{keyword}" unless block_given? - Glimmer::Config.logger&.debug "args are empty?: #{args.empty?}" + Glimmer::Config.logger.debug {"args are empty?: #{args.empty?}"} raise Glimmer::Error, "Invalid listener arguments for keyword: #{keyword}(#{args})" unless args.empty? result = parent.can_handle_observation_request?(keyword) - Glimmer::Config.logger&.debug "can add listener? #{result}" + Glimmer::Config.logger.debug {"can add listener? #{result}"} raise Glimmer::Error, "Invalid listener keyword: #{keyword}" unless result true end diff --git a/lib/glimmer/swt/color_proxy.rb b/lib/glimmer/swt/color_proxy.rb index a59bddb8..0278d884 100644 --- a/lib/glimmer/swt/color_proxy.rb +++ b/lib/glimmer/swt/color_proxy.rb @@ -52,7 +52,7 @@ def swt_color def method_missing(method, *args, &block) swt_color.send(method, *args, &block) rescue => e - Glimmer::Config.logger&.debug "Neither ColorProxy nor #{swt_color.class.name} can handle the method ##{method}" + Glimmer::Config.logger.debug {"Neither ColorProxy nor #{swt_color.class.name} can handle the method ##{method}"} super end diff --git a/lib/glimmer/swt/display_proxy.rb b/lib/glimmer/swt/display_proxy.rb index ade5f8fe..3748353e 100644 --- a/lib/glimmer/swt/display_proxy.rb +++ b/lib/glimmer/swt/display_proxy.rb @@ -39,7 +39,7 @@ def initialize(*args) def method_missing(method, *args, &block) swt_display.send(method, *args, &block) rescue => e - Glimmer::Config.logger&.debug "Neither DisplayProxy nor #{swt_display.class.name} can handle the method ##{method}" + Glimmer::Config.logger.debug {"Neither DisplayProxy nor #{swt_display.class.name} can handle the method ##{method}"} super end diff --git a/lib/glimmer/swt/layout_data_proxy.rb b/lib/glimmer/swt/layout_data_proxy.rb index 1f184c62..f372ddb2 100644 --- a/lib/glimmer/swt/layout_data_proxy.rb +++ b/lib/glimmer/swt/layout_data_proxy.rb @@ -31,7 +31,7 @@ def initialize(widget_proxy, args) begin @swt_layout_data = swt_layout_data_class.new(*args) rescue => e - Glimmer::Config.logger&.debug "#{e.message}\n#{e.backtrace.join("\n")}" + Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"} @swt_layout_data = args.first if args.count == 1 end @widget_proxy.swt_widget.setLayoutData(@swt_layout_data) diff --git a/lib/glimmer/swt/layout_proxy.rb b/lib/glimmer/swt/layout_proxy.rb index a105db53..61fe2277 100644 --- a/lib/glimmer/swt/layout_proxy.rb +++ b/lib/glimmer/swt/layout_proxy.rb @@ -34,8 +34,8 @@ def swt_layout_class_for(underscored_layout_name) end swt_layout_class rescue => e - Glimmer::Config.logger&.debug e.message - # Glimmer::Config.logger&.debug "#{e.message}\n#{e.backtrace.join("\n")}" + Glimmer::Config.logger.debug {e.message} + # Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"} raise e end end diff --git a/lib/glimmer/swt/shell_proxy.rb b/lib/glimmer/swt/shell_proxy.rb index 9aa7138f..fcb73df0 100644 --- a/lib/glimmer/swt/shell_proxy.rb +++ b/lib/glimmer/swt/shell_proxy.rb @@ -134,7 +134,7 @@ def start_event_loop begin @display.sleep unless @display.readAndDispatch rescue => e - Glimmer::Config.logger&.debug e.full_message + Glimmer::Config.logger.debug {e.full_message} end end end diff --git a/lib/glimmer/swt/style_constantizable.rb b/lib/glimmer/swt/style_constantizable.rb index 42e790f9..9832d05a 100644 --- a/lib/glimmer/swt/style_constantizable.rb +++ b/lib/glimmer/swt/style_constantizable.rb @@ -61,12 +61,12 @@ def constant(symbol) negative ? ~bit_value : bit_value rescue => e begin -# Glimmer::Config.logger&.debug(e.full_message) +# Glimmer::Config.logger.debug {e.full_message} alternative_swt_constant_symbol = constant_source_class.constants.find {|c| c.to_s.upcase == swt_constant_symbol.to_s.upcase} bit_value = constant_source_class.const_get(alternative_swt_constant_symbol) negative ? ~bit_value : bit_value rescue => e -# Glimmer::Config.logger&.debug(e.full_message) +# Glimmer::Config.logger.debug {e.full_message} bit_value = extra_styles[swt_constant_symbol] if bit_value negative ? ~bit_value : bit_value diff --git a/lib/glimmer/swt/table_proxy.rb b/lib/glimmer/swt/table_proxy.rb index c6e8944b..84785503 100644 --- a/lib/glimmer/swt/table_proxy.rb +++ b/lib/glimmer/swt/table_proxy.rb @@ -297,7 +297,7 @@ def edit_table_item(table_item, column_index, before_write: nil, after_write: ni } @table_editor.setEditor(@table_editor_widget_proxy.swt_widget, table_item, column_index) rescue => e - Glimmer::Config.logger&.error e.full_message + Glimmer::Config.logger.error {e.full_message} raise e end diff --git a/lib/glimmer/swt/widget_proxy.rb b/lib/glimmer/swt/widget_proxy.rb index 67d7e5da..da4c944d 100644 --- a/lib/glimmer/swt/widget_proxy.rb +++ b/lib/glimmer/swt/widget_proxy.rb @@ -268,17 +268,17 @@ def self.swt_widget_class_for(underscored_widget_name) swt_widget_name = underscored_widget_name.camelcase(:upper) swt_widget_class = eval(swt_widget_name) unless swt_widget_class.ancestors.include?(org.eclipse.swt.widgets.Widget) - Glimmer::Config.logger&.debug("Class #{swt_widget_class} matching #{underscored_widget_name} is not a subclass of org.eclipse.swt.widgets.Widget") + Glimmer::Config.logger.debug {"Class #{swt_widget_class} matching #{underscored_widget_name} is not a subclass of org.eclipse.swt.widgets.Widget"} return nil end swt_widget_class rescue SyntaxError, NameError => e - Glimmer::Config.logger&.debug e.full_message - # Glimmer::Config.logger&.debug("#{e.message}\n#{e.backtrace.join("\n")}") + Glimmer::Config.logger.debug {e.full_message} + # Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"} nil rescue => e - Glimmer::Config.logger&.debug e.full_message - # Glimmer::Config.logger&.debug("#{e.message}\n#{e.backtrace.join("\n")}") + Glimmer::Config.logger.debug {e.full_message} + # Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"} nil end @@ -359,7 +359,7 @@ def can_handle_drag_observation_request?(observation_request) end end rescue => e - Glimmer::Config.logger&.debug(e.full_message) + Glimmer::Config.logger.debug {e.full_message} false end @@ -399,7 +399,7 @@ def content(&block) def method_missing(method, *args, &block) swt_widget.send(method, *args, &block) rescue => e - Glimmer::Config.logger&.debug "Neither WidgetProxy nor #{swt_widget.class.name} can handle the method ##{method}" + Glimmer::Config.logger.debug {"Neither WidgetProxy nor #{swt_widget.class.name} can handle the method ##{method}"} super end diff --git a/lib/glimmer/ui/custom_widget.rb b/lib/glimmer/ui/custom_widget.rb index d480ca4c..423dfa09 100644 --- a/lib/glimmer/ui/custom_widget.rb +++ b/lib/glimmer/ui/custom_widget.rb @@ -36,15 +36,15 @@ def for(underscored_custom_widget_name) return constant if constant.ancestors.include?(Glimmer::UI::CustomWidget) constant rescue => e - # Glimmer::Config.logger&.debug "#{e.message}\n#{e.backtrace.join("\n")}" + # Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"} result end end end raise "#{underscored_custom_widget_name} has no custom widget class!" rescue => e - Glimmer::Config.logger&.debug e.message - Glimmer::Config.logger&.debug "#{e.message}\n#{e.backtrace.join("\n")}" + Glimmer::Config.logger.debug {e.message} + Glimmer::Config.logger.debug {"#{e.message}\n#{e.backtrace.join("\n")}"} nil end