class GirFFI::Builders::FieldBuilder::GetterBuilder
Builder
for field getters TODO: Derive from BaseMethodBuilder
Public Class Methods
new(info)
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 138 def initialize(info) @info = info end
Public Instance Methods
invocation()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 162 def invocation nil end
method_arguments()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 154 def method_arguments [] end
method_definition()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 142 def method_definition template.method_definition end
method_name()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 150 def method_name @info.name end
preparation()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 158 def preparation [] end
result()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 166 def result [getter_argument_builder.return_value_name] end
singleton_method?()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 146 def singleton_method? false end
Private Instance Methods
argument_builders()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 180 def argument_builders @argument_builders ||= ArgumentBuilderCollection.new( NullReturnValueBuilder.new, base_argument_builders) end
array_length_field()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 206 def array_length_field @info.related_array_length_field end
base_argument_builders()
click to toggle 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
field_argument_info()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 227 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 215 def field_offset @info.offset end
field_type()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 223 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 219 def field_type_tag @field_type_tag ||= field_type.tag_or_class.inspect end
getter_argument_builder()
click to toggle 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
length_argument_builder()
click to toggle 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
length_argument_info()
click to toggle 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
template()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 176 def template @template ||= MethodTemplate.new(self, argument_builders) end
var_gen()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 172 def var_gen @var_gen ||= VariableNameGenerator.new end