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