[#72642] Advantages of Symbols over constants — Marek Janukowicz <childNOSPAM@...17.ds.pwr.wroc.pl>

11 messages 2003/06/01

[#72732] case of sub! not working — Ian Macdonald <ian@...>

Hi,

27 messages 2003/06/03
[#72734] Re: case of sub! not working — Joel VanderWerf <vjoel@...> 2003/06/03

Ian Macdonald wrote:

[#72744] Re: case of sub! not working — Ian Macdonald <ian@...> 2003/06/03

On Tue 03 Jun 2003 at 10:21:43 +0900, Joel VanderWerf wrote:

[#72769] Re: case of sub! not working — Michael Campbell <michael_s_campbell@...> 2003/06/03

[#72907] Syck 0.35 + YAML.rb 0.60 -- the 1st stable release — why the lucky stiff <ruby-talk@...>

Pleased to announce:

18 messages 2003/06/05
[#75182] Re: Syck 0.35 + YAML.rb 0.60 -- the 1st stable release — Richard Zidlicky <rz@...68k.org> 2003/07/04

On Fri, Jun 06, 2003 at 06:15:58AM +0900, why the lucky stiff wrote:

[#72908] Problem with "require" stmt in "test-first " tutorial — RLMuller@... (Richard)

Hi All,

27 messages 2003/06/05

[#72940] VAPOR 0.06, Transparent Persistence to PostgreSQL — "Oliver M. Bolzer" <oliver@...>

Hi!

22 messages 2003/06/06

[#72975] join block — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

29 messages 2003/06/06

[#72986] multiple blocks or proc arguments to method — itsme213@... (you CAN teach an old dog ...)

I was trying to write a collect_if method:

11 messages 2003/06/07

[#73081] requiring standard libs with save level 1 — Eugene Scripnik <Eugene.Scripnik@...>

I've set up new version of Ruby from CVS and my programs failed to work.

13 messages 2003/06/09
[#73114] Re: requiring standard libs with save level 1 — matz@... (Yukihiro Matsumoto) 2003/06/09

Hi,

[#73134] tcltklib does not get compiled. — John Fletcher <J.P.Fletcher@...>

I have installed ruby 1.6.7 on two computers using Red Hat 8.0 Linux.

14 messages 2003/06/10

[#73148] OT: Regexp question — Dominik Werder <dwerder@...>

Hi all,

25 messages 2003/06/10

[#73215] Rubyx (provisionally named) linux distro. Made by and run by Ruby — Andrew Walrond <andrew@...>

I have developed a little script which creates a simple linux distro

38 messages 2003/06/11

[#73260] Multiple Initialize methods? — "Nick" <nick.robinson@...>

Hi,

21 messages 2003/06/11

[#73283] Ruby advantages over Perl — Marek Janukowicz <childNOSPAM@...17.ds.pwr.wroc.pl>

68 messages 2003/06/11
[#73374] Re: Ruby advantages over Perl — Jason Creighton <androflux@...> 2003/06/12

On Thu, 12 Jun 2003 17:56:02 +0900

[#73356] does each work on a copy? — Rasputin <rasputin@...>

17 messages 2003/06/12

[#73372] Reason for implicit block syntax ? — itsme213@... (you CAN teach an old dog ...)

What is the reason for the implicit block in Ruby invocations?

13 messages 2003/06/12

[#73463] Hispeed String concat — Dominik Werder <dwerder@...>

What is the fastest way to add many small Strings to a big buffer?

17 messages 2003/06/13

[#73503] RaaInstallInRuby petition — ptkwt@...1.aracnet.com (Phil Tomson)

18 messages 2003/06/13

[#73555] I need a code beautifier or formatter — joaopedrosa@... (Joao Pedrosa)

Hello,

13 messages 2003/06/14

[#73600] Get songtitle from Winamp — calvin8@... (Andi Scharfstein)

Hi,

26 messages 2003/06/15
[#73601] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73602] Re: Get songtitle from Winamp — Chad Fowler <chadfowler@...> 2003/06/15

It's a Win32API convention meaning "Window Handle".

[#73603] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73605] Re: Get songtitle from Winamp — Wesley J Landaker <wjl@...> 2003/06/15

On Sunday 15 June 2003 9:34 am, Daniel Carrera wrote:

[#73609] Re: Get songtitle from Winamp — Daniel Carrera <dcarrera@...> 2003/06/15

-----BEGIN PGP SIGNED MESSAGE-----

[#73640] Standardizing Installers — Tom Clarke <tom@...2i.com>

I was thinking about some of the issues raised involving ruby libraries

16 messages 2003/06/16

[#73663] /BEGIN/ .. /END/ file reading — Wild Karl-Heinz <kh.wild@...>

hello

15 messages 2003/06/16
[#73674] Re: /BEGIN/ .. /END/ file reading — "Robert Klemme" <bob.news@...> 2003/06/16

[#73677] Re: /BEGIN/ .. /END/ file reading — Michael Campbell <michael_s_campbell@...> 2003/06/16

> A range operator with a regexp works like a flip flop (bistable

[#73680] Multiline comments? — "Christoph Tapler" <christoph.tapler@...>

I'm new to Ruby and I'm wondering that there is no possibility to write

38 messages 2003/06/16

[#73781] editor / ide recommentation on Windows — itsme213@... (you CAN teach an old dog ...)

What editor / ide would you recommend for serious Ruby work on

20 messages 2003/06/17

[#73787] Array#push(empty array expanded) => no exception — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

This strange behavier really surprised me..

13 messages 2003/06/17

[#73821] European Ruby Conference — "Hal E. Fulton" <hal9000@...>

I don't think I've mentioned this before, but I

15 messages 2003/06/17

[#73924] Re: TCP/IP protocol and Net::HTTP — "J.Hawkesworth" <J.Hawkesworth@...>

Works for me too.

13 messages 2003/06/19
[#73931] Re: TCP/IP protocol and Net::HTTP — Nigel Gilbert <n.gilbert@...> 2003/06/19

I am beginning to wonder if this problem arises from the MacOS X

[#73943] collect info about ruby-api — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I have long been longing for a good description of ruby C api.

35 messages 2003/06/19

[#74039] WxRuby status? — ptkwt@...1.aracnet.com (Phil Tomson)

14 messages 2003/06/20
[#74507] Re: WxRuby status? — Richard Kilmer <rich@...> 2003/06/26

Things are progressing great. Kevin Smith has taken the development

[#74070] How to test if a file exists? — Daniel Carrera <dcarrera@...>

-----BEGIN PGP SIGNED MESSAGE-----

12 messages 2003/06/21

[#74096] Exasperated with ruby/tk - anybody successfully using it? — "Richard Browne" <richb@...>

General question: Is ruby/tk still being maintained in 1.7/1.8 or is it

10 messages 2003/06/22

[#74104] String#decorate — martindemello@... (Martin DeMello)

When chaining methods, it'd be neat to have something that was passed

17 messages 2003/06/22

[#74156] Marshal bug? — Anders Borch <spam@...>

Hi!

15 messages 2003/06/23
[#74161] Re: Marshal bug? — Dave Thomas <dave@...> 2003/06/23

Anders Borch wrote:

[#74205] can't find appropriate regexp — "Patrick Zesar" <jonnypichler@...>

spamassassin blocked my previous post :-((((

17 messages 2003/06/23

[#74279] Ruby Developer's Guide - hurt book sale — dennis@... (Dennis Sutch)

Syngress Publishing is having a hurt book sale. Per Syngress

11 messages 2003/06/24

[#74379] protect parents from children — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I fell into these pitfalls yesterday.. that a child was modifying a parent!

27 messages 2003/06/25

[#74413] Ruby/Java integration through JNI: working implementation — Mauricio Fern疣dez <batsman.geo@...>

14 messages 2003/06/25
[#74436] Re: Ruby/Java integration through JNI: working implementation — D T <tran55555@...> 2003/06/25

Yet An other JRuby ?? :-)

[#74465] DBD for Oracle9i — Jim Cain <list@...>

Hi all. I was looking for a Ruby interface to 9i that would handle all

25 messages 2003/06/25

[#74478] RPM for 1.8.0 — John Carter <john.carter@...>

I would like to get / build a Mandrake 9.1 RPM for Ruby-1.8.0 Preview 3

17 messages 2003/06/26

[#74506] String#split(' ') and whitespace (perl user's surprise) — mike@... (Mike Stok)

I have to confess that I use a lot of Perl, and some of its idioms are

15 messages 2003/06/26

[#74573] Using & for arrays of objects — "Krishna Dole" <kpdole@...>

Hi,

39 messages 2003/06/27

[#74579] why can't I use $3somevar for global variable in ruby 1.8.0? — Donglai Gong <donglai@...>

Hi, I'm new to Ruby programming and I just upgraded from 1.6.8 to 1.8.0

10 messages 2003/06/27

[#74702] Slides from my talk are up on rubyhacker.com — "Hal E. Fulton" <hal9000@...>

I was pleased to attend the European Ruby Conference

25 messages 2003/06/29

[#74706] Help with UnboundMethod#bind error — gabriele renzi <surrender_it@...1.vip.lng.yahoo.com>

Hi gurus and nubys,

16 messages 2003/06/29
[#74708] Re: Help with UnboundMethod#bind error — nobu.nokada@... 2003/06/29

Hi,

[#74732] Re: Help with UnboundMethod#bind error — matz@... (Yukihiro Matsumoto) 2003/06/30

Hi,

[#74919] Re: Help with UnboundMethod#bind error — "Pit Capitain" <pit@...> 2003/07/02

On 30 Jun 2003 at 17:18, Yukihiro Matsumoto wrote:

[#74717] Re: Message catalogs (I18N) overnight hack... — "Hal E. Fulton" <hal9000@...>

----- Original Message -----

17 messages 2003/06/29

[#74747] Editor like Textpad on Linux? — Dominik Werder <dwerder@...>

Hello,

13 messages 2003/06/30

[#74768] dynamic object creation — Aryeh Friedman <aryeh@...>

If I have something like this:

15 messages 2003/06/30

Re: API for Ruby/Java integration through JNI (feedback needed!)

From: Mauricio Fern疣dez <batsman.geo@...>
Date: 2003-06-26 21:05:28 UTC
List: ruby-talk #74557
On Fri, Jun 27, 2003 at 05:39:28AM +0900, gabriele renzi wrote:
> > reflector = Reflect.new vm   # create the "reflector", only need one
> > theklass = reflector["Simple"] 
> > object = theklass.new           # mimic Ruby's object creation
> 
> reflector sounds wierd to me.. somthing better? :)

it's just a variable name :) Now, if you don't like Reflect, I can still
change it.

> 
> >Now, the things I need feedback on:
> > * static methods: should they magically pop up in theklass, so that they
> >   work as in Class objects in Ruby?
> 
> it would be cool if Reflect.new worked like Class.new, so that static
> java methods would automagically become class methods. anyway, a
> solution that just mimic this would be good enough.

It does now. Static methods seem to become singleton methods of the
class objects. You can do
  aklass.java_instance_methods
to get an array of Method objects, and
  aklass.java_methods
to get the static methods (singleton methods) of the class.

Moreover, classes are objects too. You can get the class of a class, too.
 Take a look at this example:

Simple.java
============

package net.thekode.rjni;
	
public class Simple {
	public String doStuff(String a) {
		return "I was called with argument \\"" + a.toString() + "\\"" ;
	}

	public String doStuff(String a, String b) {
		return a + b;
	}

	public boolean compareStrings(String a, String b) {
		System.out.println("I was passed " + a + " and " + b);
		return a.equals(b);
	}

	public int compare2(String a, String b) {
		System.out.println("I was passed " + a + " and " + b);
		return a.compareTo(b);
	}

	public int sum(String a, String b) {
		System.out.println("Adding " + a + " and " + b + " (inside Java!!!)");
		int i = Integer.parseInt(a) + Integer.parseInt(b);
		System.out.println("The result will be: " + i);
		return i;
	}

	public static void superTest() {
		System.out.println("Super static test!!");
	}
}


test_reflect.rb
=================

require 'reflect'
require 'rjni'

RJNI::JVM.new #"-cp ."

reflector = RJNI::Reflect.new
sclass = reflector["net.thekode.rjni.Simple"]
puts "Class: #{sclass}"

puts "Instance methods:"
puts "=" * 40
sclass.java_instance_methods.each { |x| p x }
puts "=" * 40

puts

puts "Class methods:"
puts "=" * 40
sclass.java_methods.each { |x| p x }
puts "=" * 40

sclass.superTest         ### Ruby way!!!

puts

o = sclass.new
puts "Created object <#{o.to_s}> of class <#{sclass}>"
puts "Getting metaclass of <#{o}>"
metaclass = sclass.java_class
puts "Metaclass <#{metaclass}>"
puts "Listing methods of the class (using metaclass.getMethods):"
puts("=" * 40)
metaclass.getMethods.to_a.each { |x| p x }
puts("=" * 40)
puts "Now let's execute some methods...\n"
r = o.doStuff("foo passed from Ruby!!!!")
puts "Result: #{r}"
r = o.doStuff("hello, ", "world!")
puts "Result: #{r}"
r = o.compareStrings("ruby","matz")
puts "Result: #{r.to_b}"
r = o.compareStrings("matz","matz")
puts "Result: #{r.to_b}"
r = o.compare2("ruby","matz")
puts "Result: #{r.to_i}"
r = o.compare2("matz","matz")
puts "Result: #{r.to_i}"
r =  o.sum("1", "1")
puts "Result: #{r.to_i}"


Output
=======

Class: net.thekode.rjni.Simple
Instance methods:
========================================
public java.lang.String net.thekode.rjni.Simple.doStuff(java.lang.String)
public java.lang.String net.thekode.rjni.Simple.doStuff(java.lang.String,java.lang.String)
public boolean net.thekode.rjni.Simple.compareStrings(java.lang.String,java.lang.String)
public int net.thekode.rjni.Simple.compare2(java.lang.String,java.lang.String)
public int net.thekode.rjni.Simple.sum(java.lang.String,java.lang.String)
public native int java.lang.Object.hashCode()
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public boolean java.lang.Object.equals(java.lang.Object)
public java.lang.String java.lang.Object.toString()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()
========================================

Class methods:
========================================
public static void net.thekode.rjni.Simple.superTest()
========================================
Super static test!!

Created object <net.thekode.rjni.Simple@1004901> of class <net.thekode.rjni.Simple>
Getting metaclass of <net.thekode.rjni.Simple@1004901>
Metaclass <class net.thekode.rjni.Simple>
Listing methods of the class (using metaclass.getMethods):
========================================
public java.lang.String net.thekode.rjni.Simple.doStuff(java.lang.String)
public java.lang.String net.thekode.rjni.Simple.doStuff(java.lang.String,java.lang.String)
public boolean net.thekode.rjni.Simple.compareStrings(java.lang.String,java.lang.String)
public int net.thekode.rjni.Simple.compare2(java.lang.String,java.lang.String)
public int net.thekode.rjni.Simple.sum(java.lang.String,java.lang.String)
public static void net.thekode.rjni.Simple.superTest() public native int java.lang.Object.hashCode()
public final native java.lang.Class java.lang.Object.getClass()
public final native void java.lang.Object.wait(long) throws java.lang.InterruptedException
public final void java.lang.Object.wait(long,int) throws java.lang.InterruptedException
public final void java.lang.Object.wait() throws java.lang.InterruptedException
public boolean java.lang.Object.equals(java.lang.Object)
public java.lang.String java.lang.Object.toString()
public final native void java.lang.Object.notify()
public final native void java.lang.Object.notifyAll()
========================================
Now let's execute some methods...
Result: I was called with argument "foo passed from Ruby!!!!"
Result: hello, world!
I was passed ruby and matz
Result: false
I was passed matz and matz
Result: true
I was passed ruby and matz
Result: 5
I was passed matz and matz
Result: 0
Adding 1 and 1 (inside Java!!!)
The result will be: 2
Result: 2

> > * should I provide #instance_methods and such?
> >   at the moment I've made #java_instance_methods that returns an Array
> >   with RJNI::Object objects that represent the methods.
> are you talking about ruby reflection's apis? anyway, I supose yes

It's in fact redundant as you can get most things through JNI, and you
can always use JNI to use the reflection API :)
 
> > * should instance methods be directly invocable such as in the example
> >   above, or by doing object.send_java("doStuff", *args) or such?
> >   It is not as pretty, but OTOH this way there's no name collisions.
> 
> what kind of name collision could happen ?

classes in Java with methods like object_id, instance_methods, class,
method_missing, etc...

> anyway I have no idea about the possibility to do this stuff, so
> forget my desires if you wish :) 

everything doable, by experience: I have done most of it by now :)

-- 
 _           _                             
| |__   __ _| |_ ___ _ __ ___   __ _ _ __  
| '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \ 
| |_) | (_| | |_\__ \ | | | | | (_| | | | |
|_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_|
	Running Debian GNU/Linux Sid (unstable)
batsman dot geo at yahoo dot com

We are MicroSoft.  You will be assimilated.  Resistance is futile.
	-- Attributed to B.G., Gill Bates

In This Thread