Class: GirFFI::Builders::ArgumentBuilderCollection
- Inherits:
-
Object
- Object
- GirFFI::Builders::ArgumentBuilderCollection
- Defined in:
- lib/gir_ffi/builders/argument_builder_collection.rb
Overview
Class representing the argument and return value builders for a method, callback mapping function or marshaller. Implements collecting the conversion code and parameter and variable names for use by function builders.
Instance Attribute Summary collapse
-
#return_value_builder ⇒ Object
readonly
Returns the value of attribute return_value_builder.
Instance Method Summary collapse
- #call_argument_names ⇒ Object
- #capture_variable_names ⇒ Object
- #has_return_values? ⇒ Boolean
-
#initialize(return_value_builder, argument_builders, receiver_builder: nil, error_argument_builder: nil) ⇒ ArgumentBuilderCollection
constructor
A new instance of ArgumentBuilderCollection.
- #method_argument_names ⇒ Object
- #parameter_preparation ⇒ Object
- #return_value_conversion ⇒ Object
- #return_value_name ⇒ Object
- #return_value_names ⇒ Object
Constructor Details
#initialize(return_value_builder, argument_builders, receiver_builder: nil, error_argument_builder: nil) ⇒ ArgumentBuilderCollection
Returns a new instance of ArgumentBuilderCollection.
11 12 13 14 15 16 17 18 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 11 def initialize(return_value_builder, argument_builders, receiver_builder: nil, error_argument_builder: nil) @receiver_builder = receiver_builder @error_argument_builder = error_argument_builder @base_argument_builders = argument_builders @return_value_builder = return_value_builder set_up_argument_relations end |
Instance Attribute Details
#return_value_builder ⇒ Object (readonly)
Returns the value of attribute return_value_builder.
9 10 11 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 9 def return_value_builder @return_value_builder end |
Instance Method Details
#call_argument_names ⇒ Object
33 34 35 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 33 def call_argument_names @call_argument_names ||= argument_builders.map(&:call_argument_name).compact end |
#capture_variable_names ⇒ Object
28 29 30 31 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 28 def capture_variable_names @capture_variable_names ||= all_builders.map(&:capture_variable_name).compact end |
#has_return_values? ⇒ Boolean
55 56 57 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 55 def has_return_values? return_value_names.any? end |
#method_argument_names ⇒ Object
37 38 39 40 41 42 43 44 45 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 37 def method_argument_names @method_argument_names ||= begin base, block = split_off_block_argument args = base_argument_names(base) args << "&#{block.method_argument_name}" if block args end end |
#parameter_preparation ⇒ Object
20 21 22 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 20 def parameter_preparation builders_for_pre_conversion.map(&:pre_conversion).flatten end |
#return_value_conversion ⇒ Object
24 25 26 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 24 def return_value_conversion builders_for_post_conversion.map(&:post_conversion).flatten end |
#return_value_name ⇒ Object
47 48 49 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 47 def return_value_name return_value_builder.return_value_name end |
#return_value_names ⇒ Object
51 52 53 |
# File 'lib/gir_ffi/builders/argument_builder_collection.rb', line 51 def return_value_names @return_value_names ||= all_builders.map(&:return_value_name).compact end |