[#74825] Millisecond in time. — place4oracle@... (Warren)

Hi,

17 messages 2003/07/01
[#74827] Re: Millisecond in time. — Harry Ohlsen <harryo@...> 2003/07/01

Warren wrote:

[#74841] Re: Millisecond in time. — Anders Borch <spam@...> 2003/07/01

Harry Ohlsen wrote:

[#74853] Aeditor-0.1 is unleashed — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

Aeditor is a editor-widget written in Ruby. The primary

17 messages 2003/07/01

[#74884] Speaking of I18N... — "Hal E. Fulton" <hal9000@...>

I don't suppose anyone has implemented any

17 messages 2003/07/01

[#74894] rb_gc() and scan stack — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I were experimenting with Init_stack, when I discovered a flaw in my mind.

12 messages 2003/07/01

[#74912] Ruby9i now available — Jim Cain <list@...>

All,

18 messages 2003/07/02

[#74980] OT: It's that time of year again ... — james_b <james_b@...>

Happy Birthmonth to all fellow Rubyists born in July!

19 messages 2003/07/02

[#75023] A Quick Guide to SQLite and Ruby — why the lucky stiff <ruby-talk@...>

-Talkers:

17 messages 2003/07/02

[#75119] purpose of replace method — Ian Macdonald <ian@...>

Hi,

17 messages 2003/07/04

[#75137] How to create Shell Links on Windows? — Timon Christl <me@...>

Is there an easy way to create or modify shell links (.lnk) with ruby on

12 messages 2003/07/04

[#75160] seeking feedback on my first Ruby program — "Joe Cheng" <code@...>

I just took my first stab at writing a useful Ruby program. My programming

11 messages 2003/07/04

[#75307] Need regex to match "^\n" — Jim Freeze <jim@...>

Hi:

16 messages 2003/07/06

[#75369] Code Snippet: Array.shuffle — Stefan Arentz <stefan.arentz@...>

14 messages 2003/07/08

[#75420] My brief and torrid affair with Ruby. — Ray Cote <rgacote@...>

Hi List:

150 messages 2003/07/08
[#75421] Re: My brief and torrid affair with Ruby. — Daniel Carrera <dcarrera@...> 2003/07/09

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

[#75425] Re: My brief and torrid affair with Ruby. — Ray Cote <rgacote@...> 2003/07/09

At 9:08 AM +0900 7/9/03, Daniel Carrera wrote:

[#75426] Re: My brief and torrid affair with Ruby. — Daniel Carrera <dcarrera@...> 2003/07/09

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

[#75433] Re: My brief and torrid affair with Ruby. — Stephyn Butcher <tendzin.dorje@...> 2003/07/09

They don't call GPL a legal virus for nothing:

[#75527] Re: My brief and torrid affair with Ruby. — "Hal E. Fulton" <hal9000@...> 2003/07/09

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

[#75529] Re: My brief and torrid affair with Ruby. — Daniel Carrera <dcarrera@...> 2003/07/09

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

[#75536] Re: My brief and torrid affair with Ruby. — "Hal E. Fulton" <hal9000@...> 2003/07/09

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

[#75548] OT: GPL - was Re: My brief and torrid affair with Ruby. — "Hal E. Fulton" <hal9000@...> 2003/07/09

> > Are you honestly saying that you don't understand

[#75565] Re: OT: GPL - was Re: My brief and torrid affair with Ruby. — Chalmers <feldt@...> 2003/07/09

Sorry for this long post and rambling. Just skip if you're not in

[#75588] Re: OT: GPL - was Re: My brief and torrid affair with Ruby. — Austin Ziegler <austin@...> 2003/07/10

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

[#75610] Re: OT: GPL - was Re: My brief and torrid affair with Ruby. — Robert Feldt <feldt@...> 2003/07/10

Austin Ziegler <austin@halostatue.ca> skrev den Thu, 10 Jul 2003 10:10:03

[#75530] Re: My brief and torrid affair with Ruby. — "Michael Campbell" <michael_s_campbell@...> 2003/07/09

[#75531] Re: My brief and torrid affair with Ruby. — Daniel Carrera <dcarrera@...> 2003/07/09

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

[#75711] Re: My brief and torrid affair with Ruby. — "Sean O'Dell" <sean@...> 2003/07/11

"Daniel Carrera" <dcarrera@math.umd.edu> wrote in message

[#75712] Re: My brief and torrid affair with Ruby. — Daniel Carrera <dcarrera@...> 2003/07/11

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

[#75539] Re: My brief and torrid affair with Ruby. — "Gennady" <gfb@...> 2003/07/09

OK, Daniel, let's put it this way: if you do not use something there's

[#75438] NASA using Ruby? — Harry Ohlsen <harryo@...>

I noticed a reference in the intro blurb for Dave Thomas's talk at OSCON to NASA doing numerical simulations using Ruby.

24 messages 2003/07/09

[#75570] Ruby T-Shirt Idea — shout@... (Austin King)

Keywords: advocacy, silly t-shirts, Request For Feedback

43 messages 2003/07/09

[#75654] Re: Ruby T-Shirt Idea — "Orion Hunter" <orion2480@...>

What we need is a code snippet that is excessively long and obfuscate in

31 messages 2003/07/10

[#75767] Getting my IP address — Philip Mak <pmak@...>

Is there a piece of Ruby code somewhere that will tell me what my IP

13 messages 2003/07/11

[#75777] Re: OSCON report — "Volkmann, Mark" <Mark.Volkmann@...>

> -----Original Message-----

19 messages 2003/07/11
[#75810] Re: OSCON report — matz@... (Yukihiro Matsumoto) 2003/07/11

Hi,

[#75811] Re: OSCON report — Matt Lawrence <matt@...> 2003/07/11

On Sat, 12 Jul 2003, Yukihiro Matsumoto wrote:

[#75852] ruby-mysql library load error — eric.anderson@... (Eric Anderson)

I am trying to get the ruby dbi library up and running on my machine.

10 messages 2003/07/12

[#75963] Custom method_missing doesn't trap super call — Richard Dale <Richard_Dale@...>

When I run the code below it produces the following output:

26 messages 2003/07/14

[#75975] Booleans — "Mark J. Reed" <markjreed@...>

Okay, as a convert from Perl to Ruby, I have to say that I love

14 messages 2003/07/14

[#75991] ruby-specific CGI question (I think) — "Kurt M. Dresner" <kdresner@...>

I'm using sessions and forms in my cgi script.

15 messages 2003/07/14

[#76058] How to reduce Ruby runtime error? — Xiangrong Fang <xrfang@...>

Hi my friends,

17 messages 2003/07/15

[#76121] Keyword "with" — "Robert Klemme" <bob.news@...>

66 messages 2003/07/16
[#76134] Re: Keyword "with" — "Robert Klemme" <bob.news@...> 2003/07/16

[#76143] Re: Keyword "with" — Peter Hickman <peter@...> 2003/07/16

Robert Klemme wrote:

[#76148] Other languages' features in Ruby — Ben Giddings <ben@...> 2003/07/16

Hrm, well I'm a Ruby/Java/C/C++/Python/Perl/Lisp/Javascript/PHP...

[#76149] Re: Keyword "with" — "Mark J. Reed" <markjreed@...> 2003/07/16

Peter (having a bad day) Hickman wrote:

[#76181] Re: Keyword "with" — Mark Wilson <mwilson13@...> 2003/07/16

[#76184] Re: Keyword "with" — "Michael Campbell" <michael_s_campbell@...> 2003/07/16

[#76293] Re: Keyword "with" — "Hal E. Fulton" <hal9000@...> 2003/07/17

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

[#76145] Advocacy: Ruby on/with .net — "Thomas Sondergaard" <thomass@...>

I'd like a minute or two of your time as I try to sell you the idea of ruby

34 messages 2003/07/16

[#76196] OO Design question for Net::HTTP caching extension — Aredridel <aredridel@...>

I'm in the process of writing an HTTP-1.1 extension to Net::HTTP. At

10 messages 2003/07/16

[#76254] What's the point? — Jim Freeze <jim@...>

Hi

19 messages 2003/07/17

[#76336] Aliased setter methods behave differently than other methods? — Jim Cain <list@...>

Here's another question... I am aliasing and redefining certain methods,

11 messages 2003/07/18

[#76372] Binary counter — ptkwt@...1.aracnet.com (Phil Tomson)

I needed to test a class which had a certain number of 'binary' inputs (ie. each input

14 messages 2003/07/18

[#76396] chaining comparisons — "Kurt M. Dresner" <kdresner@...>

When I learned python I was overjoyed that I could evaluate 1 < 2 < 3

36 messages 2003/07/19

[#76424] Proposal: Array#to_h, to simplify hash generation — Gavin Sinclair <gsinclair@...>

Hi -talk,

41 messages 2003/07/19
[#76512] Re: Proposal: Array#to_h, to simplify hash generation — Martin DeMello <martindemello@...> 2003/07/20

Yukihiro Matsumoto <matz@ruby-lang.org> wrote:

[#76513] Re: Proposal: Array#to_h, to simplify hash generation — dblack@... 2003/07/20

Hi --

[#76530] Re: Proposal: Array#to_h, to simplify hash generation — Martin DeMello <martindemello@...> 2003/07/21

dblack@superlink.net wrote:

[#76532] Re: Proposal: Array#to_h, to simplify hash generation — "Gavin Sinclair" <gsinclair@...> 2003/07/21

>

[#76540] Re: Proposal: Array#to_h, to simplify hash generation — dblack@... 2003/07/21

Hi --

[#76473] ruby documentation generator? — "Kurt M. Dresner" <kdresner@...>

I've been googling for a few minutes but I haven't found anything yet.

12 messages 2003/07/20

[#76497] Parsing POST and GET variables simultaneously? — David Heinemeier Hansson <david@...>

Isn't it possible to get variables from POST and GET simultaneously?

13 messages 2003/07/20

[#76499] From Windows internal format to UTF-8? — "renoX" <renZYX@...>

Hello,

13 messages 2003/07/20

[#76551] matz thoughts on Rite ? — "Simon Strandgaard" <0bz63fz3m1qt3001@...>

I don't know much about Rite, therefore I ask.

30 messages 2003/07/21

[#76563] Deep copy — Jim Freeze <jim@...>

Hi

15 messages 2003/07/21

[#76619] Should String#strip take a parameter? — "Warren Brown" <wkb@...>

All,

18 messages 2003/07/21

[#76625] RubyForge.org — Richard Kilmer <rich@...>

All,

37 messages 2003/07/22
[#76831] Re: [ANN] RubyForge.org — "Simon Strandgaard" <0bz63fz3m1qt3001@...> 2003/07/23

On Tue, 22 Jul 2003 12:43:41 +0200, Oliver Bolzer wrote:

[#76693] Bug report: ruby-1.8.0p3 fails to compile under FreeBSD-4.7 — Brian Candler <B.Candler@...>

gcc -fPIC -g -O2 -DDB_DBM_HSEARCH -DDBM_HDR="<db.h>" -I. -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0 -I/u/home/telinco/build/ruby/ruby-1.8.0/ext/dbm -DHAVE_DB_H -DHAVE_SYS_CDEFS_H -DHAVE___DB_NDBM_OPEN -DHAVE___DB_NDBM_CLEARERR -c dbm.c

10 messages 2003/07/22

[#76697] String substitution without RegEx — Andreas Schwarz <usenet@...>

I wanted to do a simple string substitution, and was surprised to see

20 messages 2003/07/22

[#76751] New RDoc template, and a question — Dave Thomas <dave@...>

Michael Granger has produced a wonderful new RDoc template, which looks

37 messages 2003/07/23

[#76783] Embedding problem - SEGV — Brian Candler <B.Candler@...>

I have a problem with embedding Ruby, which hopefully someone can shed some

16 messages 2003/07/23

[#76843] Re: [OT] subversion, was [ANN] RubyForge.org — "Bennett, Patrick" <Patrick.Bennett@...>

Hmm, the linuxworld article didn't really say anything useful about

12 messages 2003/07/23

[#76892] ruby 1.8.0 preview4 — matz@... (Yukihiro Matsumoto)

Hello,

44 messages 2003/07/24

[#76984] Patches to 1.8.0p4 to add Bessel functions for those that have 'em — Mike Hall <mghall@...>

Here's some simple patches to configure.in, configure and math.c

23 messages 2003/07/25
[#77006] Re: Patches to 1.8.0p4 to add Bessel functions for those that have 'em — matz@... (Yukihiro Matsumoto) 2003/07/25

Hi,

[#76991] Confused about locking a file via file.flock(File::LOCK_EX) — Ludwigi Beethoven <aix_tech@...>

I am writing a ruby appl under AIX where I need to

11 messages 2003/07/25

[#77082] Set doesn't have [] instance method — Gavin Sinclair <gsinclair@...>

It should, shouldn't it? It's meant to combine the fast lookup of

15 messages 2003/07/26

[#77087] What's wrong with ruby garden? — "Carl Youngblood" <carl@...>

It seems that Ruby Garden is down right now. Does anyone know what's

10 messages 2003/07/26

[#77129] Ruby in Ruby — Austin Ziegler <austin@...>

Over on the pragprog list, Ron Jeffries suggested that it might be

15 messages 2003/07/28

[#77144] ruby 1.8.0 preview5 — matz@... (Yukihiro Matsumoto)

Hello,

16 messages 2003/07/28

[#77149] winsock problem? — Xiangrong Fang <xrfang@...>

Hi,

14 messages 2003/07/28

[#77176] Fishing for ideas: Ruby-talk for Java coders — Armin Roehrl <armin@...>

Hi all,

19 messages 2003/07/28

[#77197] Parser generator — "Rodrigo B. de Oliveira" <rodrigob@...>

I'm evaluating language/frameworks for creating a toy language compiler and I'd love to use ruby. Unfortunately I couldn't find a mature parser generator for ruby (automatic AST generation is a plus). Advices?

13 messages 2003/07/29

[#77227] Warnings? — Tim Bates <tim@...>

Hi all,

15 messages 2003/07/29
[#77242] Re: Warnings? — matz@... (Yukihiro Matsumoto) 2003/07/29

Hi,

[#77354] Ruby could be wildly more popular if it had ... — quixoticsycophant@... (Jeff Mitchell)

Brackets.

40 messages 2003/07/30
[#77694] Re: Ruby could be wildly more popular if it had ... — Martin DeMello <martindemello@...> 2003/08/01

Chris Thomas <chris@m-audio.com> wrote:

[#77359] Hm... nice, Euclid is a one-liner — Rudolf Polzer <denshimeiru-sapmctacher@...>

a, b = b, a % b while b != 0

12 messages 2003/07/30

[#77408] Bignum multiplication — Harry Ohlsen <harryo@...>

I was just reading about Python 2.3 and they talked about how they've changed their arbitrary-precision integer multiplication to use the Karatsuba multiplication algorithm.

21 messages 2003/07/30

[#77516] wanted: official mirrors for 1.8.0 — matz@... (Yukihiro Matsumoto)

Hello,

24 messages 2003/07/31

[#77528] ruby 1.8.0 preview6 — matz@... (Yukihiro Matsumoto)

Hello,

14 messages 2003/07/31

[#77590] Spam at ruby-talk — Daniel Carrera <dcarrera@...>

I don't know who runs the ruby-talk mailing list. I've noticed that

13 messages 2003/07/31
[#77595] Re: Spam at ruby-talk — Dave Thomas <dave@...> 2003/07/31

Daniel Carrera wrote:

[#77592] Changing ==,>,<, etc — elbows@... (Nathan Weston)

The latest Perl exegesis

15 messages 2003/07/31

[#77623] Extracting a parent class — Michael Garriss <mgarriss@...>

Sorry about the newbie question but....

14 messages 2003/07/31

Re: Ruby Golf: Object Diff

From: Mauricio Fern疣dez <batsman.geo@...>
Date: 2003-07-19 07:52:57 UTC
List: ruby-talk #76406
On Sat, Jul 19, 2003 at 12:20:39PM +0900, John W. Long wrote:
> The problem:

I solved it, being more or less focused on size (but not really a lot)
and when I was about to 'optimize' it I read that size doesn't matter :-)

Well, you can find attached my first take.

Note that I changed a couple things in the test cases when I either
couldn't figure out the semantics or thought there was something wrong.

>   string1, string2 = ObjectDiff.compare(object1, object2)
>   puts [string1, string2]
>   assert_equal('#<TestObject1:0x1 ... @b="b", ... @d="d", ...>', string1)
>   assert_equal('#<TestObject1:0x2 ... @b="", ... @d="", ...>', string2)

instance variables are output in lexicographical order

>   complexObject1 = TestObject1.new('1', {:a => 1, :b => 2, :j => 3}, [1, 2,

you seem to assume that hash keys are sorted before printing (which
isn't always possible, but...)

[I assumed hashes would always be sortable with sort {|a,b|a.to_s <=> b.to_s}
 which is not really sensible]

>   puts [string1, string2]
>   assert_equal('#<TestObject1:0x3 ... @b={:a=>1, :b=>2, ...}, @c=[1, ... 3],
> @d=#<TestObject1:0x1 ... @b="b", ... @d="d", ...>, ...>', string1)
>   assert_equal('#<TestObject1:0x4 ... @b={:a=>2, :b=>#<TestObject1:0x284a3a8
> @c="c", @b="b", @e=nil, @a="a", @d="d">, ...}, @c=[0, ...],

but iv are not here?? (You're using #inspect instead of a recursive call to
object_to_s)

[I corrected that to have the same format as "top level" object_to_s]

>   assert_equal('[... 2, 3, ... ...]', string_a)
>   assert_equal('[... 3, 4, ... ... 6]', string_b)

In arrays, '...' is used for the first element if equal to that othe
other array

[kept that]
>   assert_equal('{:a=>1, :b=>2, ... :d=>4}', string_a)
>   assert_equal('{       :b=>3, ... :d=>5, :j=>2}', string_b)

... which is not the case for hashes: spaces instead???
[changed to use '...' instead, as in arrays]

And again, these semantics won't always work. What happens if you have
keys from different classes, how do you get a meaningful order there?
Perhaps sorting by class name?

My solution + the test case modifications are attached.
It only passes the tests, there's a couple more things that need to
be done for general use (just adding a couple 'when' clauses for other
literals).

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

"Who is General Failure and why is he reading my hard disk?"
Microsoft spel chekar vor sail, worgs grate !!
	-- Felix von Leitner, leitner@inf.fu-berlin.de

Attachments (1)

objectdiff.rb (4.7 KB, text/x-ruby)
require 'test/unit'

class TestObject1
	attr_accessor :a, :b, :c, :d, :e
	def initialize(a, b, c, d, e = nil)
		@a, @b, @c, @d, @e = a, b, c, d, e
	end
end

class TestObject2
	attr_accessor :a, :b, :c, :d, :f, :g
	def initialize(a, b, c, d, f, g)
		@a, @b, @c, @d, @f, @g = a, b, c, d, f, g
	end
end

class ObjectDiff
	class << self
		def compare(o1, o2)
			compare_same_class(o1, o2)
		end
		
		def compare_same_class(o1, o2)
			return object_to_s(o1, o2), object_to_s(o2, o1)
		end

		def compare_array(a1, a2)
			return object_to_s(a1, a2), object_to_s(a2, a1)
		end

		def compare_hash(h1, h2)
			return object_to_s(h1, h2), object_to_s(h2, h1)
		end

		def object_to_s(obj, other = nil)
			case obj
			when NilClass
				return 'nil'
			when Fixnum
				return obj.inspect
			when String
				return obj.inspect
			when Array
				return obj.inspect unless Array === other
				r = "["
				obj.each_with_index do |o,i|
					if i < other.size && o == other[i]
						r << (i == 0? '': ' ') + "..."
					elsif i < other.size
						r << (i == 0? '': ' ') + object_to_s(o, other[i])
						r << ',' unless i == obj.size - 1
					else
						r << (i == 0? '': ' ') + object_to_s(o)
						r << ',' unless i == obj.size - 1
					end
				end
				return r << "]"
			when Hash
				keys = obj.keys.sort{|a,b| a.to_s <=> b.to_s}
				r = "{"
				keys.each_with_index do |k, i|
					if Hash === other and other.key?(k) and obj[k] == other[k]
						r << (i == 0? '': ' ') + "..."
					elsif Hash === other and other.key?(k)
						r << (i == 0? '': ' ') + k.inspect + "=>" + object_to_s(obj[k], other[k])
						r << ',' unless i == keys.size - 1
					else
						r << (i == 0? '': ' ') + k.inspect + "=>" + object_to_s(obj[k])
						r << ',' unless i == keys.size - 1
					end
				end
				return r << '}'
			end
				
			r = "#<#{obj.class}:0x%x" % obj.__id__
			vars = obj.instance_variables
			vars.sort.each_with_index do |iv, i|
				if !other || !other.instance_variables.include?(iv) || other.instance_eval(iv) !=
					obj.instance_eval(iv)
					if other && other.instance_variables.include?(iv)
						r << " #{iv}=" << 
						object_to_s(obj.instance_eval(iv),
								other.instance_eval(iv)) 
					else
						r << " #{iv}=" << object_to_s(obj.instance_eval(iv))
					end
					r << "," unless i == vars.size - 1 
				elsif other
					r << " ..."
				end
			end
			r << ">"
		end
	end
end

class TC_ObjectDiff < Test::Unit::TestCase
	def test_to_s
		object = TestObject1.new('a', 'b', 'c', 'd', [1, 2, 3, 4])
		def object.__id__
			0
		end
		assert_equal('#<TestObject1:0x0 @a="a", @b="b", @c="c", @d="d", @e=[1, 2, 3, 4]>',
		ObjectDiff.object_to_s(object))
	end

	def test_compare
		object1 = TestObject1.new('a', 'b', 'c', 'd')
		def object1.__id__
			1
		end
		object2 = TestObject1.new('a', '', 'c', '')
		def object2.__id__
			2
		end
		string1, string2 = ObjectDiff.compare(object1, object2)
		puts [string1, string2]
		assert_equal('#<TestObject1:0x1 ... @b="b", ... @d="d", ...>', string1)
		assert_equal('#<TestObject1:0x2 ... @b="", ... @d="", ...>', string2)

		complexObject1 = TestObject1.new('1', {:a => 1, :b => 2, :j => 3}, [1, 2,
		3], object1)
		def complexObject1.__id__
			3
		end
		complexObject2 = TestObject1.new('1', {:a => 2, :b => object1, :j => 3},
		[0, 2], object2)
		def complexObject2.__id__
			4
		end
		string1, string2 = ObjectDiff.compare(complexObject1, complexObject2)
		puts [string1, string2]
		assert_equal('#<TestObject1:0x3 ... @b={:a=>1, :b=>2, ...}, @c=[1, ... 3], @d=#<TestObject1:0x1 ... @b="b", ... @d="d", ...>, ...>', string1)
		assert_equal('#<TestObject1:0x4 ... @b={:a=>2, :b=>#<TestObject1:0x1 @a="a", @b="b", @c="c", @d="d", @e=nil>, ...}, @c=[0, ...], @d=#<TestObject1:0x2 ... @b="", ... @d="", ...>, ...>', string2)
	end

	def test_compare_different_classes
		object1 = TestObject1.new('a', 'b', 'c', 'd')
		def object1.__id__
			5
		end
		object2 = TestObject2.new('a', '', 'c', '', 'f', 'g')
		def object2.__id__
			6
		end

		string1, string2 = ObjectDiff.compare(object1, object2)
		puts [string1, string2]
		assert_equal('#<TestObject1:0x5 ... @b="b", ... @d="d", @e=nil>', string1)
		assert_equal('#<TestObject2:0x6 ... @b="", ... @d="", @f="f", @g="g">',
		string2)
	end
	def test_compare_array
		a = [1, 2, 3, 4, 5]
		b = [1, 3, 4, 4, 5, 6]
		string_a, string_b = ObjectDiff.compare_array(a, b)
		puts [string_a, string_b]
		assert_equal('[... 2, 3, ... ...]', string_a)
		assert_equal('[... 3, 4, ... ... 6]', string_b)
	end
	def test_compare_hash
		a = {
			:a => 1,
			:b => 2,
			:c => 3,
			:d => 4
		}
		b = {
			:j => 2,
			:b => 3,
			:c => 3,
			:d => 5
		}
		string_a, string_b = ObjectDiff.compare_hash(a, b)
		puts [string_a, string_b]
		assert_equal('{:a=>1, :b=>2, ... :d=>4}', string_a)
		assert_equal('{:b=>3, ... :d=>5, :j=>2}', string_b)
	end
end

In This Thread