Module: Glimmer
- Included in:
- DataBinding::ListSelectionBinding, DataBinding::WidgetBinding
- Defined in:
- lib/glimmer.rb,
lib/glimmer/dsl.rb,
lib/glimmer/error.rb,
lib/glimmer/launcher.rb,
lib/glimmer/ui/video.rb,
lib/glimmer/dsl/engine.rb,
lib/glimmer/swt/packages.rb,
lib/glimmer/swt/swt_proxy.rb,
lib/glimmer/dsl/expression.rb,
lib/glimmer/swt/font_proxy.rb,
lib/glimmer/swt/menu_proxy.rb,
lib/glimmer/swt/color_proxy.rb,
lib/glimmer/swt/shell_proxy.rb,
lib/glimmer/ui/custom_shell.rb,
lib/glimmer/swt/layout_proxy.rb,
lib/glimmer/swt/widget_proxy.rb,
lib/glimmer/ui/custom_widget.rb,
lib/glimmer/swt/display_proxy.rb,
lib/glimmer/util/proc_tracker.rb,
lib/glimmer/dsl/swt_expression.rb,
lib/glimmer/swt/tab_item_proxy.rb,
lib/glimmer/dsl/bind_expression.rb,
lib/glimmer/dsl/exec_expression.rb,
lib/glimmer/dsl/menu_expression.rb,
lib/glimmer/dsl/color_expression.rb,
lib/glimmer/dsl/shell_expression.rb,
lib/glimmer/data_binding/observer.rb,
lib/glimmer/dsl/layout_expression.rb,
lib/glimmer/dsl/parent_expression.rb,
lib/glimmer/dsl/static_expression.rb,
lib/glimmer/dsl/widget_expression.rb,
lib/glimmer/invalid_keyword_error.rb,
lib/glimmer/swt/layout_data_proxy.rb,
lib/glimmer/dsl/display_expression.rb,
lib/glimmer/dsl/expression_handler.rb,
lib/glimmer/dsl/observe_expression.rb,
lib/glimmer/data_binding/observable.rb,
lib/glimmer/dsl/menu_bar_expression.rb,
lib/glimmer/dsl/property_expression.rb,
lib/glimmer/dsl/tab_item_expression.rb,
lib/glimmer/dsl/sync_exec_expression.rb,
lib/glimmer/dsl/async_exec_expression.rb,
lib/glimmer/swt/widget_listener_proxy.rb,
lib/glimmer/data_binding/model_binding.rb,
lib/glimmer/dsl/layout_data_expression.rb,
lib/glimmer/data_binding/widget_binding.rb,
lib/glimmer/dsl/data_binding_expression.rb,
lib/glimmer/dsl/custom_widget_expression.rb,
lib/glimmer/data_binding/observable_array.rb,
lib/glimmer/data_binding/observable_model.rb,
lib/glimmer/data_binding/observable_widget.rb,
lib/glimmer/dsl/tree_properties_expression.rb,
lib/glimmer/dsl/widget_listener_expression.rb,
lib/glimmer/data_binding/tree_items_binding.rb,
lib/glimmer/data_binding/table_items_binding.rb,
lib/glimmer/dsl/column_properties_expression.rb,
lib/glimmer/data_binding/list_selection_binding.rb,
lib/glimmer/dsl/tree_items_data_binding_expression.rb,
lib/glimmer/dsl/table_items_data_binding_expression.rb,
lib/glimmer/dsl/list_selection_data_binding_expression.rb,
lib/glimmer/dsl/combo_selection_data_binding_expression.rb
Overview
TODO consider turning static keywords like layout_data into methods
Defined Under Namespace
Modules: DSL, DataBinding, SWT, UI, Util Classes: Error, InvalidKeywordError, Launcher
Constant Summary collapse
- REGEX_METHODS_EXCLUDED =
TODO make it configurable to include or not include perhaps reverting to using included
/^(to_|\[)/
Class Method Summary collapse
- .enable_logging ⇒ Object
-
.import_swt_packages ⇒ Object
Returns whether Glimmer will import SWT packages into including class.
-
.import_swt_packages=(value) ⇒ Object
Tells Glimmer to import SWT packages into including class (default: true).
- .included(klass) ⇒ Object
-
.logger ⇒ Object
Returns Glimmer logger (standard Ruby logger).
Instance Method Summary collapse
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_symbol, *args, &block) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/glimmer.rb', line 56 def method_missing(method_symbol, *args, &block) # This if statement speeds up Glimmer in girb or whenever directly including on main object if method_symbol.to_s.match(REGEX_METHODS_EXCLUDED) raise InvalidKeywordError, "Glimmer excluded keyword: #{method_symbol}" end Glimmer.logger&.debug "Interpreting keyword: #{method_symbol}" Glimmer::DSL::Engine.interpret(method_symbol, *args, &block) rescue InvalidKeywordError => e if !method_symbol.to_s.match(REGEX_METHODS_EXCLUDED) Glimmer.logger&.error e. end Glimmer.logger&.debug "#{e.}\n#{e.backtrace.join("\n")}" super(method_symbol, *args, &block) end |
Class Method Details
.enable_logging ⇒ Object
51 52 53 |
# File 'lib/glimmer.rb', line 51 def enable_logging @@logger = Logger.new(STDOUT).tap {|logger| logger.level = Logger::WARN} end |
.import_swt_packages ⇒ Object
Returns whether Glimmer will import SWT packages into including class
36 37 38 39 40 41 |
# File 'lib/glimmer.rb', line 36 def import_swt_packages unless defined? @@import_swt_packages @@import_swt_packages = true end @@import_swt_packages end |
.import_swt_packages=(value) ⇒ Object
Tells Glimmer to import SWT packages into including class (default: true)
31 32 33 |
# File 'lib/glimmer.rb', line 31 def import_swt_packages=(value) @@import_swt_packages = !!value end |
.included(klass) ⇒ Object
24 25 26 27 28 |
# File 'lib/glimmer.rb', line 24 def included(klass) if import_swt_packages klass.include(SWT::Packages) end end |
.logger ⇒ Object
Returns Glimmer logger (standard Ruby logger)
44 45 46 47 48 49 |
# File 'lib/glimmer.rb', line 44 def logger # unless defined? @@logger # @@logger = Logger.new(STDOUT).tap {|logger| logger.level = Logger::WARN} # end @@logger if defined? @@logger end |