class GirFFI::Builders::FieldBuilder::GetterBuilder
Builder
for field getters TODO: Derive from BaseMethodBuilder
Public Class Methods
Source
# File lib/gir_ffi/builders/field_builder.rb, line 138 def initialize(info) @info = info end
Public Instance Methods
Source
# File lib/gir_ffi/builders/field_builder.rb, line 154 def method_arguments [] end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 142 def method_definition template.method_definition end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 150 def method_name @info.name end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 166 def result [getter_argument_builder.return_value_name] end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 146 def singleton_method? false end
Private Instance Methods
Source
# File lib/gir_ffi/builders/field_builder.rb, line 180 def argument_builders @argument_builders ||= ArgumentBuilderCollection.new( NullReturnValueBuilder.new, base_argument_builders) end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 206 def array_length_field @info.related_array_length_field end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 187 def base_argument_builders if array_length_field [getter_argument_builder, length_argument_builder] else [getter_argument_builder] end end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 227 def field_argument_info @field_argument_info ||= GetterArgumentInfo.new "value", field_type end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 215 def field_offset @info.offset end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 223 def field_type @field_type ||= @info.field_type end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 219 def field_type_tag @field_type_tag ||= field_type.tag_or_class.inspect end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 195 def getter_argument_builder @getter_argument_builder ||= GetterArgumentBuilder.new(var_gen, field_argument_info, @info, array_length_idx: array_length_field ? 1 : -1) end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 201 def length_argument_builder @length_argument_builder ||= GetterArgumentBuilder.new(var_gen, length_argument_info, array_length_field) end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 210 def length_argument_info @length_argument_info ||= GetterArgumentInfo.new "length", array_length_field.field_type end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 176 def template @template ||= MethodTemplate.new(self, argument_builders) end
Source
# File lib/gir_ffi/builders/field_builder.rb, line 172 def var_gen @var_gen ||= VariableNameGenerator.new end