Package org.jruby

Examples of org.jruby.RubyClass.allocate()


    @JRubyMethod
    public IRubyObject db(ThreadContext context) {
        try {
            Object database = DiametricService.getFn("datomic.api", "db").invoke(conn);
            RubyClass clazz = (RubyClass)context.getRuntime().getClassFromPath("Diametric::Persistence::Database");
            DiametricDatabase diametric_database = (DiametricDatabase)clazz.allocate();
            diametric_database.init(database);
            return diametric_database;
        } catch (Throwable t) {
            throw context.getRuntime().newRuntimeError(t.getMessage());
        }
View Full Code Here


            }

            //System.out.println("tx_data: " + tx_data.toString() + " class: " + tx_data.getClass().getCanonicalName());
            Object future = DiametricService.getFn("datomic.api", "transact").invoke(conn, tx_data);
            RubyClass clazz = (RubyClass)context.getRuntime().getClassFromPath("Diametric::Persistence::ListenableFuture");
            DiametricListenableFuture diametric_listenable = (DiametricListenableFuture)clazz.allocate();
            diametric_listenable.init(future);
            return diametric_listenable;
        } catch (Throwable t) {
            throw context.getRuntime().newRuntimeError(t.getMessage());
        }
View Full Code Here

                throw context.getRuntime().newArgumentError("Argument should be Array or clojure.lang.PersistentVector");
            }

            Object future = DiametricService.getFn("datomic.api", "transact-async").invoke(conn, tx_data);
            RubyClass clazz = (RubyClass)context.getRuntime().getClassFromPath("Diametric::Persistence::ListenableFuture");
            DiametricListenableFuture diametric_listenable = (DiametricListenableFuture)clazz.allocate();
            diametric_listenable.init(future);
            return diametric_listenable;
        } catch (Throwable t) {
            throw context.getRuntime().newRuntimeError(t.getMessage());
        }
View Full Code Here

    }
   
    @JRubyMethod(name="new", meta=true)
    public static IRubyObject rbNew(ThreadContext context, IRubyObject klazz, IRubyObject arg) {
        RubyClass clazz = (RubyClass)context.getRuntime().getClassFromPath("Diametric::Persistence::Object");
        DiametricObject diametric_object = (DiametricObject)clazz.allocate();
        diametric_object.update(DiametricUtils.convertRubyToJava(context, arg));
        return diametric_object;
    }

    @JRubyMethod
View Full Code Here

        RubyString ruby_string = (RubyString)arg;
        try {
            Var reader = DiametricService.getFn("clojure.core", "read-string");
            Object value = reader.invoke((String)ruby_string.asJavaString());
            RubyClass clazz = (RubyClass)context.getRuntime().getClassFromPath("Diametric::Persistence::Object");
            DiametricObject diametric_object = (DiametricObject)clazz.allocate();
            diametric_object.update(value);
            return diametric_object;
        } catch (Exception e) {
            throw context.getRuntime().newRuntimeError(e.getMessage());
        }
View Full Code Here

                    value = read_string_fn.invoke(value);
                }
                list = (List) cons_fn.invoke(list, value);
            }
            RubyClass clazz = (RubyClass)context.getRuntime().getClassFromPath("Diametric::Persistence::Fn");
            DiametricFn diametric_fn = (DiametricFn)clazz.allocate();
            diametric_fn.init(list);
            return diametric_fn;
        } catch (Throwable t) {
            throw context.getRuntime().newArgumentError(t.getMessage());
        }
View Full Code Here

    private Integer count = null// unable to count the vector size that exceeds Integer
    private DiametricCommon common = null;

    static IRubyObject getDiametricCollection(ThreadContext context, List value) {
        RubyClass clazz = (RubyClass)context.getRuntime().getClassFromPath("Diametric::Persistence::Collection");
        DiametricCollection diametric_collection = (DiametricCollection)clazz.allocate();
        diametric_collection.init((List)value);
        return diametric_collection;
    }

    public DiametricCollection(Ruby runtime, RubyClass klazz) {
View Full Code Here

        }
        if (uriOrMap == null )
            throw context.getRuntime().newArgumentError("Argument should be a String or Hash with :uri key");
       
        RubyClass clazz = (RubyClass) context.getRuntime().getClassFromPath("Diametric::Persistence::Connection");
        DiametricConnection rubyConnection = (DiametricConnection)clazz.allocate();
        try {
            // what value will be returned when connect fails? API doc doesn't tell anything.
            Connection connection = (Connection) DiametricService.getFn("datomic.api", "connect").invoke(uriOrMap);
            rubyConnection.init(connection);
            saved_connection = rubyConnection;
View Full Code Here

     * @return java.util.UUID. a UUID whose most significant 32 bits are currentTimeMillis rounded to seconds
     */
    @JRubyMethod(meta=true)
    public static IRubyObject squuid(ThreadContext context, IRubyObject klazz) {
        RubyClass clazz = (RubyClass) context.getRuntime().getClassFromPath("Diametric::Persistence::UUID");
        diametric.DiametricUUID ruby_uuid = (diametric.DiametricUUID)clazz.allocate();
        try {
            java.util.UUID java_uuid = (UUID) DiametricService.getFn("datomic.api", "squuid").invoke();
            ruby_uuid.init(java_uuid);
            return ruby_uuid;
        } catch (Throwable t) {
View Full Code Here

            throw context.getRuntime().newArgumentError("The first argument should be a Symbol");
        }
        RubyString edn_string = (RubyString)RuntimeHelpers.invoke(context, args[0], "to_s");
        Keyword partition = Keyword.intern((String)edn_string.asJavaString());
        RubyClass clazz = (RubyClass)context.getRuntime().getClassFromPath("Diametric::Persistence::Object");
        DiametricObject diametric_object = (DiametricObject)clazz.allocate();
        try {
            clojure.lang.Var clj_var = DiametricService.getFn("datomic.api", "tempid");
            if (args.length > 1 && (args[1] instanceof RubyFixnum)) {
                long idNumber = (Long) args[1].toJava(Long.class);
                diametric_object.update(clj_var.invoke(partition, idNumber));
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.