Module: OSX::OCClsWrapper

Includes:
NSBehaviorAttachment, NSKVCBehaviorAttachment, OCObjWrapper
Defined in:
src/objc/mdl_objwrapper.m,
src/ruby/osx/objc/oc_import.rb,
src/objc/mdl_objwrapper.m

Overview

Utilities for communicating Objective-C classes.

Objective-C classes in Ruby world includes OCObjWrapper and extends OCClsWrapper.

Constant Summary

Constant Summary

Constants included from NSBehaviorAttachment

NSBehaviorAttachment::ERRMSG_FOR_RESTRICT_NEW, NSBehaviorAttachment::OCTYPES

Instance Method Summary (collapse)

Methods included from NSKVCBehaviorAttachment

#kvc_accessor, #kvc_array_accessor, #kvc_depends_on, #kvc_reader, #kvc_wrapper, #kvc_wrapper_reader, #kvc_wrapper_writer, #kvc_writer

Methods included from NSBehaviorAttachment

#_no_param_method?, #_ns_behavior_method_added, #_ns_enable_override?, #_objc_export, #_types_to_typefmt, #def_objc_method, #ib_action, #ib_outlets, #new, #ns_inherited, #ns_inherited?, #ns_outlets, #ns_overrides, #objc_alias_class_method, #objc_alias_method, #objc_class_method, #objc_method

Methods included from OCObjWrapper

#method_missing, #objc_method_type, #objc_methods, #objc_send, #ocm_respond_to?, #ocm_send, #ocnil?, #to_s

Methods included from NSKeyValueCodingAttachment

#rbSetValue_forKey, #rbValueForKey

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class OSX::OCObjWrapper

Instance Method Details

- (self) _objc_alias_class_method

Aliases Objective-C method to given new name.

Parameters:

Returns:

  • (self)


754
755
756
757
758
759
760
761
# File 'src/objc/mdl_objwrapper.m', line 754

static VALUE
wrapper_objc_alias_class_method (VALUE rcv, VALUE new, VALUE old)
{
  id oc_rcv;
  rbobj_to_nsobj(rcv, &oc_rcv);
  _objc_alias_method(object_getClass(oc_rcv), new, old);
  return rcv;
}

- (self) _objc_alias_method

Aliases Objective-C method to given new name.

Parameters:

Returns:

  • (self)


739
740
741
742
743
744
745
746
# File 'src/objc/mdl_objwrapper.m', line 739

static VALUE
wrapper_objc_alias_method (VALUE rcv, VALUE new, VALUE old)
{
  id oc_rcv;
  rbobj_to_nsobj(rcv, &oc_rcv);
  _objc_alias_method((Class)oc_rcv, new, old);
  return rcv;
}

- (Object) method_added(sym)

Overrides Module#method_added.



768
769
770
771
# File 'src/ruby/osx/objc/oc_import.rb', line 768

def method_added(sym)
  _ns_behavior_method_added(sym, false)
  _kvc_behavior_method_added(sym)
end

- (String) objc_class_method_type

Returns Objective-C type encodings of a given selector.

Parameters:

Returns:

See Also:



699
700
701
702
703
704
705
706
707
708
709
710
# File 'src/objc/mdl_objwrapper.m', line 699

static VALUE
wrapper_objc_class_method_type (VALUE rcv, VALUE name)
{
  id oc_rcv;
  const char* str;

  rbobj_to_nsobj(rcv, &oc_rcv);
  name = _name_to_selstr (name);
  str = _objc_method_type (object_getClass(oc_rcv), StringValuePtr(name));
  if (str == NULL) return Qnil;
  return rb_str_new2(str);
}

- (Array) objc_class_methods

Returns an array of Objective-C class methods of the reciever class. Like Object#sigleton_methods.

Returns:



612
613
614
615
616
617
618
619
620
621
622
623
624
# File 'src/objc/mdl_objwrapper.m', line 612

static VALUE
wrapper_objc_class_methods (int argc, VALUE* argv, VALUE rcv)
{
  VALUE ary;
  id oc_rcv;
  int recur;

  recur = (argc == 0) ? 1 : RTEST(argv[0]);
  ary = rb_ary_new();
  rbobj_to_nsobj(rcv, &oc_rcv);
  _ary_push_objc_methods (ary, object_getClass(oc_rcv), recur);
  return ary;
}

- (String) objc_instance_method_type

Returns Objective-C type encodings of a given selector.

Parameters:

Returns:

See Also:



680
681
682
683
684
685
686
687
688
689
690
691
# File 'src/objc/mdl_objwrapper.m', line 680

static VALUE
wrapper_objc_instance_method_type (VALUE rcv, VALUE name)
{
  id oc_rcv;
  const char* str;

  rbobj_to_nsobj(rcv, &oc_rcv);
  name = _name_to_selstr (name);
  str = _objc_method_type (oc_rcv, StringValuePtr(name));
  if (str == NULL) return Qnil;
  return rb_str_new2(str);
}

- (Array) objc_instance_methods

Returns an array of Objective-C instance methods of the reciever class. Like Module#instance_methods.

Returns:



593
594
595
596
597
598
599
600
601
602
603
604
605
# File 'src/objc/mdl_objwrapper.m', line 593

static VALUE
wrapper_objc_instance_methods (int argc, VALUE* argv, VALUE rcv)
{
  VALUE ary;
  id oc_rcv;
  int recur;

  recur = (argc == 0) ? 1 : RTEST(argv[0]);
  ary = rb_ary_new();
  rbobj_to_nsobj(rcv, &oc_rcv);
  _ary_push_objc_methods (ary, oc_rcv, recur);
  return ary;
}

- (Object) singleton_method_added(sym)

Overrides BasicObject#singleton_method_added.



763
764
765
# File 'src/ruby/osx/objc/oc_import.rb', line 763

def singleton_method_added(sym)
  _ns_behavior_method_added(sym, true)
end