class GirFFI::Builders::FieldBuilder::GetterBuilder
Builder for field getters
Public Class Methods
new(info)
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 120 def initialize(info) @info = info end
Public Instance Methods
invocation()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 144 def invocation nil end
method_arguments()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 136 def method_arguments [] end
method_definition()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 124 def method_definition template.method_definition end
method_name()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 132 def method_name @info.name end
preparation()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 140 def preparation [] end
result()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 148 def result [getter_argument_builder.return_value_name] end
singleton_method?()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 128 def singleton_method? false end
Private Instance Methods
argument_builders()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 162 def argument_builders @argument_builders ||= ArgumentBuilderCollection.new( NullReturnValueBuilder.new, [getter_argument_builder, length_argument_builder]) end
array_length_field()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 184 def array_length_field @info.related_array_length_field end
field_argument_info()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 205 def field_argument_info @field_argument_info ||= GetterArgumentInfo.new 'value', field_type end
field_offset()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 193 def field_offset @info.offset end
field_type()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 201 def field_type @field_type ||= @info.field_type end
field_type_tag()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 197 def field_type_tag @field_type_tag ||= @info.field_type.tag_or_class.inspect end
getter_argument_builder()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 169 def getter_argument_builder @getter_argument_builder ||= GetterArgumentBuilder.new(var_gen, field_argument_info, @info, length_argument: length_argument_builder) end
length_argument_builder()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 175 def length_argument_builder @length_argument_builder ||= if array_length_field GetterArgumentBuilder.new(var_gen, length_argument_info, array_length_field) else NullArgumentBuilder.new end end
length_argument_info()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 188 def length_argument_info @length_argument_info ||= GetterArgumentInfo.new 'length', array_length_field.field_type end
template()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 158 def template @template ||= MethodTemplate.new(self, argument_builders) end
var_gen()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 154 def var_gen @var_gen ||= VariableNameGenerator.new end