[#7356] Q: jcode.rb tr(String + nil) — WATANABE Tetsuya <tetsu@...>

ruby-1.1b9_08 (07 からみたいですが)での話です。

15 messages 1998/04/08
[#7358] Re: Q: jcode.rb tr(String + nil) — matz@... (Yukihiro Matsumoto) 1998/04/08

まつもと ゆきひろです

[#7376] [Q] Thread — keiju@... (Keiju ISHITSUKA)

けいじゅ@日本ラショナルソフトウェアです.

19 messages 1998/04/08
[#7384] Re: [Q] Thread — keiju@... (Keiju ISHITSUKA) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7385] Re: [Q] Thread — matz@... (Yukihiro Matsumoto) 1998/04/09

まつもと ゆきひろです

[#7391] Re: [Q] Thread — keiju@... (石塚圭樹 ) 1998/04/09

けいじゅ@日本ラショナルソフトウェアです.

[#7471] scope — Wakou Aoyama <wakou@...>

青山です。

22 messages 1998/04/15
[#7474] Re: scope — WATANABE Hirofumi <watanabe@...> 1998/04/15

わたなべです.

[#7475] Re: scope — Wakou Aoyama <wakou@...> 1998/04/15

青山です。

[#7500] List on List — WATANABE Hirofumi <watanabe@...>

わたなべです.

26 messages 1998/04/15
[#7501] Re: List on List — matz@... (Yukihiro Matsumoto) 1998/04/15

まつもと ゆきひろです

[#7509] クラスの変更 — Mitsuru Ogino <ogino@...>

荻野といいます。すみませんが、ご指導ください。プログラミング初心者です。

13 messages 1998/04/15

[#7591] How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...>

えーと、既に「Perlのmapをrubyでどう書くか」という話題がで出てしまった

29 messages 1998/04/16
[#7601] Re: How to write Perl's `@a[@b] = @c' in ruby — WATANABE Hirofumi <watanabe@...> 1998/04/17

わたなべです.

[#7614] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro HARA <sinara@...> 1998/04/17

原です。

[#7626] Re: How to write Perl's `@a[@b] = @c' in ruby — Inaba Hiroto <inaba@...> 1998/04/19

From: Shin-ichiro HARA <sinara@blade.nagaokaut.ac.jp>

[#7628] Re: How to write Perl's `@a[@b] = @c' in ruby — Shin-ichiro Hara <sinara@...> 1998/04/19

原です。

[#7659] iteration with index (Re: How to write Perl's `@a[@b] = @c' in ruby) — shugo@... (Shugo Maeda) 1998/04/20

前田です。

[#7671] How to install beta versions — Shin-ichiro HARA <sinara@...>

原です。

32 messages 1998/04/21
[#7672] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/21

まつもと ゆきひろです

[#7674] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7675] Re: How to install beta versions — WATANABE Tetsuya <tetsu@...> 1998/04/21

>>>>> "W" == WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp> writes:

[#7677] Re: How to install beta versions — Shin-ichiro HARA <sinara@...> 1998/04/21

原です。

[#7679] Re: How to install beta versions — WATANABE Hirofumi <watanabe@...> 1998/04/21

わたなべです.

[#7690] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/21

From: WATANABE Hirofumi <watanabe@ase.ptg.sony.co.jp>

[#7700] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7710] Re: How to install beta versions — Toshihiko SHIMOKAWA / 下川俊彦 <toshi@...> 1998/04/22

From: matz@netlab.co.jp (Yukihiro Matsumoto)

[#7711] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/22

まつもと ゆきひろです

[#7720] Re: How to install beta versions — chisaka@... 1998/04/23

[#7721] Re: How to install beta versions — matz@... (Yukihiro Matsumoto) 1998/04/24

まつもと ゆきひろです

[#7724] Re: How to install beta versions — NAGAI Hidetoshi <nagai@...> 1998/04/25

永井@知能.九工大です.

[#7729] mail index sort by From: — Kikutani Makoto <kikutani@...>

きくたにです。

27 messages 1998/04/26
[#7730] mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/26

ごとけんです

[#7738] Re: mail index sort by From: — Kikutani Makoto <kikutani@...> 1998/04/27

きくたにです。

[#7757] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[#7758] Re: mail index sort by From: — akira yamada / やまだあきら <akira@...> 1998/04/28

[#7760] Re: mail index sort by From: — gotoken@... (GOTO Kentaro) 1998/04/28

ごとけんです

[ruby-list:7448] Re: call for scripts

From: ARIMA Yasuhiro <fit0298@...>
Date: 1998-04-14 04:55:02 UTC
List: ruby-list #7448
Regard to "[ruby-list:7447] Re: call for scripts"
  by 石塚圭樹 
    at Tue, 14 Apr 1998 13:28:28 +0900

有馬@FITECです。

>あと, これから投稿されようと思っている方はお早めにお願いします. 非クラ
>ス版は基本的に今週末までとさせていただきます. クラス使用版は今月いっぱ
>いぐらいが〆切になると思います.

ruby の勉強のために、pop user のパスワードを変更する poppassd に
アクセスするスクリプトを書いてみました。
ひとつめは、例外処理とイテレータを使ってみたものです。
ふたつめは、ほぼ同じ内容をクラスにしてみたものです。
ruby 1.1b9(98/02/27) [i386-cygwin32] で試しました。

-----------------------------------------------------------------------
#!/usr/local/bin/ruby
#
# ex.1) ruby passwd1.rb 
# ex.2) ruby passwd1.rb hostname
# ex.3) ruby passwd1.rb hostname servicename
#

require "socket"

enter_username = "Enter User Name      :"
enter_old      = "Enter Old Password   :"
enter_new      = "Enter New Password   :"
reenter_new    = "Reenter New Password :"
wrong_password = "New Password is wrong."
success        = "Password is changed."

host    = if ARGV.length >= 1; ARGV.shift; else "mail"; end
service = if ARGV.length >= 1; ARGV.shift; else 106; end
print "Trying ", host,":", service, " ... ", "\n"
STDOUT.flush

s = TCPsocket.open(host, service)
begin
	print enter_username
	username = gets
	print enter_old
	oldpass = gets
	print enter_new
	newpass = gets
	raise(wrong_password) if newpass == oldpass
	print reenter_new
	raise(wrong_password) if newpass != gets

	u = "user " + username
	p = "pass " + oldpass
	n = "newpass " + newpass
	[u, p, n, ""].each do |t|
		s.write(t)
		st = s.readline
		break if not st =~ /.*200.*/
	end

	print success, "\n"
rescue
	print $!, "\n"
ensure
	s.close
	print "bye."
end
-----------------------------------------------------------------------
#!/usr/local/bin/ruby
#
# ex.1) ruby passwd2.rb 
# ex.2) ruby passwd2.rb hostname
# ex.3) ruby passwd2.rb hostname servicename

require "socket"

Enter_username = "Enter User Name      :"
Enter_old      = "Enter Old Password   :"
Enter_new      = "Enter New Password   :"
ReEnter_new    = "Reenter New Password :"
Wrong          = "New Password is wrong."
Success        = "Password is changed."
Fail           = "Could not change."

class TPoppassd
	def initialize(host="mail", port=106)
		@host = host
		@port = port
	end
	def change(user, pass, newpass)
		u = "user " + user
		p = "pass " + pass
		n = "newpass " + newpass
		s = TCPsocket.open(@host, @port)
		begin
			j = s.readline
			[u, p, n].each do |i|
				s.write(i)
				j = s.readline
				raise("Fail:"+j) if not j =~ /.*200.*/
			end
			t = true
		rescue
			print $!
			t = false
		ensure
			s.write("\n")
			s.close
			return t
		end
	end
	def query
		begin
			print Enter_username
			user = gets
			print Enter_old
			pass = gets
			print Enter_new
			newpass = gets
			raise(Wrong) if newpass == pass
			print ReEnter_new
			raise(Wrong) if newpass != gets
			return user, pass, newpass
		rescue
			print $!
			return nil
		end
	end
end

Poppassd = TPoppassd.new
user, pass, newpass = Poppassd.query
print Success if Poppassd.change(user, pass, newpass)
-----------------------------------------------------------------------

--
 有馬 康弘 <fit0298@fitec.co.jp>

In This Thread