From: Ban Hoang Date: 2006-08-25T02:06:48+09:00 Subject: Re: How do I strip off the extra double quote or white space in the string when using assert_equal method ------_=_NextPart_001_01C6C79F.ADB6B316 Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01C6C79F.ADB6B316" ------_=_NextPart_002_01C6C79F.ADB6B316 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi Ben, =20 You are exactly correct: "it's adding it as a single element instead of two, as you want." =20 It is my main problem: if the second line array[1] has 7 elements, it's still adding as a single element? How do I fix it? =20 If I use assert_equal and put the details for each element in the assert method and compare directly. It works OK (please look at Assert_equalOK attached file). =20 If I try to use external cvs file, it has the problem and can not separate the link detail as different element! I attached the csv file and the my assert_equal_from_File for you to review. =20 Thanks a lot for your help, =20 Ban=20 =20 =20 -----Original Message----- From: Ben Bleything [mailto:ben@bleything.net]=20 Sent: Thursday, August 24, 2006 9:01 AM To: ruby-talk ML Subject: Re: How do I strip off the extra double quote or white space in the string when using assert_equal method =20 On Thu, Aug 24, 2006, Ban Hoang wrote: > Thanks for your help, Ben! >=20 > I am confused on your assert_equal method: >=20 > assert_equal a.gsub(/['"]/, ''), b.gsub(/['"]/, '') >=20 > Is /['"]/ will strip out the quotes when comparing? =20 Notice that that call to assert_equal is wrapped inside a method. So you would call =20 assert_equal_without_quotes( arr[0], $ie.frame.... ) =20 I think the real problem is that you need to figure out how to parse your file, though. You call it a csv but it's not. My suggestion would be to fix it so it is :) =20 > I think my actual problem is when reading into an array and compare, it > did not separate :: Select Site :: as one field and :: > !!Eastgate_Mall to another field for double quotes =20 Correct. =20 > That why the expect is <[":: Select Site ::,!!Eastgate_Mall,,,,,\n"] > ( missing separate double quotes) =20 Not only is it missing the quotes, but it's adding it as a single element instead of two, as you want. =20 If your file looks like this: =20 ----- :: Select Site :: !!Something :: Select Site :: !!Something else ... ----- =20 Then you'll need to determine how to parse that. Quick, dirty, and untested: =20 ----- contents =3D [] =20 File.readlines('yourfile').each do |line| line =3D~ /(:: .*? ::)\s+(!!.*?)/ =20 label =3D $1 value =3D $2 =20 contents << [$1, $2] end ----- =20 There's probably a better regex you could use, but the bottom line is, you need to extract the values from your file instead of just grabbing each line. =20 Again, it's probably easiest to just make it a real csv file :) =20 Good luck! Ben =20 ------_=_NextPart_002_01C6C79F.ADB6B316 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi Ben,

 

You are exactly correct: “it's adding it as a = single

element instead of two, as you = want.”

 

It is my main problem: if the second line array[1] has 7 = elements, it’s still adding as a single element? How do I fix = it?

 

If I use assert_equal and put the details for each element in = the assert method and compare directly. It works OK (please look at = Assert_equalOK attached file).

 

If I try to use external cvs file, it has the problem and can = not separate the link detail as different element! I attached the csv file and the my assert_equal_from_File for you to review.

 

Thanks a lot for your help,

 

Ban

 

 

-----Original Message-----
From: Ben Bleything [mailto:ben@bleything.net]
Sent: Thursday, August 24, 2006 9:01 AM
To: ruby-talk ML
Subject: Re: How do I strip off the extra double quote or white space in = the string when using assert_equal method

 

On Thu, Aug 24, 2006, Ban Hoang = wrote:

> Thanks for your help, Ben!

>

> I am confused on your assert_equal = method:

>

> assert_equal a.gsub(/['"]/, ''), b.gsub(/['"]/, = '')

>

> Is /['"]/ will strip out the quotes when = comparing?

 

Notice that that call to assert_equal is wrapped inside a = method.  So

you would call

 

assert_equal_without_quotes( arr[0], $ie.frame.... = )

 

I think the real problem is that you need to figure out how to = parse

your file, though.  You call it a csv but it's not.  = My suggestion would

be to fix it so it is :)

 

> I think my actual problem is when reading into an array and compare, it

> did not separate :: Select Site ::   as one  = field and ::

> !!Eastgate_Mall  to another field for double = quotes

 

Correct.

 

> That why the expect is <[":: Select Site ::,!!Eastgate_Mall,,,,,\n"]

> ( missing separate double = quotes)

 

Not only is it missing the quotes, but it's adding it as a = single

element instead of two, as you = want.

 

If your file looks like this:

 

-----

:: Select Site ::    = !!Something

:: Select Site ::    !!Something = else

...

-----

 

Then you'll need to determine how to parse that.  Quick, = dirty, and

untested:

 

-----

contents =3D []

 

File.readlines('yourfile').each do = |line|

  line =3D~ /(:: .*? = ::)\s+(!!.*?)/

 

  label =3D $1

  value =3D $2

 

  contents << [$1, $2]

end

-----

 

There's probably a better regex you could use, but the bottom = line is,

you need to extract the values from your file instead of just = grabbing

each line.

 

Again, it's probably easiest to just make it a real csv file = :)

 

Good luck!

Ben

 

------_=_NextPart_002_01C6C79F.ADB6B316-- ------_=_NextPart_001_01C6C79F.ADB6B316 Content-Type: application/octet-stream; name="dropListsM.csv" Content-Transfer-Encoding: base64 Content-Description: dropListsM.csv Content-Disposition: attachment; filename="dropListsM.csv" OjogU2VsZWN0IFNpdGUgOjosISFFYXN0Z2F0ZV9NYWxsLCwsLCwNCkFjdGlvbiBJdGVtcyw6Ojo6 Ojo6Ojo6Ojo6Ojo6OjosT3BlbiBBbGFybXMsR3Jvb21lciBBbGFybXMsV2FybmluZ3MsRGVhZCBI YXJkd2FyZSxEZWFkIENoYW5uZWxzDQpSZXBvcnRzLCA6Ojo6Ojo6Ojo6Ojo6Ojo6LCBBbGFybXMs IENvbmZpZyBIaXN0b3J5LCBUcmlwIFJlcG9ydHMsIEZ1biBTdGF0cywNCk90aGVyLDo6Ojo6Ojos SW52ZXN0aWdhdGUsRmlsZSBUcmlwIFJlcG9ydCxGQVEsLA0K ------_=_NextPart_001_01C6C79F.ADB6B316 Content-Type: application/octet-stream; name="Assert_equalOK.rb" Content-Transfer-Encoding: base64 Content-Description: Assert_equalOK.rb Content-Disposition: attachment; filename="Assert_equalOK.rb" DQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t IyAgICAgICAgICAgICAgICAgICAgICANCiMgUHVycG9zZTogIENoZWNraW5nIHRvIHNlZSBpZiBh bGwgRU1TIERyb3Bkb3duIGxpc3RzIGhhdmUgYWxsIHRoZSBjb3JyZWN0IGxpbmtzIGFuZCBjb3Jy ZWN0IGNvbnRhaW5zIHRleHQuICAgDQojIFRlc3Qgd2lsbCB2ZXJpZmllZCB0aGUgbnVtYmVyIG9m IGxpbmtzIGluIGVhY2ggRHJvcGRvd24gbGlzdCBhbmQgdGhlIGRldGFpbCB0ZXh0IGRpc3BsYXkg aW4gZWFjaCBsaW5rLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSMNCg0KI2luY2x1ZGVzDQpyZXF1aXJlICd3YXRpcicNCnJlcXVpcmUgJ3Rlc3Qv dW5pdCcNCnJlcXVpcmUgJ3Rlc3QvdW5pdC91aS9jb25zb2xlL3Rlc3RydW5uZXInDQpyZXF1aXJl ICd3YXRpci90ZXN0VW5pdEFkZG9ucycNCg0KCWNsYXNzIFRDX3B1bGxkb3duQm94VmVyaWZpZWQg PCBUZXN0OjpVbml0OjpUZXN0Q2FzZQkJDQoJDQoJCWRlZiBzdGFydA0KCQkjIERlZmluZSA6ICRp ZSBhcyBnbG9iYWwgdmFyaWFibGUNCgkJJGllID0gV2F0aXI6OklFLnN0YXJ0KCJodHRwOi8vc29j MS1zdGFnZS8iKQ0KCQkkaWUubGluayg6dGV4dCwgIk5ldyBFTVMgMiIpLmNsaWNrDQoJCWVuZA0K CQkjLS0tLS0tLS0tLS0tLS0tLQ0KCQkNCgkNCgkJZGVmIHRlc3RfMDFfU2VsZWN0U2l0ZVRlc3RD YXNlDQoJCSNDYWxsIHN0YXJ0IG1ldGhvZA0KCQlzdGFydA0KCQkkaWUuZnJhbWUoInRvcCIpLnNl bGVjdF9saXN0KCA6bmFtZSAsICJzaXRlX2lkIikuc2VsZWN0KCIhIUVhc3RnYXRlX01hbGwiKQ0K CQkkaWUuZnJhbWUoInRvcCIpLnNlbGVjdF9saXN0KCA6bmFtZSAsICJzaXRlX2lkIikuc2VsZWN0 KCI6OiBTZWxlY3QgU2l0ZSA6OiIpDQoJCWVuZA0KCQlwdXRzICcnDQoJDQoJCWRlZiB0ZXN0X18w Ml9Ecm9wRG93bl9saXN0X3ZlcmlmaWVkDQoJCQ0KCQlwdXRzICcxc3QuIEFzc2VydGlvbjogVmVy aWZpZWQgU2VsZWN0U2l0ZSBEcm9wZG93biBMaXN0IGhhdmluZyBjb3JyZWN0IGNvbnRlbnRzICcN CgkJYXNzZXJ0X2VxdWFsKFsiOjogU2VsZWN0IFNpdGUgOjoiLCIhIUVhc3RnYXRlX01hbGwiXSwg JGllLmZyYW1lKCJ0b3AiKS5zZWxlY3RfbGlzdCg6bmFtZSwgInNpdGVfaWQiKS5nZXRBbGxDb250 ZW50cykgDQoJCQ0KCQlwdXRzICcnDQoJCQ0KCQlwdXRzICcgMm5kLiBBc3NlcnRpb246IFZlcmlm aWVkIEFjdGlvbiBJdGVtcyBEcm9wZG93biBMaXN0IGhhdmluZyBjb3JyZWN0IGNvbnRlbnRzICcN CgkJYXNzZXJ0X2VxdWFsKCBbIkFjdGlvbiBJdGVtcyIsICI6Ojo6Ojo6Ojo6Ojo6Ojo6OjoiLCAi T3BlbiBBbGFybXMiLCAiR3Jvb21lciBBbGFybXMiLCAiV2FybmluZ3MiLCAiRGVhZCBIYXJkd2Fy ZSIsICJEZWFkIENoYW5uZWxzIiBdICwgDQoJCSRpZS5mcmFtZSgidG9wIikuc2VsZWN0X2xpc3Qo Om5hbWUsICJsaW5rc19hY3Rpb25faXRlbXMiKS5nZXRBbGxDb250ZW50cykNCgkJDQoJCXB1dHMg JycNCgkJDQoJCXB1dHMgJyAzcmQuIEFzc2VydGlvbjogVmVyaWZpZWQgUmVwb3J0cyBEcm9wZG93 biBMaXN0IGhhdmluZyBjb3JyZWN0IGNvbnRlbnRzICcNCgkJYXNzZXJ0X2VxdWFsKCBbIlJlcG9y dHMiLCAiOjo6Ojo6Ojo6Ojo6Ojo6OiIsICJBbGFybXMiLCAiQ29uZmlnIEhpc3RvcnkiLCAiVHJp cCBSZXBvcnRzIiwgIkZ1biBTdGF0cyIgXSAsIA0KCQkkaWUuZnJhbWUoInRvcCIpLnNlbGVjdF9s aXN0KDpuYW1lLCAibGlua3NfcmVwb3J0cyIpLmdldEFsbENvbnRlbnRzKQ0KCQkNCgkJcHV0cyAn Jw0KCQlwdXRzICcgNHRoLiBBc3NlcnRpb246IFZlcmlmaWVkIE90aGVyIERyb3Bkb3duIExpc3Qg aGF2aW5nIGNvcnJlY3QgY29udGVudHMgJw0KCQkNCgkJYXNzZXJ0X2VxdWFsKCBbIk90aGVyIiwg Ijo6Ojo6OjoiLCAiSW52ZXN0aWdhdGUiLCAiRmlsZSBUcmlwIFJlcG9ydCIsICJGQVEiIF0gLCAN CgkJJGllLmZyYW1lKCJ0b3AiKS5zZWxlY3RfbGlzdCg6bmFtZSwgImxpbmtzX290aGVyIikuZ2V0 QWxsQ29udGVudHMpDQoJCQ0KCQlwdXRzICcnDQoJCQ0KCQllbmQNCgkNCgllbmQNCgkNCg== ------_=_NextPart_001_01C6C79F.ADB6B316 Content-Type: application/octet-stream; name="Assert_equal_From_File.rb" Content-Transfer-Encoding: base64 Content-Description: Assert_equal_From_File.rb Content-Disposition: attachment; filename="Assert_equal_From_File.rb" RU5EIHskaWUuY2xvc2UgaWYgJGllfSAjIGNsb3NlIGllIGF0IGNvbXBsZXRpb24gb2YgdGhlIHRl c3RzDQoNCiMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tIyAgICAgICAgICAgICAgICAgICAgICANCiMgUHVycG9zZTogIENoZWNraW5nIHRvIHNlZSBp ZiBhbGwgRU1TIERyb3Bkb3duIGxpc3RzIGhhdmUgYWxsIHRoZSBjb3JyZWN0IGxpbmtzIGFuZCBj b3JyZWN0IGNvbnRhaW5zIHRleHQuICAgDQojIFRlc3Qgd2lsbCB2ZXJpZmllZCB0aGUgbnVtYmVy IG9mIGxpbmtzIGluIGVhY2ggRHJvcGRvd24gbGlzdCBhbmQgdGhlIGRldGFpbCB0ZXh0IGRpc3Bs YXkgaW4gZWFjaCBsaW5rLg0KIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSMNCg0KI2luY2x1ZGVzDQpyZXF1aXJlICd3YXRpcicNCnJlcXVpcmUgJ3Rl c3QvdW5pdCcNCnJlcXVpcmUgJ3Rlc3QvdW5pdC91aS9jb25zb2xlL3Rlc3RydW5uZXInDQpyZXF1 aXJlICd3YXRpci90ZXN0VW5pdEFkZG9ucycNCg0KCWNsYXNzIFRDX3B1bGxkb3duQm94VmVyaWZp ZWQgPCBUZXN0OjpVbml0OjpUZXN0Q2FzZQkJDQoJCQ0KCQlkZWYgc3RhcnQNCgkJIyBEZWZpbmUg OiAkaWUgYXMgZ2xvYmFsIHZhcmlhYmxlDQoJCSRpZSA9IFdhdGlyOjpJRS5zdGFydCgiaHR0cDov L3NvYzEtc3RhZ2UvIikNCgkJJGllLmxpbmsoOnRleHQsICJOZXcgRU1TIDIiKS5jbGljaw0KCQll bmQNCgkJIy0tLS0tLS0tLS0tLS0tLS0NCg0KCQlkZWYgdGVzdF8wMV9TZWxlY3RTaXRlVGVzdENh c2UNCgkJI0NhbGwgc3RhcnQgbWV0aG9kDQoJCXN0YXJ0DQoJCSRpZS5mcmFtZSgidG9wIikuc2Vs ZWN0X2xpc3QoIDpuYW1lICwgInNpdGVfaWQiKS5zZWxlY3QoIiEhRWFzdGdhdGVfTWFsbCIpDQoJ CSRpZS5mcmFtZSgidG9wIikuc2VsZWN0X2xpc3QoIDpuYW1lICwgInNpdGVfaWQiKS5zZWxlY3Qo Ijo6IFNlbGVjdCBTaXRlIDo6IikNCgkJZW5kDQoJCXB1dHMgJycNCgkJDQoJCWRlZiB0ZXN0X18w Ml9Ecm9wRG93bl9saXN0X3ZlcmlmaWVkDQoJCSANCgkJYXJyID0gSU8ucmVhZGxpbmVzKCJkcm9w TGlzdHNNLmNzdiIpICAgIyByZWFkIGVudGlyZSBjb250ZW50cyBvZiB0aGUgZmlsZSBpbnRvIGEg c2luZ2xlIGFycmF5LiAgRWFjaCBpbmRleCBvZiB0aGUgYXJyYXkgaXMgb25lIGxpbmUuDQoJCWxp bmVzID0gYXJyLnNpemUgIyBjb3VudCB0aGUgbnVtYmVyIG9mIGxpbmVzIGluIHRoZSBmaWxlLg0K CQ0KCQlwdXRzICcnDQoJCXB1dHMgJ1RoZSBmaWxlIGhhcyAje2xpbmVzfSBsaW5lcyBpbiBpdC4n DQoJCXB1dHMgIiAiDQogDQoJCXB1dHMgJzFzdCBsaW5lIG9mIHZhbHVlczonLCAgYXJyWzBdICAg ICAgIyBjYWxsIGFuZCBzaG93IHRoZSBmaXJzdCBsaW5lIG9mIHZhbHVlcy4NCgkJcHV0cyAnJw0K CQlwdXRzICcybmQgbGluZSBvZiB2YWx1ZXM6JywgIGFyclsxXSAgICAgICMgY2FsbCBhbmQgc2hv dyB0aGUgc2Vjb25kIGxpbmUgb2YgdmFsdWVzLg0KCQlwdXRzICcnDQoJCXB1dHMgJzNyZCBsaW5l IG9mIHZhbHVlczonLCAgYXJyWzJdICAgICMgY2FsbCBhbmQgc2hvdyB0aGUgdGhpcmQgbGluZSBv ZiB2YWx1ZXMuDQoJCXB1dHMgJycNCgkJcHV0cyAnNHRoIGxpbmUgb2YgdmFsdWVzOicsICBhcnJb M10gDQoJCQ0KCQlwdXRzICcxc3QuIEFzc2VydGlvbjogVmVyaWZpZWQgU2VsZWN0U2l0ZSBEcm9w ZG93biBMaXN0IGhhdmluZyBjb3JyZWN0IGNvbnRlbnRzICcNCgkJI2Fzc2VydF9lcXVhbChbYXJy WzBdXSwgJGllLmZyYW1lKCJ0b3AiKS5zZWxlY3RfbGlzdCg6bmFtZSwgInNpdGVfaWQiKS5nZXRB bGxDb250ZW50cykgDQoJCQ0KCQlwdXRzICcnDQoJCQ0KCQlwdXRzICcgMm5kLiBBc3NlcnRpb246 IFZlcmlmaWVkIEFjdGlvbiBJdGVtcyBEcm9wZG93biBMaXN0IGhhdmluZyBjb3JyZWN0IGNvbnRl bnRzICcNCgkJYXNzZXJ0X2VxdWFsKCBbYXJyWzFdIF0sICRpZS5mcmFtZSgidG9wIikuc2VsZWN0 X2xpc3QoOm5hbWUsICJsaW5rc19hY3Rpb25faXRlbXMiKS5nZXRBbGxDb250ZW50cykNCgkJDQoJ CXB1dHMgJycNCgkJDQoJCXB1dHMgJyAzcmQuIEFzc2VydGlvbjogVmVyaWZpZWQgUmVwb3J0cyBE cm9wZG93biBMaXN0IGhhdmluZyBjb3JyZWN0IGNvbnRlbnRzICcNCgkJYXNzZXJ0X2VxdWFsKCBb YXJyWzJdXSwgJGllLmZyYW1lKCJ0b3AiKS5zZWxlY3RfbGlzdCg6bmFtZSwgImxpbmtzX3JlcG9y dHMiKS5nZXRBbGxDb250ZW50cykNCgkJDQoJCXB1dHMgJycNCgkJcHV0cyAnIDR0aC4gQXNzZXJ0 aW9uOiBWZXJpZmllZCBPdGhlciBEcm9wZG93biBMaXN0IGhhdmluZyBjb3JyZWN0IGNvbnRlbnRz ICcNCgkJDQoJCWFzc2VydF9lcXVhbCggW2FyclszXSBdICwgJGllLmZyYW1lKCJ0b3AiKS5zZWxl Y3RfbGlzdCg6bmFtZSwgImxpbmtzX290aGVyIikuZ2V0QWxsQ29udGVudHMpDQoJCQ0KCQlwdXRz ICcnDQoJCQ0KCQllbmQNCgkNCgllbmQNCgkNCg== ------_=_NextPart_001_01C6C79F.ADB6B316--