Module: Glimmer
- Included in:
- DSL::XML::NodeParentExpression, DataBinding::ListSelectionBinding, DataBinding::WidgetBinding, XML::Node
- Defined in:
- lib/glimmer.rb,
lib/glimmer/error.rb,
lib/glimmer/package.rb,
lib/glimmer/launcher.rb,
lib/glimmer/ui/video.rb,
lib/glimmer/xml/node.rb,
lib/glimmer/dsl/engine.rb,
lib/glimmer/css/rule_set.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/css/style_sheet.rb,
lib/glimmer/swt/color_proxy.rb,
lib/glimmer/swt/shell_proxy.rb,
lib/glimmer/ui/custom_shell.rb,
lib/glimmer/xml/xml_visitor.rb,
lib/glimmer/swt/layout_proxy.rb,
lib/glimmer/swt/widget_proxy.rb,
lib/glimmer/ui/custom_widget.rb,
lib/glimmer/xml/node_visitor.rb,
lib/glimmer/swt/display_proxy.rb,
lib/glimmer/util/proc_tracker.rb,
lib/glimmer/swt/tab_item_proxy.rb,
lib/glimmer/dsl/css/p_expression.rb,
lib/glimmer/dsl/css/s_expression.rb,
lib/glimmer/data_binding/observer.rb,
lib/glimmer/dsl/parent_expression.rb,
lib/glimmer/dsl/static_expression.rb,
lib/glimmer/invalid_keyword_error.rb,
lib/glimmer/swt/layout_data_proxy.rb,
lib/glimmer/dsl/css/css_expression.rb,
lib/glimmer/dsl/expression_handler.rb,
lib/glimmer/dsl/swt/rgb_expression.rb,
lib/glimmer/dsl/swt/swt_expression.rb,
lib/glimmer/dsl/xml/tag_expression.rb,
lib/glimmer/dsl/xml/xml_expression.rb,
lib/glimmer/xml/name_space_visitor.rb,
lib/glimmer/data_binding/observable.rb,
lib/glimmer/dsl/swt/bind_expression.rb,
lib/glimmer/dsl/swt/exec_expression.rb,
lib/glimmer/dsl/swt/menu_expression.rb,
lib/glimmer/dsl/swt/rgba_expression.rb,
lib/glimmer/dsl/xml/html_expression.rb,
lib/glimmer/dsl/xml/meta_expression.rb,
lib/glimmer/dsl/xml/text_expression.rb,
lib/glimmer/dsl/swt/color_expression.rb,
lib/glimmer/dsl/swt/shell_expression.rb,
lib/glimmer/dsl/top_level_expression.rb,
lib/glimmer/dsl/swt/layout_expression.rb,
lib/glimmer/dsl/swt/widget_expression.rb,
lib/glimmer/swt/widget_listener_proxy.rb,
lib/glimmer/data_binding/model_binding.rb,
lib/glimmer/dsl/swt/display_expression.rb,
lib/glimmer/dsl/swt/observe_expression.rb,
lib/glimmer/data_binding/widget_binding.rb,
lib/glimmer/dsl/css/property_expression.rb,
lib/glimmer/dsl/css/rule_set_expression.rb,
lib/glimmer/dsl/swt/menu_bar_expression.rb,
lib/glimmer/dsl/swt/property_expression.rb,
lib/glimmer/dsl/swt/tab_item_expression.rb,
lib/glimmer/dsl/swt/sync_exec_expression.rb,
lib/glimmer/data_binding/observable_array.rb,
lib/glimmer/data_binding/observable_model.rb,
lib/glimmer/dsl/swt/async_exec_expression.rb,
lib/glimmer/dsl/xml/name_space_expression.rb,
lib/glimmer/data_binding/observable_widget.rb,
lib/glimmer/dsl/swt/layout_data_expression.rb,
lib/glimmer/dsl/xml/node_parent_expression.rb,
lib/glimmer/data_binding/tree_items_binding.rb,
lib/glimmer/dsl/swt/data_binding_expression.rb,
lib/glimmer/xml/depth_first_search_iterator.rb,
lib/glimmer/data_binding/table_items_binding.rb,
lib/glimmer/dsl/swt/custom_widget_expression.rb,
lib/glimmer/dsl/swt/tree_properties_expression.rb,
lib/glimmer/dsl/swt/widget_listener_expression.rb,
lib/glimmer/data_binding/list_selection_binding.rb,
lib/glimmer/dsl/swt/column_properties_expression.rb,
lib/glimmer/dsl/swt/tree_items_data_binding_expression.rb,
lib/glimmer/dsl/swt/table_items_data_binding_expression.rb,
lib/glimmer/dsl/swt/list_selection_data_binding_expression.rb,
lib/glimmer/dsl/swt/combo_selection_data_binding_expression.rb
Overview
TODO consider turning static keywords like layout_data into methods
Defined Under Namespace
Modules: CSS, DSL, DataBinding, Package, SWT, UI, Util, XML 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
-
.dsl ⇒ Object
Currently set DSL (e.g. :swt or :xml).
-
.dsl=(dsl_name) ⇒ Object
Sets current DSL (e.g. :swt).
- .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
69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'lib/glimmer.rb', line 69 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
.dsl ⇒ Object
Currently set DSL (e.g. :swt or :xml)
64 65 66 |
# File 'lib/glimmer.rb', line 64 def dsl Glimmer::DSL::Engine.dsl end |
.dsl=(dsl_name) ⇒ Object
Sets current DSL (e.g. :swt)
59 60 61 |
# File 'lib/glimmer.rb', line 59 def dsl=(dsl_name) Glimmer::DSL::Engine.dsl = dsl_name end |
.enable_logging ⇒ Object
54 55 56 |
# File 'lib/glimmer.rb', line 54 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
39 40 41 42 43 44 |
# File 'lib/glimmer.rb', line 39 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)
34 35 36 |
# File 'lib/glimmer.rb', line 34 def import_swt_packages=(value) @@import_swt_packages = !!value end |
.included(klass) ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/glimmer.rb', line 25 def included(klass) if import_swt_packages klass.include(SWT::Packages) klass.extend(SWT::Packages) klass.extend(Glimmer) end end |
.logger ⇒ Object
Returns Glimmer logger (standard Ruby logger)
47 48 49 50 51 52 |
# File 'lib/glimmer.rb', line 47 def logger # unless defined? @@logger # @@logger = Logger.new(STDOUT).tap {|logger| logger.level = Logger::WARN} # end @@logger if defined? @@logger end |