X-SC-Duration: のみが指定されたスケジュールについて

115 views
Skip to first unread message

Kazuhiro Ito

unread,
Mar 28, 2012, 8:59:38 AM3/28/12
to mhc-...@googlegroups.com
伊藤です。

Emacs + Wanderlust で MHC を使っていますが、数日間毎日存在する
スケジュールを作成したいと思って X-SC-Day: や X-SC-Cond: を指定せずに
X-SC-Duration: のみを指定したスケジュールを記述することがあります。

emacs/README.ja によれば

> ただしこれで指定した期間は、
> X-SC-Day: X-SC-Cond: で指定した条件をより限定するために使われ
> るので、X-SC-Duration: だけではイベントを記述できません。

とあるので、正しい書き方ではないようなのですが、
Wanderlust 上では期間中毎日存在するスケジュールとして表示されます。

しかし、ruby からはそのようには扱われないようで、
MhcScheduleDB::each_sch や MhcScheduleDB::search 等では
ひっかけられません。
また、こっちはバグだと思うのですが、X-SC-Cond: に月だけを指定した
スケジュールも見つけられません。
そこで、

・X-SC-Cond: に日・曜日・月の指定がなく、X-SC-Day: もない。
・X-SC-Cond: に月のみ指定されている。X-SC-Day: の記載の有無は問わない。

のいずれかの場合に、X-SC-Duration: の期間中 (かつ、月が指定されている
場合は当該月に) 毎日存在するイベントとしてMhcScheduleDB::each_sch や
MhcScheduleDB::search で検索できるようにしてみました。

--
伊藤 和博(Kazuhiro Ito)

mhc.diff

Yoshinari Nomura

unread,
Mar 29, 2012, 6:17:33 AM3/29/12
to mhc-...@googlegroups.com
伊藤さん,乃村です.

> 伊藤です。
:


>> ただしこれで指定した期間は、
>> X-SC-Day: X-SC-Cond: で指定した条件をより限定するために使われ
>> るので、X-SC-Duration: だけではイベントを記述できません。
>
> とあるので、正しい書き方ではないようなのですが、
> Wanderlust 上では期間中毎日存在するスケジュールとして表示されます。

僕の心としては,どちらかというと,emacs での実装が成行きでこうなっ
ているという感じです.少々面倒ですが,

X-SC-Duration: に YYYYMMDD-YYYYMMDD と書いて,
X-SC-Cond: に Sun Mon Tue Wed Thu Fri Sat

と書くのがもともとの発想です.

> ・X-SC-Cond: に日・曜日・月の指定がなく、X-SC-Day: もない。
> ・X-SC-Cond: に月のみ指定されている。X-SC-Day: の記載の有無は問わない。
>
> のいずれかの場合に、X-SC-Duration: の期間中 (かつ、月が指定されている
> 場合は当該月に) 毎日存在するイベントとしてMhcScheduleDB::each_sch や
> MhcScheduleDB::search で検索できるようにしてみました。

上記の条件に合致する場合は,X-SC-Cond: に Sun Mon Tue Wed Thu
Fri Sat が補完されるという解釈だと思いますが,X-SC-Day:
を加えると結果がガラっと変わることに違和感がないでしょうか.

例えば,

X-SC-Duration: 20120401-20120430
X-SC-Cond:
X-SC-Day:

は,4月毎日ですが,

X-SC-Duration: 20120401-20120430
X-SC-Cond:
X-SC-Day: 20120501

は,empty となります.これの意味するところを説明するのは,かなり
面倒ではないでしょうか.そこで,X-SC-Duration: は,Cond:/Day: を
制約する方向にのみ働くという解釈にしています.
--
nom

Kazuhiro Ito

unread,
Mar 31, 2012, 7:37:48 AM3/31/12
to mhc-...@googlegroups.com
伊藤です。

> >> ただしこれで指定した期間は、
> >> X-SC-Day: X-SC-Cond: で指定した条件をより限定するために使われ
> >> るので、X-SC-Duration: だけではイベントを記述できません。
> >
> > とあるので、正しい書き方ではないようなのですが、
> > Wanderlust 上では期間中毎日存在するスケジュールとして表示されます。
>
> 僕の心としては,どちらかというと,emacs での実装が成行きでこうなっ
> ているという感じです.少々面倒ですが,
>
> X-SC-Duration: に YYYYMMDD-YYYYMMDD と書いて,
> X-SC-Cond: に Sun Mon Tue Wed Thu Fri Sat
>
> と書くのがもともとの発想です.

それが少々面倒なのでこのパッチを書いたわけです。
パッチを書く前は Emacs側で mhc-draft-finish の際に
そういう補完させようかとかは考えていました。


> > ・X-SC-Cond: に日・曜日・月の指定がなく、X-SC-Day: もない。
> > ・X-SC-Cond: に月のみ指定されている。X-SC-Day: の記載の有無は問わない。
> >
> > のいずれかの場合に、X-SC-Duration: の期間中 (かつ、月が指定されている
> > 場合は当該月に) 毎日存在するイベントとしてMhcScheduleDB::each_sch や
> > MhcScheduleDB::search で検索できるようにしてみました。
>
> 上記の条件に合致する場合は,X-SC-Cond: に Sun Mon Tue Wed Thu
> Fri Sat が補完されるという解釈だと思いますが,X-SC-Day:
> を加えると結果がガラっと変わることに違和感がないでしょうか.

私自身は

1. X-SC-Cond:, X-SC-Dsay: に従う。
2. 何も無ければ empty なイベント。

となっている現行の規則を

1. X-SC-Cond:, X-SC-Dsay: に従う。
2. 何も無ければ毎日存在するイベント。

のように、例外処理を変更すると解釈しています。
現行の動作に対する変更は最小限にするという前提で例外処理を
追加するパッチなので、規則に一貫性がないと言われればその通りです。


> 例えば,
>
> X-SC-Duration: 20120401-20120430
> X-SC-Cond:
> X-SC-Day:
>
> は,4月毎日ですが,
>
> X-SC-Duration: 20120401-20120430
> X-SC-Cond:
> X-SC-Day: 20120501
>
> は,empty となります.これの意味するところを説明するのは,かなり
> 面倒ではないでしょうか.そこで,X-SC-Duration: は,Cond:/Day: を
> 制約する方向にのみ働くという解釈にしています.

パッチが当たった状態だとして、実際の場面では X-SC-Duration: に
隣接した日を追加するのであれば X-SC-Duration: を拡大しますし、
離れた日を追加するのであれば X-SC-Cond: の記述が必須なので、
「結果がガラっと変わる」場面は気にしなくてもよいのではと
考えています。
ユーザに対する説明としては X-SC-Day: と X-SC-Duration: の両方が
ない場合は例外ケースである事を説明すれば事足りると思っています。

--
伊藤 和博(Kazuhiro Ito)

Yoshinari Nomura

unread,
Apr 1, 2012, 9:35:21 PM4/1/12
to mhc-...@googlegroups.com
乃村です.

On Sat, 31 Mar 2012 20:37:48 +0900,
Kazuhiro Ito <kz...@d1.dion.ne.jp> said:

> 私自身は
>
> 1. X-SC-Cond:, X-SC-Dsay: に従う。
> 2. 何も無ければ empty なイベント。
>
> となっている現行の規則を
>
> 1. X-SC-Cond:, X-SC-Dsay: に従う。
> 2. 何も無ければ毎日存在するイベント。
>
> のように、例外処理を変更すると解釈しています。
> 現行の動作に対する変更は最小限にするという前提で例外処理を
> 追加するパッチなので、規則に一貫性がないと言われればその通りです。

わかりました.もし,github をお使いであれば,先のパッチを pull
request いただけると助かります.
--
nom

Yoshinari Nomura

unread,
Apr 3, 2012, 7:54:36 PM4/3/12
to mhc-...@googlegroups.com
乃村です.

> わかりました.もし,github をお使いであれば,先のパッチを pull
> request いただけると助かります.

pull request ありがとうございました.伊藤さんのパッチをマージしました.

https://github.com/yoshinari-nomura/mhc/pull/1

--
nom

Yoshinari Nomura

unread,
Apr 3, 2012, 8:16:14 PM4/3/12
to mhc-...@googlegroups.com
乃村です.

すみません.間違って普段使いではないメールアドレスを log に残し
ちゃったので,amend して push -f しちゃいました.
現在の master HEAD は,e8c76453f81d1c271f1b21403754e131b1fd96ea
です.

まだ pull していない人は,関係ないですが,pull しちゃった方は,
master ブランチで,git reset --hard 'HEAD^' して,もう一度 git
pull するなどして下さい.

git reset --hard すると working copy での独自変更が失われます.
お気を付け下さい.

Reply all
Reply to author
Forward
0 new messages