s7 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. data/ChangeLog +311 -0
  2. data/LICENCE +24 -0
  3. data/README +56 -0
  4. data/Rakefile +128 -0
  5. data/VERSION +1 -0
  6. data/bin/s7cli +27 -0
  7. data/lib/gettext.rb +28 -0
  8. data/lib/s7.rb +12 -0
  9. data/lib/s7/action.rb +7 -0
  10. data/lib/s7/attribute.rb +226 -0
  11. data/lib/s7/cipher.rb +110 -0
  12. data/lib/s7/configuration.rb +41 -0
  13. data/lib/s7/entry.rb +106 -0
  14. data/lib/s7/entry_collection.rb +44 -0
  15. data/lib/s7/entry_template.rb +10 -0
  16. data/lib/s7/exception.rb +116 -0
  17. data/lib/s7/file.rb +77 -0
  18. data/lib/s7/gpass_file.rb +202 -0
  19. data/lib/s7/key.rb +83 -0
  20. data/lib/s7/message_catalog.rb +5 -0
  21. data/lib/s7/s7_file.rb +47 -0
  22. data/lib/s7/s7cli.rb +213 -0
  23. data/lib/s7/s7cli/attribute_command.rb +69 -0
  24. data/lib/s7/s7cli/command.rb +210 -0
  25. data/lib/s7/s7cli/entry_collection_command.rb +63 -0
  26. data/lib/s7/s7cli/entry_command.rb +728 -0
  27. data/lib/s7/s7cli/option.rb +101 -0
  28. data/lib/s7/secret_generator.rb +30 -0
  29. data/lib/s7/undo_stack.rb +7 -0
  30. data/lib/s7/unicode_data.rb +29 -0
  31. data/lib/s7/utils.rb +37 -0
  32. data/lib/s7/world.rb +150 -0
  33. data/setup.rb +1585 -0
  34. data/test/s7/attribute_test.rb +45 -0
  35. data/test/s7/gpass_file_test.rb +169 -0
  36. data/test/s7/gpass_file_test/passwords.gps.empty +1 -0
  37. data/test/s7/gpass_file_test/passwords.gps.one_entry +2 -0
  38. data/test/s7/gpass_file_test/passwords.gps.three_entries +3 -0
  39. data/test/s7/gpass_file_test/passwords.gps.with_folders +0 -0
  40. data/test/s7/secret_generator_test.rb +29 -0
  41. data/test/s7/unicode_data_test.rb +28 -0
  42. data/test/s7/world_test.rb +35 -0
  43. data/test/test_helper.rb +19 -0
  44. metadata +108 -0
@@ -0,0 +1,311 @@
1
+ Mon Feb 2 20:21:07 2009 TAKAO Kouji <kouji@takao7.net>
2
+
3
+ * Rakefile (setup): bin に s7cli をインストールするように修正。
4
+
5
+ * bin/s7cli: gem でインストールしたときに実行できるように修
6
+ 正。__FILE__ のチェックを省いた。
7
+
8
+ Mon Feb 2 18:54:35 2009 TAKAO Kouji <kouji@takao7.net>
9
+
10
+ * Rakefile (gem): required_ruby_version として 1.9.1 以上を追加。
11
+
12
+ Mon Feb 2 18:49:52 2009 TAKAO Kouji <kouji@takao7.net>
13
+
14
+ * README: インストール手順を追記。
15
+
16
+ Sun Feb 1 21:12:07 2009 TAKAO Kouji <kouji@takao7.net>
17
+
18
+ * Rakefile (gem): パッケージ対象のファイルを修正。
19
+
20
+ Sun Feb 1 17:46:50 2009 TAKAO Kouji <kouji@takao7.net>
21
+
22
+ * setup.rb: セットアップ用に追加。
23
+
24
+ * VERSION: バージョンを記述したファイルを追加。
25
+
26
+ * LICENCE: ライセンスを記述したファイルを追加。
27
+
28
+ * bin/s7cli: shebang を追加。
29
+
30
+ Sun Feb 1 17:21:13 2009 TAKAO Kouji <kouji@takao7.net>
31
+
32
+ * lib/s7/s7cli/entry_command.rb
33
+ (S7::S7Cli::EntrySearchCommand#run): オプション --ignore-case に
34
+ 対応していない不具合を修正。一覧表示のフォーマットを変更。
35
+
36
+ * lib/s7/unicode_data.rb (S7::UnicodeData): UNICODE に関する処理を
37
+ 表現するモジュールを追加。
38
+
39
+ Wed Jan 14 11:34:36 2009 TAKAO Kouji <kouji@takao7.net>
40
+
41
+ * lib/s7/s7cli.rb (S7::S7Cli#run): world.changed が true のときはプ
42
+ ロンプトに * をつけるように修正。
43
+
44
+ Wed Jan 14 11:30:39 2009 TAKAO Kouji <kouji@takao7.net>
45
+
46
+ * lib/s7/s7cli/entry_command.rb
47
+ (S7::S7Cli::EntryCommandUtils#dispatch_command): secret が yes な
48
+ 属性を追加、修正するとき、生成機を使用できるように修正。
49
+
50
+ * lib/s7/secret_generator.rb (S7::SecretGenerator): パスワードや暗
51
+ 証番号などの機密情報を自動生成する処理を表現するクラスを追加。
52
+
53
+ Wed Jan 14 11:29:31 2009 TAKAO Kouji <kouji@takao7.net>
54
+
55
+ * Rakefile: いまのところ rgettext を使用しないように修正。
56
+
57
+ Wed Jan 14 08:56:05 2009 TAKAO Kouji <kouji@takao7.net>
58
+
59
+ * lib/s7/exception.rb (S7::NoSuchAttribute): 機密情報の属性が存在し
60
+ ないことを表現する例外クラスを追加。
61
+
62
+ * lib/s7/exception.rb (S7::CommandFailed): OS のコマンドの実行に失
63
+ 敗したことを表現する例外クラスを追加。
64
+
65
+ * lib/s7/s7cli/attribute_command.rb (S7::S7Cli::AttributeCopyCommand):
66
+ 機密情報の属性のうち、指定したものの値をクリップボードにコピーするコ
67
+ マンドを表現するクラスを追加。
68
+
69
+ Sat Jan 10 21:36:21 2009 TAKAO Kouji <kouji@takao7.net>
70
+
71
+ * lib/s7/s7cli/entry_command.rb
72
+ (S7::S7Cli::EntrySearchCommand#run): --ignore-case オプションを追加。
73
+
74
+ Sat Jan 10 21:35:33 2009 TAKAO Kouji <kouji@takao7.net>
75
+
76
+ * lib/s7/s7cli/command.rb (S7::S7Cli::LockCommand#run): 画面の消去
77
+ に clear コマンドを使用するように修正。
78
+
79
+ Sat Jan 10 21:34:33 2009 TAKAO Kouji <kouji@takao7.net>
80
+
81
+ * lib/gettext.rb: ruby-gettext がまだ Ruby 1.9 に対応していないため、
82
+ とりあえずモックのようなもので対応。
83
+
84
+ Wed Oct 22 08:30:44 2008 TAKAO Kouji <kouji@takao7.net>
85
+
86
+ * test/s7/attribute_test.rb: Attribute の単体テスト用のファイルを追
87
+ 加。
88
+
89
+ Tue Oct 21 19:51:49 2008 TAKAO Kouji <kouji@takao7.net>
90
+
91
+ * lib/s7/attribute.rb (S7::DateTimeAttribute::display_value):
92
+ secret であれば * を、そうでなければ「%Y/%m/%d %H:%M:%S」でフォー
93
+ マットした文字列を返すように修正。
94
+
95
+ * lib/s7/attribute.rb (S7::BooleanAttribute#display_value): secret
96
+ であれば * を、そうでなければ Yes または No を返すように修正。
97
+
98
+ Tue Oct 14 15:21:12 2008 TAKAO Kouji <kouji@takao7.net>
99
+
100
+ * lib/s7/s7cli/command.rb (S7::S7Cli::LockCommand#run): lock する前
101
+ に、もし状態の変化があれば保存するように修正。
102
+
103
+ Tue Oct 14 15:19:07 2008 TAKAO Kouji <kouji@takao7.net>
104
+
105
+ * lib/s7/s7cli/entry_command.rb
106
+ (S7::S7Cli::EntryCommandUtils#input_attribute_type):
107
+ Readline.line_buffer が存在しない環境でも動作できるように修正。
108
+
109
+ * lib/s7/s7cli/command.rb (S7::S7Cli::LockCommand#run):
110
+ Readline.get_screen_size が存在しない環境でも動作できるように修正。
111
+
112
+ Tue Oct 14 15:08:39 2008 TAKAO Kouji <kouji@takao7.net>
113
+
114
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryShowCommand#run):
115
+ --show-secret オプションの指定により rate を変更したときだけ、その
116
+ 旨を出力するように修正。
117
+
118
+ Mon Oct 13 00:29:03 2008 TAKAO Kouji <kouji@takao7.net>
119
+
120
+ * lib/s7/s7cli/command.rb (S7::S7Cli::LockCommand#run): 画面を消去
121
+ するように修正。
122
+
123
+ Sun Oct 12 23:31:09 2008 TAKAO Kouji <kouji@takao7.net>
124
+
125
+ * lib/s7/s7cli/command.rb (S7::S7Cli::LockCommand): スクリーンロッ
126
+ クし、マスターキーを入力するまでは操作できないようにするコマンドを
127
+ 表現するクラスを追加。
128
+
129
+ Sun Oct 12 23:15:28 2008 TAKAO Kouji <kouji@takao7.net>
130
+
131
+ * lib/s7/s7cli/command.rb (S7::S7Cli::SaveCommand): save を追加。
132
+
133
+ Sun Oct 12 22:02:07 2008 TAKAO Kouji <kouji@takao7.net>
134
+
135
+ * lib/s7/s7cli/entry_command.rb
136
+ (S7::S7Cli::EntryAddCommand#initialize): 未サポートのオプションを削
137
+ 除。
138
+
139
+ Sun Oct 12 21:55:35 2008 TAKAO Kouji <kouji@takao7.net>
140
+
141
+ * lib/s7/entry.rb (S7::Entry#duplicate_attributes): 全ての属性の複
142
+ 製を取得するメソッドを追加。
143
+
144
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryAddCommand#run):
145
+ 上記のメソッドを使用するように修正。
146
+
147
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryEditCommand::run):
148
+ 同上。
149
+
150
+ Sun Oct 12 21:44:13 2008 TAKAO Kouji <kouji@takao7.net>
151
+
152
+ * lib/s7/s7cli.rb (S7::S7Cli#run): ^C で停止しないように修正。
153
+
154
+ * lib/s7/exception.rb (S7::NoSuchEntry): 機密情報が存在しないことを
155
+ 表現する例外クラスを追加。
156
+
157
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryEditCommand#run):
158
+ NoSuchEntry 例外クラスを使用するように修正。
159
+
160
+ * lib/s7/s7cli/entry_command.rb
161
+ (S7::S7Cli::EntryDeleteCommand#run): 同上。
162
+
163
+ * lib/s7/s7cli/entry_command.rb
164
+ (S7::S7Cli::EntryShowCommand::run): 同上。
165
+
166
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryAddCommand#run):
167
+ 既存の機密情報をコピーして作成を実現。
168
+
169
+ Sun Oct 12 20:46:06 2008 TAKAO Kouji <kouji@takao7.net>
170
+
171
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryAddCommand#run):
172
+ リファクタリング。
173
+
174
+ Sun Oct 12 20:44:11 2008 TAKAO Kouji <kouji@takao7.net>
175
+
176
+ * lib/s7/exception.rb (S7::Canceled): command から移動。
177
+
178
+ * lib/s7/s7cli/entry_command.rb
179
+ (S7::S7Cli::EntryCommandUtils::command_loop): cancel を ^C に修正。
180
+
181
+ * lib/s7/s7cli/entry_command.rb
182
+ (S7::S7Cli::EntryCommandUtils#input_attribute_name): プロンプトを修
183
+ 正。
184
+
185
+ * lib/s7/s7cli/entry_command.rb
186
+ (S7::S7Cli::EntryCommandUtils::EDITING_USAGE): cancel と help を削
187
+ 除。
188
+
189
+ Sun Oct 12 20:27:50 2008 TAKAO Kouji <kouji@takao7.net>
190
+
191
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryDeleteCommand): コ
192
+ マンド名を delete に修正。
193
+
194
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntrySearchCommand): コ
195
+ マンド名を search に修正。
196
+
197
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryShowCommand): コマ
198
+ ンド名を show に修正。
199
+
200
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryEditCommand): コマ
201
+ ンド名を edit に修正。
202
+
203
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryAddCommand): コマ
204
+ ンド名を add に修正。
205
+
206
+ Sun Oct 12 20:26:01 2008 TAKAO Kouji <kouji@takao7.net>
207
+
208
+ * lib/s7/s7cli/entry_collection_command.rb
209
+ (S7::S7Cli::EntryCollectionImportCommand): コマンド名を import に修
210
+ 正。
211
+
212
+ Sun Oct 12 20:25:17 2008 TAKAO Kouji <kouji@takao7.net>
213
+
214
+ * lib/s7/exception.rb (S7::InvalidPassphrase#to_s): メッセージを修正。
215
+
216
+ * lib/s7/exception.rb (S7::DataLengthError#to_s): 同上。
217
+
218
+ * lib/s7/exception.rb (S7::NotExist#to_s): 同上。
219
+
220
+ * lib/s7/exception.rb (S7::InvalidPath#to_s): 同上。
221
+
222
+ Sun Oct 12 20:15:40 2008 TAKAO Kouji <kouji@takao7.net>
223
+
224
+ * lib/s7/attribute.rb (S7::Attribute#value): value の setter と
225
+ getter を自前で用意した。get_value と set_value(val) で nil でない
226
+ 場合の変換処理をかけるようにした。
227
+
228
+ * lib/s7/attribute.rb (S7::Attribute#value=): 同上。
229
+
230
+ Sun Oct 12 15:01:19 2008 TAKAO Kouji <kouji@takao7.net>
231
+
232
+ * lib/s7/s7cli/entry_command.rb
233
+ (S7::S7Cli::EntrySearchCommand#run): rate でソートできない不具合を
234
+ 修正。
235
+
236
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryShowCommand#run):
237
+ 表示するたびに rate を加算するように修正。
238
+
239
+ Sun Oct 12 14:55:52 2008 TAKAO Kouji <kouji@takao7.net>
240
+
241
+ * lib/s7/s7cli/entry_command.rb (S7::S7Cli::EntryShowCommand#run):
242
+ リファクタリング。
243
+
244
+ Sun Oct 12 14:53:55 2008 TAKAO Kouji <kouji@takao7.net>
245
+
246
+ * lib/s7/s7cli/entry_command.rb
247
+ (S7::S7Cli::EntrySearchCommand#run): 検索結果の表示件数を指定する
248
+ --num オプションを追加。
249
+
250
+ Wed Oct 8 20:38:19 2008 TAKAO Kouji <kouji@takao7.net>
251
+
252
+ * lib/s7/s7cli/command.rb (S7::S7Cli::EntryAddCommand): 機密情報を
253
+ 追加するコマンドを表現するクラスを追加。
254
+
255
+ * lib/s7/s7cli/command.rb (S7::S7Cli::Command#canceled): キャンセル
256
+ した旨を出力し、true を返すメソッドを追加。
257
+
258
+ Tue Oct 7 22:24:24 2008 TAKAO Kouji <kouji@takao7.net>
259
+
260
+ * lib/s7/s7cli/command.rb (S7::S7Cli::Command.command): メソッド名
261
+ を register から変更。
262
+
263
+ Tue Oct 7 22:22:05 2008 TAKAO Kouji <kouji@takao7.net>
264
+
265
+ * bin/s7cli: Option と Command を分割した。
266
+
267
+ * lib/s7/s7cli/command.rb: 同上。
268
+
269
+ * lib/s7/s7cli/option.rb: 同上。
270
+
271
+ Sun Oct 5 01:35:27 2008 TAKAO Kouji <kouji@takao7.net>
272
+
273
+ * GPass のファイルを読み込めるように修正。
274
+
275
+ Sun Oct 5 00:01:47 2008 TAKAO Kouji <kouji@takao7.net>
276
+
277
+ * test/s7/file_test.rb: 削除。
278
+
279
+ Sat Sep 27 02:20:52 2008 TAKAO Kouji <kouji@takao7.net>
280
+
281
+ * README: ライセンスの追加。
282
+
283
+ Sat Sep 27 02:15:40 2008 TAKAO Kouji <kouji@takao7.net>
284
+
285
+ * bin: 実行形式のスクリプトを配置するためのディレクトリを追加。
286
+
287
+ * docs: ドキュメントを配置するためのディレクトリを追加。
288
+
289
+ * lib: Ruby のソースファイルを配置するためのディレクトリを追加。
290
+
291
+ * test: テスト用のファイルを配置するためのディレクトリを追加。
292
+
293
+ Sat Sep 27 02:15:19 2008 TAKAO Kouji <kouji@takao7.net>
294
+
295
+ * README: 追加。
296
+
297
+ Sat Sep 27 01:38:42 2008 TAKAO Kouji <kouji@takao7.net>
298
+
299
+ * ChangeLog を追加。
300
+
301
+ Local variables:
302
+ add-log-time-format: (lambda ()
303
+ (let* ((time (current-time))
304
+ (system-time-locale "C")
305
+ (diff (+ (cadr time) 32400))
306
+ (lo (% diff 65536))
307
+ (hi (+ (car time) (/ diff 65536))))
308
+ (format-time-string "%a %b %e %H:%M:%S %Y" (list hi lo) t)))
309
+ indent-tabs-mode: t
310
+ tab-width: 8
311
+ end:
data/LICENCE ADDED
@@ -0,0 +1,24 @@
1
+ Copyright (c) 2009, TAKAO Kouji <kouji@takao7.net>
2
+
3
+ Redistribution and use in source and binary forms, with or without
4
+ modification, are permitted provided that the following conditions are
5
+ met:
6
+
7
+ 1. Redistributions of source code must retain the above copyright
8
+ notice, this list of conditions and the following disclaimer.
9
+ 2. Redistributions in binary form must reproduce the above
10
+ copyright notice, this list of conditions and the following
11
+ disclaimer in the documentation and/or other materials
12
+ provided with the distribution.
13
+
14
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
15
+ IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
+ DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
18
+ INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
20
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
22
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
23
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24
+ POSSIBILITY OF SUCH DAMAGE.
data/README ADDED
@@ -0,0 +1,56 @@
1
+ s7 - 機密情報を管理するソフトウェア
2
+
3
+ = はじめに
4
+
5
+ s7(セブンと読みます)は、あるウェブサイトやリモートサーバのパスフレーズ
6
+ や、クレジットカードの暗証番号などの機密情報を管理するソフトウェアです。
7
+ 修正 BSD ライセンスに従って公開・配布を行っているオープンソースソフトウェ
8
+ アです。
9
+
10
+ 機密情報は、マスターキーと呼ばれるパスフレーズを使って、
11
+ 秘密鍵暗号鍵方式の一つを用いて暗号化します。
12
+ 万が一、機密情報を格納しているファイルが盗まれてしまった場合でも、
13
+ ちょっとやそっとでは機密情報を覗き見ることはできません。
14
+
15
+ = ゴール
16
+
17
+ s7 は次の目標に向かって開発を進めています。
18
+
19
+ * クリップボードを利用せずにアプリケーションへのパスフレーズの入力ができること
20
+ * pwgen のようなコマンドラインのパスワードジェネレータと同じくらい簡単に新しいパスフレーズを含むアカウント情報を発行できること
21
+ * GNOME、ncurses やコマンドラインなど、ユーザの好みに合わせて UI を選択できること
22
+ * Windows、Mac OS X、Linux、iPhone などのさまざまなプラットフォームで動作すること
23
+
24
+ = 機能
25
+
26
+ * 秘密鍵暗号鍵方式を用いた強固な暗号化
27
+ * 多彩な編集機能(コピー&ペースト、UNDO/REDOなど)
28
+ * 簡単便利な検索機能
29
+ * 組み込みのセキュアパスワードのジェネレータ
30
+
31
+ = 動作環境
32
+
33
+ * ruby 1.9
34
+
35
+ 以下のライブラリを有効にしておくこと。
36
+ * readline
37
+ * openssl
38
+
39
+ = インストール
40
+
41
+ まず、ruby 1.9 をインストールしてください。このとき、readline、openssl
42
+ ライブラリを有効にしてください。
43
+
44
+ $ gem install s7-seven
45
+
46
+ = 開発者
47
+
48
+ * 高尾 宏治 <kouji@takao7.net>
49
+
50
+ = 連絡先
51
+
52
+ s7 に関するお問い合わせは高尾 宏治 <kouji@takao7.net> までお願いします。
53
+
54
+ = ライセンス
55
+
56
+ LICENCE ファイルを参照してください。
@@ -0,0 +1,128 @@
1
+ require "rake"
2
+ require "rake/rdoctask"
3
+ require "rake/testtask"
4
+ require "rake/gempackagetask"
5
+
6
+ Rake::RDocTask.new do |rd|
7
+ rd.main = "README"
8
+ rd.rdoc_files.include("README", "{lib/**/*.rb,ext/**/*.c}")
9
+ rd.options = ["--line-numbers", "--inline-source", "--title", "s7",
10
+ "--main", "README"]
11
+ rd.rdoc_dir = "docs/rdoc"
12
+ end
13
+
14
+ app_version = nil
15
+ File.open(File.expand_path("VERSION", File.dirname(__FILE__))) do |f|
16
+ app_version = f.gets.chomp
17
+ end
18
+
19
+ spec = Gem::Specification.new do |s|
20
+ s.name = "s7"
21
+ s.version = app_version
22
+ s.summary = "The secret informations manager."
23
+ s.description = <<EOS
24
+ s7 (seven) is the secret informations(password, credit number, file, etc..) manager.
25
+ EOS
26
+ s.author = "TAKAO Kouji"
27
+ s.email = "kouji@takao7.net"
28
+ s.homepage = "http://code.google.com/p/s7-seven/"
29
+ s.rubyforge_project = "s7-seven"
30
+
31
+ s.default_executable = "s7cli"
32
+ s.executables = ["s7cli"]
33
+
34
+ s.requirements << "Ruby, version 1.9.1 (or newer)"
35
+ s.required_ruby_version = '>= 1.9.1'
36
+
37
+ s.files = Dir.glob("{ChangeLog,LICENCE,README,Rakefile,VERSION,{bin,lib,test}/**/*,setup.rb}").delete_if { |s| /(\.svn|~$|\.bak$)/.match(s) }
38
+
39
+ s.test_files = Dir.glob("test/**/*_test.rb")
40
+
41
+ s.has_rdoc = true
42
+ s.rdoc_options =
43
+ ["--line-numbers", "--inline-source", "--title", "s7",
44
+ "--main", "README"]
45
+ s.extra_rdoc_files = ["README"]
46
+ end
47
+
48
+ Rake::GemPackageTask.new(spec) do |pkg|
49
+ pkg.need_zip = true
50
+ pkg.need_tar = true
51
+ end
52
+
53
+ ruby_path = File.join(RbConfig::CONFIG["bindir"],
54
+ RbConfig::CONFIG["ruby_install_name"])
55
+
56
+ namespace :setup do
57
+ desc "run 'config' task in setup.rb."
58
+ task :config do
59
+ system("#{ruby_path} setup.rb config #{ENV["SETUP_OPTS"]}")
60
+ end
61
+
62
+ desc "run 'setup' task in setup.rb."
63
+ task :setup do
64
+ system("#{ruby_path} setup.rb setup #{ENV["SETUP_OPTS"]}")
65
+ end
66
+
67
+ desc "run 'install' task in setup.rb."
68
+ task :install do
69
+ system("#{ruby_path} setup.rb install #{ENV["SETUP_OPTS"]}")
70
+ end
71
+
72
+ desc "run 'test' task in setup.rb."
73
+ task :test do
74
+ system("#{ruby_path} setup.rb test #{ENV["SETUP_OPTS"]}")
75
+ end
76
+
77
+ desc "run 'clean' task in setup.rb."
78
+ task :clean do
79
+ system("#{ruby_path} setup.rb clean #{ENV["SETUP_OPTS"]}")
80
+ end
81
+
82
+ desc "run 'distclean' task in setup.rb."
83
+ task :distclean do
84
+ system("#{ruby_path} setup.rb distclean #{ENV["SETUP_OPTS"]}")
85
+ end
86
+
87
+ desc "run default tasks in setup.rb."
88
+ task :all do
89
+ system("#{ruby_path} setup.rb #{ENV["SETUP_OPTS"]}")
90
+ end
91
+ end
92
+
93
+ =begin
94
+ require "gettext/rgettext"
95
+ require "gettext/utils"
96
+
97
+ File.open(File.expand_path("lib/s7.rb", File.dirname(__FILE__)),
98
+ "r:utf-8") do |f|
99
+ VERSION = f.read.slice(/VERSION\s*=\s*"([\w.]+)"/m, 1)
100
+ end
101
+ GETTEXT_TEXT_DOMAIN = "s7"
102
+ GETTEXT_TARGETS = Dir.glob("{bin/s7cli,lib/**/*.rb}")
103
+
104
+ desc "Create pot file"
105
+ task :makepot do
106
+ RGetText.run(GETTEXT_TARGETS, "po/s7.pot")
107
+ end
108
+
109
+ desc "Update pot/po files."
110
+ task :updatepo do
111
+ GetText.update_pofiles(GETTEXT_TEXT_DOMAIN,
112
+ GETTEXT_TARGETS,
113
+ [GETTEXT_TEXT_DOMAIN, VERSION].join(" "))
114
+ end
115
+
116
+ desc "Create mo-files"
117
+ task :makemo do
118
+ GetText.create_mofiles(true)
119
+ end
120
+ =end
121
+
122
+ Rake::TestTask.new do |t|
123
+ t.libs << "lib"
124
+ t.libs << "test"
125
+ t.test_files = FileList["test/**/*_{helper,test}.rb"]
126
+ end
127
+
128
+ task :default => :test