# File gobject-introspection/lib/gobject-introspection/callable-info.rb, line 25 def in_args array_length_indexes = [] callback_indexes = [] closure_indexes = [] destroy_indexes = [] args.each_with_index do |arg, i| if arg.type.tag == TypeTag::ARRAY array_length = arg.type.array_length array_length_indexes << array_length if array_length != -1 end unless arg.scope == ScopeType::INVALID callback_indexes << i closure_index = arg.closure closure_indexes << closure_index if closure_index != -1 destroy_index = arg.destroy destroy_indexes << destroy_index if destroy_index != -1 end end args.find_all.with_index do |arg, i| case arg.direction when Direction::IN, Direction::INOUT if array_length_indexes.include?(i) false elsif callback_indexes.include?(i) false elsif closure_indexes.include?(i) false elsif destroy_indexes.include?(i) false else true end else false end end end
# File gobject-introspection/lib/gobject-introspection/callable-info.rb, line 71 def n_in_args in_args.size end
# File gobject-introspection/lib/gobject-introspection/callable-info.rb, line 96 def n_out_args out_args.size end
# File gobject-introspection/lib/gobject-introspection/callable-info.rb, line 75 def n_required_in_args required_in_args.size end
# File gobject-introspection/lib/gobject-introspection/callable-info.rb, line 85 def out_args args.find_all do |arg| case arg.direction when Direction::OUT, Direction::INOUT true else false end end end
# File gobject-introspection/lib/gobject-introspection/callable-info.rb, line 79 def require_callback? args.any? do |arg| arg.direction == Direction::IN and arg.scope != ScopeType::INVALID end end
# File gobject-introspection/lib/gobject-introspection/callable-info.rb, line 65 def required_in_args in_args.reject do |arg| arg.may_be_null? end end