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 137 def initialize(info) @info = info end
Public Instance Methods
invocation()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 161 def invocation nil end
method_arguments()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 153 def method_arguments [] end
method_definition()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 141 def method_definition template.method_definition end
method_name()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 149 def method_name @info.name end
preparation()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 157 def preparation [] end
result()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 165 def result [getter_argument_builder.return_value_name] end
singleton_method?()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 145 def singleton_method? false end
Private Instance Methods
argument_builders()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 179 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 205 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 186 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 226 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 214 def field_offset @info.offset end
field_type()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 222 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 218 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 194 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 200 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 209 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 175 def template @template ||= MethodTemplate.new(self, argument_builders) end
var_gen()
click to toggle source
# File lib/gir_ffi/builders/field_builder.rb, line 171 def var_gen @var_gen ||= VariableNameGenerator.new end