Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Eliminate rx.util.* dumping grounds #891

Merged
merged 6 commits into from
Feb 17, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,15 @@
; If they want Func1, give them onSubscribe as well so Observable/create can be
; used seemlessly with rx/fn.
; TODO remove this when OnSubscriberFunc is removed
~@(if (and (= prefix "rx.util.functions.Func")
~@(if (and (= prefix "rx.functions.Func")
(some #{1} arities))
`(rx.Observable$OnSubscribeFunc
(~'onSubscribe [~'this observer#]
(~f-name observer#))))

; OnSubscribe is just an Action1, so add it to the list of implemented interfaces
; so an action cab be used with Observable/create
~@(if (and (= prefix "rx.util.functions.Action")
~@(if (and (= prefix "rx.functions.Action")
(some #{1} arities))
`(rx.Observable$OnSubscribe))

Expand All @@ -41,7 +41,7 @@
arities) ))))

(defn fn*
"Given function f, returns an object that implements rx.util.functions.Func0-9
"Given function f, returns an object that implements rx.functions.Func0-9
by delegating the call() method to the given function.

If the f has the wrong arity, an ArityException will be thrown at runtime.
Expand All @@ -55,28 +55,28 @@
(.reduce my-numbers (rx/fn* +))

See:
http://netflix.github.io/RxJava/javadoc/rx/util/functions/Func0.html
http://netflix.github.io/RxJava/javadoc/rx/functions/Func0.html
"
[f]
(reify-callable "rx.util.functions.Func" [0 1 2 3 4 5 6 7 8 9] f))
(reify-callable "rx.functions.Func" [0 1 2 3 4 5 6 7 8 9] f))

(defn fnN*
"Given function f, returns an object that implements rx.util.functions.FuncN
"Given function f, returns an object that implements rx.functions.FuncN
by delegating to the given function.

Unfortunately, this can't be included in fn* because of ambiguities between
the single arg call() method and the var args call method.

See:
http://netflix.github.io/RxJava/javadoc/rx/util/functions/FuncN.html
http://netflix.github.io/RxJava/javadoc/rx/functions/FuncN.html
"
[f]
(reify rx.util.functions.FuncN
(reify rx.functions.FuncN
(call [this objects]
(apply f objects))))

(defmacro fn
"Like clojure.core/fn, but returns the appropriate rx.util.functions.Func*
"Like clojure.core/fn, but returns the appropriate rx.functions.Func*
interface.

Example:
Expand All @@ -100,7 +100,7 @@
(meta &form)))

(defn action*
"Given function f, returns an object that implements rx.util.functions.Action0-3
"Given function f, returns an object that implements rx.functions.Action0-3
by delegating to the given function. Also implements rx.Observable$OnSubscribe which
is just an Action1.

Expand All @@ -109,13 +109,13 @@
(.subscribe my-observable (rx/action* println))

See:
http://netflix.github.io/RxJava/javadoc/rx/util/functions/Action0.html
http://netflix.github.io/RxJava/javadoc/rx/functions/Action0.html
"
[f]
(reify-callable "rx.util.functions.Action" [0 1 2 3] f))
(reify-callable "rx.functions.Action" [0 1 2 3] f))

(defmacro action
"Like clojure.core/fn, but returns the appropriate rx.util.functions.Action*
"Like clojure.core/fn, but returns the appropriate rx.functions.Action*
interface.

Example:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,20 +23,20 @@ public String call(Object f) {
return "Object";
}

public String call(rx.util.functions.Func1 f) {
return "rx.util.functions.Func1";
public String call(rx.functions.Func1 f) {
return "rx.functions.Func1";
}

public String call(rx.util.functions.Func2 f) {
return "rx.util.functions.Func2";
public String call(rx.functions.Func2 f) {
return "rx.functions.Func2";
}

public String call(rx.util.functions.Action1 f) {
return "rx.util.functions.Action1";
public String call(rx.functions.Action1 f) {
return "rx.functions.Action1";
}

public String call(rx.util.functions.Action2 f) {
return "rx.util.functions.Action2";
public String call(rx.functions.Action2 f) {
return "rx.functions.Action2";
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@
(testing "implements Func0-9"
(let [f (rx/fn* vector)]
(is (instance? rx.Observable$OnSubscribeFunc f))
(is (instance? rx.util.functions.Func0 f))
(is (instance? rx.util.functions.Func1 f))
(is (instance? rx.util.functions.Func2 f))
(is (instance? rx.util.functions.Func3 f))
(is (instance? rx.util.functions.Func4 f))
(is (instance? rx.util.functions.Func5 f))
(is (instance? rx.util.functions.Func6 f))
(is (instance? rx.util.functions.Func7 f))
(is (instance? rx.util.functions.Func8 f))
(is (instance? rx.util.functions.Func9 f))
(is (instance? rx.functions.Func0 f))
(is (instance? rx.functions.Func1 f))
(is (instance? rx.functions.Func2 f))
(is (instance? rx.functions.Func3 f))
(is (instance? rx.functions.Func4 f))
(is (instance? rx.functions.Func5 f))
(is (instance? rx.functions.Func6 f))
(is (instance? rx.functions.Func7 f))
(is (instance? rx.functions.Func8 f))
(is (instance? rx.functions.Func9 f))
(is (= [] (.call f)))
(is (= [1] (.call f 1)))
(is (= [1 2] (.call f 1 2)))
Expand All @@ -35,12 +35,12 @@
; No type hint, picks Object overload
(is (= "Object"
(.call dummy (rx/fn* +))))
(is (= "rx.util.functions.Func1"
(is (= "rx.functions.Func1"
(.call dummy
^rx.util.functions.Func1 (rx/fn* +))))
(is (= "rx.util.functions.Func2"
^rx.functions.Func1 (rx/fn* +))))
(is (= "rx.functions.Func2"
(.call dummy
^rx.util.functions.Func2 (rx/fn* *)))))))
^rx.functions.Func2 (rx/fn* *)))))))

(deftest test-fn
(testing "makes appropriate Func*"
Expand All @@ -53,12 +53,12 @@
(is (= "Object"
(.call dummy
(rx/fn [a] a))))
(is (= "rx.util.functions.Func1"
(is (= "rx.functions.Func1"
(.call dummy
^rx.util.functions.Func1 (rx/fn [a] a))))
(is (= "rx.util.functions.Func2"
^rx.functions.Func1 (rx/fn [a] a))))
(is (= "rx.functions.Func2"
(.call dummy
^rx.util.functions.Func2 (rx/fn [a b] (* a b))))))))
^rx.functions.Func2 (rx/fn [a b] (* a b))))))))


(deftest test-fnN*
Expand All @@ -71,10 +71,10 @@
(let [calls (atom [])
a (rx/action* #(swap! calls conj (vec %&)))]
(is (instance? rx.Observable$OnSubscribe a))
(is (instance? rx.util.functions.Action0 a))
(is (instance? rx.util.functions.Action1 a))
(is (instance? rx.util.functions.Action2 a))
(is (instance? rx.util.functions.Action3 a))
(is (instance? rx.functions.Action0 a))
(is (instance? rx.functions.Action1 a))
(is (instance? rx.functions.Action2 a))
(is (instance? rx.functions.Action3 a))
(.call a)
(.call a 1)
(.call a 1 2)
Expand All @@ -86,12 +86,12 @@
(is (= "Object"
(.call dummy
(rx/action* println))))
(is (= "rx.util.functions.Action1"
(is (= "rx.functions.Action1"
(.call dummy
^rx.util.functions.Action1 (rx/action* println))))
(is (= "rx.util.functions.Action2"
^rx.functions.Action1 (rx/action* println))))
(is (= "rx.functions.Action2"
(.call dummy
^rx.util.functions.Action2 (rx/action* prn)))))))
^rx.functions.Action2 (rx/action* prn)))))))

(deftest test-action
(testing "makes appropriate Action*"
Expand All @@ -106,12 +106,12 @@
(is (= "Object"
(.call dummy
(rx/action [a] a))))
(is (= "rx.util.functions.Action1"
(is (= "rx.functions.Action1"
(.call dummy
^rx.util.functions.Action1 (rx/action [a] a))))
(is (= "rx.util.functions.Action2"
^rx.functions.Action1 (rx/action [a] a))))
(is (= "rx.functions.Action2"
(.call dummy
^rx.util.functions.Action2 (rx/action [a b] (* a b))))))))
^rx.functions.Action2 (rx/action [a b] (* a b))))))))

(deftest test-basic-usage

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ import rx.Observable;
import rx.Observer;
import rx.Subscription;
import rx.subscriptions.Subscriptions;
import rx.util.functions.Action0
import rx.util.functions.Func1;
import rx.functions.Action0
import rx.functions.Func1;

// --------------------------------------------------
// Hello World!
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import rx.Observable;
import rx.Observer;
import rx.Subscription;
import rx.subscriptions.BooleanSubscription;
import rx.util.functions.Func1;
import rx.functions.Func1;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@
package rx.lang.groovy;

import groovy.lang.Closure;
import rx.util.functions.Action;
import rx.util.functions.Action0;
import rx.util.functions.Action1;
import rx.util.functions.Action2;
import rx.util.functions.Action3;
import rx.functions.Action;
import rx.functions.Action0;
import rx.functions.Action1;
import rx.functions.Action2;
import rx.functions.Action3;

/**
* Concrete wrapper that accepts a {@link Closure} and produces any needed Rx {@link Action}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,18 +16,18 @@
package rx.lang.groovy;

import groovy.lang.Closure;
import rx.util.functions.Func0;
import rx.util.functions.Func1;
import rx.util.functions.Func2;
import rx.util.functions.Func3;
import rx.util.functions.Func4;
import rx.util.functions.Func5;
import rx.util.functions.Func6;
import rx.util.functions.Func7;
import rx.util.functions.Func8;
import rx.util.functions.Func9;
import rx.util.functions.FuncN;
import rx.util.functions.Function;
import rx.functions.Func0;
import rx.functions.Func1;
import rx.functions.Func2;
import rx.functions.Func3;
import rx.functions.Func4;
import rx.functions.Func5;
import rx.functions.Func6;
import rx.functions.Func7;
import rx.functions.Func8;
import rx.functions.Func9;
import rx.functions.FuncN;
import rx.functions.Function;

/**
* Concrete wrapper that accepts a {@link Closure} and produces any needed Rx {@link Function}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,9 @@

import rx.Observable;
import rx.Observable.OnSubscribeFunc;
import rx.functions.Action;
import rx.functions.Function;
import rx.observables.BlockingObservable;
import rx.util.functions.Action;
import rx.util.functions.Function;

/**
* ExtensionModule that adds extension methods to support groovy.lang.Closure
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ import org.junit.Test
import rx.Observable
import rx.Scheduler
import rx.schedulers.Schedulers
import rx.util.functions.Func1
import rx.functions.Func1

class TestParallel {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,11 @@
import org.jruby.runtime.ThreadContext;
import org.jruby.runtime.builtin.IRubyObject;

import rx.util.functions.Action;
import rx.util.functions.Action0;
import rx.util.functions.Action1;
import rx.util.functions.Action2;
import rx.util.functions.Action3;
import rx.functions.Action;
import rx.functions.Action0;
import rx.functions.Action1;
import rx.functions.Action2;
import rx.functions.Action3;

/**
* Concrete wrapper that accepts a {@link RubyProc} and produces any needed Rx {@link Action}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,18 +21,18 @@
import org.jruby.runtime.ThreadContext;
import org.jruby.runtime.builtin.IRubyObject;

import rx.util.functions.Func0;
import rx.util.functions.Func1;
import rx.util.functions.Func2;
import rx.util.functions.Func3;
import rx.util.functions.Func4;
import rx.util.functions.Func5;
import rx.util.functions.Func6;
import rx.util.functions.Func7;
import rx.util.functions.Func8;
import rx.util.functions.Func9;
import rx.util.functions.FuncN;
import rx.util.functions.Function;
import rx.functions.Func0;
import rx.functions.Func1;
import rx.functions.Func2;
import rx.functions.Func3;
import rx.functions.Func4;
import rx.functions.Func5;
import rx.functions.Func6;
import rx.functions.Func7;
import rx.functions.Func8;
import rx.functions.Func9;
import rx.functions.FuncN;
import rx.functions.Function;

/**
* Concrete wrapper that accepts a {@link RubyProc} and produces any needed Rx {@link Function}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
package rx.lang.scala.examples;

import rx.Observable;
import rx.functions.Action1;
import rx.lang.scala.examples.Movie;
import rx.lang.scala.examples.MovieLib;
import rx.util.functions.Action1;
import static rx.lang.scala.JavaConversions.toScalaObservable;

public class MovieLibUsage {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import java.{ lang => jlang }
import scala.language.implicitConversions
import scala.collection.Seq

import rx.util.functions._
import rx.functions._
import rx.lang.scala.JavaConversions._


Expand Down
Loading