Module: JRubyFX::Utils::CommonUtils
- Included in:
- JRubyFX, Java::javafx::scene::input::DragEvent
- Defined in:
- lib/jrubyfx/utils/common_utils.rb
Overview
Utilities to manage argument properties for build/with
Instance Method Summary collapse
-
#attempt_conversion(obj, name, *values) ⇒ Object
Attempts to convert given value to JavaFX equvalent, if any, by calling obj.name_CommonConverters::ARG_CONVERTER_SUFFING, which is created by calling CommonConverters.converter_for in your class.
-
#populate_properties(obj, properties) ⇒ Object
Sets the hashmap given on the passed in object as a set of properties, using converter if necessary.
-
#split_args_from_properties(*args) ⇒ Object
If last argument of the arg list is a hash-like entity (:each_pair) then this strip off last argument and return it as second return value.
Instance Method Details
#attempt_conversion(obj, name, *values) ⇒ Object
Attempts to convert given value to JavaFX equvalent, if any, by calling obj.name_CommonConverters::ARG_CONVERTER_SUFFING, which is created by calling CommonConverters.converter_for in your class. See CommonConverters for current conversions
59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/jrubyfx/utils/common_utils.rb', line 59 def attempt_conversion(obj, name, *values) converter_method = name.to_s + JRubyFX::Utils::CommonConverters::ARG_CONVERTER_SUFFIX # Each type can create their own converter method to coerce things # like symbols into real values JavaFX likes. if obj.respond_to? converter_method values = obj.__send__ converter_method, *values end values end |
#populate_properties(obj, properties) ⇒ Object
Sets the hashmap given on the passed in object as a set of properties, using converter if necessary.
46 47 48 49 50 51 |
# File 'lib/jrubyfx/utils/common_utils.rb', line 46 def populate_properties(obj, properties) properties.each_pair do |name, value| obj.send(name.to_s + '=', *attempt_conversion(obj, name, value)) end obj end |
#split_args_from_properties(*args) ⇒ Object
If last argument of the arg list is a hash-like entity (:each_pair) then this strip off last argument and return it as second return value.
Examples:
split_args_from_properties(1, 2, a: 1) #=> [[1,2], {a: 1}]
split_args_from_properties(1, 2) #=> [[1,2], {}]
32 33 34 35 36 37 38 39 40 |
# File 'lib/jrubyfx/utils/common_utils.rb', line 32 def split_args_from_properties(*args) if !args.empty? and args.last.respond_to? :each_pair properties = args.pop else properties = {} end return args, properties end |