Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

adding the handle

  • Loading branch information...
commit d743c58b59cf978386082e09ff9a25c7b33c7df7 1 parent 9ad71a3
@tenderlove authored
View
4 .gitignore
@@ -1,7 +1,11 @@
.*.swp
*.tmproj
+*.o
+*.bundle
+*.log
vendor/zmq-0.3/
vendor/bin/
vendor/include/
vendor/lib/
+ext/quail/Makefile
tags
View
149 ext/quail/Makefile
@@ -1,149 +0,0 @@
-
-SHELL = /bin/sh
-
-#### Start of system configuration section. ####
-
-srcdir = .
-topdir = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin9.0
-hdrdir = $(topdir)
-VPATH = $(srcdir):$(topdir):$(hdrdir)
-prefix = $(DESTDIR)/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr
-exec_prefix = $(prefix)
-sitedir = $(DESTDIR)/Library/Ruby/Site
-rubylibdir = $(libdir)/ruby/$(ruby_version)
-docdir = $(datarootdir)/doc/$(PACKAGE)
-dvidir = $(docdir)
-datarootdir = $(prefix)/share
-archdir = $(rubylibdir)/$(arch)
-sbindir = $(exec_prefix)/sbin
-psdir = $(docdir)
-localedir = $(datarootdir)/locale
-htmldir = $(docdir)
-datadir = $(datarootdir)
-includedir = $(prefix)/include
-infodir = $(DESTDIR)/usr/share/info
-sysconfdir = $(prefix)/etc
-mandir = $(DESTDIR)/usr/share/man
-libdir = $(exec_prefix)/lib
-sharedstatedir = $(prefix)/com
-oldincludedir = $(DESTDIR)/usr/include
-pdfdir = $(docdir)
-sitearchdir = $(sitelibdir)/$(sitearch)
-bindir = $(exec_prefix)/bin
-localstatedir = $(prefix)/var
-sitelibdir = $(sitedir)/$(ruby_version)
-libexecdir = $(exec_prefix)/libexec
-
-CC = gcc
-LIBRUBY = $(LIBRUBY_SO)
-LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
-LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
-LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)
-
-RUBY_EXTCONF_H =
-CFLAGS = -fno-common -arch i386 -Os -pipe -fno-common -dynamiclib -bundle -flat_namespace -undefined suppress -pthread -fPIC
-INCFLAGS = -I. -I$(topdir) -I$(hdrdir) -I$(srcdir) -I/Users/aaron/git/quail/vendor/include
-CPPFLAGS =
-CXXFLAGS = $(CFLAGS)
-DLDFLAGS = -L. -arch i386
-LDSHARED = cc -arch i386 -pipe -bundle -undefined dynamic_lookup
-AR = ar
-EXEEXT =
-
-RUBY_INSTALL_NAME = ruby
-RUBY_SO_NAME = ruby
-arch = universal-darwin9.0
-sitearch = universal-darwin9.0
-ruby_version = 1.8
-ruby = /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby
-RUBY = $(ruby)
-RM = rm -f
-MAKEDIRS = mkdir -p
-INSTALL = /usr/bin/install -c
-INSTALL_PROG = $(INSTALL) -m 0755
-INSTALL_DATA = $(INSTALL) -m 644
-COPY = cp
-
-#### End of system configuration section. ####
-
-preload =
-
-libpath = . $(libdir)
-LIBPATH = -L"." -L"$(libdir)"
-DEFFILE =
-
-CLEANFILES = mkmf.log
-DISTCLEANFILES =
-
-extout =
-extout_prefix =
-target_prefix = /quail
-LOCAL_LIBS = /Users/aaron/git/quail/vendor/lib/libzmq.a
-LIBS = $(LIBRUBYARG_SHARED) -lstdc++ -lpthread -ldl -lm
-SRCS = native.c czmq.cpp
-OBJS = native.o czmq.o
-TARGET = native
-DLLIB = $(TARGET).bundle
-EXTSTATIC =
-STATIC_LIB =
-
-RUBYCOMMONDIR = $(sitedir)$(target_prefix)
-RUBYLIBDIR = $(sitelibdir)$(target_prefix)
-RUBYARCHDIR = $(sitearchdir)$(target_prefix)
-
-TARGET_SO = $(DLLIB)
-CLEANLIBS = $(TARGET).bundle $(TARGET).il? $(TARGET).tds $(TARGET).map
-CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
-
-all: $(DLLIB)
-static: $(STATIC_LIB)
-
-clean:
- @-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
-
-distclean: clean
- @-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
- @-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
-
-realclean: distclean
-install: install-so install-rb
-
-install-so: $(RUBYARCHDIR)
-install-so: $(RUBYARCHDIR)/$(DLLIB)
-$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
- $(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
-install-rb: pre-install-rb install-rb-default
-install-rb-default: pre-install-rb-default
-pre-install-rb: Makefile
-pre-install-rb-default: Makefile
-$(RUBYARCHDIR):
- $(MAKEDIRS) $@
-
-site-install: site-install-so site-install-rb
-site-install-so: install-so
-site-install-rb: install-rb
-
-.SUFFIXES: .c .m .cc .cxx .cpp .C .o
-
-.cc.o:
- $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
-
-.cxx.o:
- $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
-
-.cpp.o:
- $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
-
-.C.o:
- $(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
-
-.c.o:
- $(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
-
-$(DLLIB): $(OBJS)
- @-$(RM) $@
- $(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
-
-
-
-$(OBJS): ruby.h defines.h
View
BIN  ext/quail/native.bundle
Binary file not shown
View
6 ext/quail/native.c
@@ -1,10 +1,10 @@
#include <native.h>
-VALUE mQuail;
-
void Init_native()
{
- mQuail = rb_define_module("Quail");
+ VALUE mQuail = rb_define_module("Quail");
rb_const_set(mQuail, rb_intern("LOCAL"), INT2NUM(CZMQ_SCOPE_LOCAL));
rb_const_set(mQuail, rb_intern("GLOBAL"), INT2NUM(CZMQ_SCOPE_GLOBAL));
+
+ Init_Quail_Handle(mQuail);
}
View
1  ext/quail/native.h
@@ -4,5 +4,6 @@
#include <stdlib.h>
#include <ruby.h>
#include <czmq.h>
+#include <quail_handle.h>
#endif
View
BIN  ext/quail/native.o
Binary file not shown
View
18 ext/quail/quail_handle.c
@@ -0,0 +1,18 @@
+#include <quail_handle.h>
+
+static void dealloc(void * handle)
+{
+ czmq_destroy(handle);
+}
+
+static VALUE new(VALUE klass, VALUE host)
+{
+ void * handle = czmq_create(StringValuePtr(host));
+ return Data_Wrap_Struct(klass, NULL, dealloc, handle);
+}
+
+void Init_Quail_Handle(VALUE mQuail)
+{
+ VALUE cQuailHandle = rb_define_class_under(mQuail, "Handle", rb_cObject);
+ rb_define_singleton_method(cQuailHandle, "new", new, 1);
+}
View
8 ext/quail/quail_handle.h
@@ -0,0 +1,8 @@
+#ifndef QUAIL_HANDLE
+#define QUAIL_HANDLE
+
+#include <native.h>
+
+void Init_Quail_Handle(VALUE mQuail);
+
+#endif
View
2  test/helper.rb
@@ -4,6 +4,8 @@
$LOAD_PATH.unshift(File.expand_path(File.join(File.dirname(__FILE__), path)))
end
+Thread.new { `vendor/bin/zmq_server` }
+
require 'quail'
module Quail
View
11 test/quail/test_handle.rb
@@ -0,0 +1,11 @@
+require File.expand_path(File.join(File.dirname(__FILE__), "..", "helper"))
+
+module Quail
+ class TestHandle < Quail::TestCase
+ def test_initialize
+ assert_nothing_raised {
+ Quail::Handle.new('localhost.local')
+ }
+ end
+ end
+end
Please sign in to comment.
Something went wrong with that request. Please try again.