narou 1.2.0 → 1.2.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of narou might be problematic. Click here for more details.

@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: b86024bfac26c1b58b5cb7f1fdd823a087956f2e
4
+ data.tar.gz: 0508f7d5fc19bcb92eced3f3b83650f57ee0dabf
5
+ SHA512:
6
+ metadata.gz: 932b6d2806200072c305cd593a73dc325f26c91a5b731bc1afe90a25f0987559ea5e9e7851fc4998ec62fc7706488464e62f455f82165e7b4f62a23412940a55
7
+ data.tar.gz: f93648aa0f82b39fe6a632044553ac3e64f249559e26b696637e0b3981e3e887175bed18a0904ca71beb806f2c1b6a2d396b6f8a194e030c9a7f054d908679d0
@@ -1,6 +1,30 @@
1
1
  
2
2
  更新履歴 - ChangeLog
3
3
  --------------------
4
+ 2013/03/?? : **1.2.1**
5
+ * Bug Fix
6
+ - ノノカギのとじ忘れがあると以降のノノカギのとじ開きが逆になってしまうバグを修正
7
+ * この修正によって改行を含んだノノカギでおかしくなるが、仕様とする
8
+ - 濁点フォント(DMincho.ttf)に含まれていない文字は縦中横の擬似表現にする
9
+ - アラビア数字の漢数字化がちゃんと変換できていなかったのを修正
10
+ * 追加機能もしくは仕様変更
11
+ - `send` コマンドで管理する全ての小説を送信する機能追加
12
+ * `send` を引数なしで実行することで、端末にある書籍データより新しければ送信する
13
+ - DMincho.ttfの濁点対応文字を増やした(ι゛ および カタカナに濁点)。 **narou init でAozoraEpub3の再設定が必要です**
14
+ - コマンドのデフォルトのオプションを指定できる機能を追加
15
+ * `narou setting default_args.コマンド名="オプション"` で設定出来ます。注意:これは、直接コマンドを発行した時のみ有効です。
16
+ 他のコマンド経由で呼ばれる場合には有効にはなりません。
17
+ ```
18
+ # 使用例
19
+ # list コマンドで、「更新日の」「古い順」に表示するオプションを設定(リストが長くなった時に便利)
20
+ narou setting default_args.list="-lr"
21
+ # オプションを指定しなくても、default_args.listで設定したオプションが使われる
22
+ narou list
23
+
24
+ # 削除確認メッセージ毎回表示しない
25
+ narou setting default_args.remove="-y"
26
+ narou remove 0
27
+ ```
4
28
 
5
29
  2013/03/19 : **1.2.0**
6
30
  * Bug Fix 及び機能改善
data/README.md CHANGED
@@ -3,16 +3,17 @@ Narou.rb ― 小説家になろうダウンローダ&縦書用整形スクリ
3
3
 
4
4
  概要 - Summary
5
5
  --------------
6
- このアプリは[小説家になろう](http://syosetu.com/)で公開されている小説の管理、及び電子書籍データへの
7
- 変換を支援します。縦書用に特化されており、横書き用に特化されたWEB小説を違和感なく縦書で読むことが出来るようになります。
6
+ このアプリは[小説家になろう](http://syosetu.com/)、[小説を読もう!](http://yomou.syosetu.com/)で公開されている小説の管理、
7
+ 及び電子書籍データへの変換を支援します。縦書用に特化されており、
8
+ 横書き用に特化されたWEB小説を違和感なく縦書で読むことが出来るようになります。
9
+ また、若干の校正機能もありますので、小説としては許されない記述法などは矯正します。(例:感嘆符のあとにはスペースが必ずくる)
10
+
11
+ [ノクターンノベルズ](http://noc.syosetu.com/)及び[ムーンライトノベルズ](http://mnlt.syosetu.com/)にも対応しています。
8
12
 
9
13
  全てコンソールで操作するCUIアプリケーションです。
10
14
 
11
15
  主な機能は小説家になろうの小説のダウンロード、更新管理、テキスト整形、AozoraEpub3・kindlegen連携によるEPUB/MOBI出力です。
12
16
 
13
- 縦書に特化しており、どんな文章だろうとほぼ違和感なく縦書で読むことができるように変換します。また、若干の校正機能もありますので、
14
- 小説としては許されない記述法などは矯正します。(例:感嘆符のあとにはスペースが必ずくる)
15
-
16
17
  詳細な説明やインストール方法は **[Narou.rb 説明書](https://github.com/whiteleaf7/narou/wiki)** を御覧ください。
17
18
 
18
19
  更新履歴 - ChangeLog
@@ -27,8 +27,15 @@ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
27
27
  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
28
28
  =end
29
29
 
30
+ alias :original_warn :warn
31
+ unless $debug
32
+ def warn(*a); end
33
+ end
34
+
30
35
  require "termcolor"
31
36
 
37
+ alias :warn :original_warn
38
+
32
39
  if RUBY_PLATFORM =~ /mswin(?!ce)|mingw|bccwin/i # without cygwin
33
40
  require_relative "extensions/windows"
34
41
 
@@ -40,7 +40,7 @@ module Command
40
40
  id = novel["id"]
41
41
  frozen = Narou.novel_frozen?(id)
42
42
  disp_id = ((frozen ? "*" : "") + id.to_s).rjust(4)
43
- disp_id = disp_id.sub("*", "<blue>*</blue>").termcolor if frozen
43
+ disp_id = disp_id.sub("*", "<cyan>*</cyan>").termcolor if frozen
44
44
  puts [
45
45
  disp_id,
46
46
  novel["last_update"].strftime("%y/%m/%d"),
@@ -57,7 +57,7 @@ module Command
57
57
  next unless Helper.confirm("#{title} を#{(@options["with-file"] ? "“完全に”" : "")}削除しますか")
58
58
  end
59
59
  Downloader.remove_novel(target, @options["with-file"])
60
- puts "削除しました"
60
+ puts "<green>#{title} を削除しました</green>".termcolor
61
61
  end
62
62
  end
63
63
 
@@ -14,24 +14,29 @@ module Command
14
14
  end
15
15
 
16
16
  def initialize
17
- super("<device> <target1> [<target2> ...]")
17
+ super("<device> [<target1> <target2> ...]")
18
18
  @opt.separator <<-EOS
19
19
 
20
- ・指定した小説の電子書籍データ(#{Device::DEVICES.map{|_,d| d::EBOOK_FILE_EXT}.join(", ")})を<device>で指定した端末に送信します。
20
+ ・<target>で指定した小説の電子書籍データ(#{Device::DEVICES.map{|_,d| d::EBOOK_FILE_EXT}.join(", ")})を<device>で指定した端末に送信します。
21
21
  <device>には現在 #{Device::DEVICES.keys.join(", ")} が指定出来ます。
22
22
  ・narou setting device=<device>としておけば、<device>の入力を省略できます。
23
23
  また、convertコマンドで変換時に(端末がPCに接続されていれば)自動でデータを送信するようになります。
24
+ ・<target>を省略した場合、管理している小説全てのファイルのタイムスタンプを端末のものと比べて新しければ送信します。
24
25
 
25
26
  Example:
26
27
  narou send kindle 6
27
28
  narou send kobo 6
29
+
30
+ # <device>の省略
28
31
  narou setting device=kindle
29
- narou send 6 # <device>の省略
32
+ narou send 6
33
+
34
+ narou send # 端末のファイルより新しいファイルがあれば送信
30
35
  EOS
31
36
  end
32
37
 
33
38
  def get_device(argv)
34
- if Device.exists?(argv.first)
39
+ if argv.first && Device.exists?(argv.first)
35
40
  return Narou.get_device(argv.shift)
36
41
  end
37
42
  Narou.get_device
@@ -39,10 +44,6 @@ module Command
39
44
 
40
45
  def execute(argv)
41
46
  super
42
- if argv.empty?
43
- puts @opt.help
44
- return
45
- end
46
47
  device = get_device(argv)
47
48
  unless device
48
49
  error "デバイス名を指定して下さい"
@@ -52,6 +53,15 @@ module Command
52
53
  error "#{device.name}が接続されていません"
53
54
  exit 1
54
55
  end
56
+ send_all = false
57
+ titles = {}
58
+ if argv.empty?
59
+ send_all = true
60
+ Database.instance.each do |id, data|
61
+ argv << id
62
+ titles[id] = data["title"]
63
+ end
64
+ end
55
65
  argv.each do |target|
56
66
  ebook_path = Narou.get_ebook_file_path(target, device.ebook_file_ext)
57
67
  unless ebook_path
@@ -59,9 +69,16 @@ module Command
59
69
  next
60
70
  end
61
71
  unless File.exists?(ebook_path)
62
- error "まだファイル(#{File.basename(ebook_path)})が無いようです"
72
+ error "まだファイル(#{File.basename(ebook_path)})が無いようです" unless send_all
63
73
  next
64
74
  end
75
+ if send_all
76
+ if device.ebook_file_old?(ebook_path)
77
+ puts "<green>ID:#{target} #{titles[target]}</green>".termcolor
78
+ else
79
+ next
80
+ end
81
+ end
65
82
  print "#{device.name}へ送信しています"
66
83
  exit_copy = false
67
84
  copy_to_path = nil
@@ -73,8 +90,8 @@ module Command
73
90
  print "."
74
91
  sleep(0.5)
75
92
  end
76
- puts
77
93
  if copy_to_path
94
+ puts
78
95
  puts copy_to_path + " へコピーしました"
79
96
  else
80
97
  error "#{device.name}が見つからなかったためコピー出来ませんでした"
@@ -240,6 +240,7 @@ module Command
240
240
  "convert.inspect" => [:boolean, "常に変換時に調査結果を表示するか"],
241
241
  "download.interval" => [:float, "各話DL時に指定した秒数待機する。デフォルト0"],
242
242
  "device" => [:string, "変換、送信対象の端末(sendの--help参照)"],
243
+
243
244
  },
244
245
  global: {
245
246
  "aozoraepub3dir" => [:directory, "AozoraEpub3のあるフォルダを指定", INVISIBLE],
@@ -256,5 +257,10 @@ module Command
256
257
  TYPE_OF_VALUE[default[:value].class], "", INVISIBLE
257
258
  ]
258
259
  end
260
+
261
+ Dir.glob(File.expand_path(File.join(File.dirname(__FILE__), "*.rb"))) do |path|
262
+ cmd_name = File.basename(path, ".rb")
263
+ SETTING_VARIABLES[:local]["default_args." + cmd_name] = [:string, "", INVISIBLE]
264
+ end
259
265
  end
260
266
  end
@@ -37,7 +37,7 @@ module Command
37
37
  update_target_list = argv.dup
38
38
  no_open = false
39
39
  if update_target_list.empty?
40
- Database.instance.each do |id, _|
40
+ Database.instance.each_key do |id|
41
41
  update_target_list << id
42
42
  end
43
43
  no_open = true
@@ -6,6 +6,7 @@
6
6
  require_relative "narou"
7
7
  require_relative "command"
8
8
  require_relative "helper"
9
+ require_relative "localsetting"
9
10
 
10
11
  module CommandLine
11
12
  def self.run(argv)
@@ -29,6 +30,12 @@ module CommandLine
29
30
  puts
30
31
  arg = "help"
31
32
  end
32
- Command.get_list[arg].execute(argv)
33
+ default_arguments = load_default_arguments(arg)
34
+ Command.get_list[arg].execute(argv + default_arguments)
35
+ end
36
+
37
+ def self.load_default_arguments(cmd)
38
+ default_arguments_list = LocalSetting.get["local_setting"]
39
+ (default_arguments_list["default_args.#{cmd}"] || "").split
33
40
  end
34
41
  end
@@ -41,6 +41,7 @@ class ConverterBase
41
41
  @english_sentences = []
42
42
  @url_list = []
43
43
  @illust_chuki_list = []
44
+ @kanji_num_list = {}
44
45
  @in_author_comment_block = nil
45
46
  end
46
47
 
@@ -81,8 +82,10 @@ class ConverterBase
81
82
  # アラビア数字を漢数字に
82
83
  #
83
84
  # カンマ区切りの数字はアラビア数字のままにしておく
85
+ # もともと漢数字なのは他の変換を受けないように退避させておく
84
86
  #
85
87
  def num_to_kanji(data)
88
+ stash_kanji_num(data)
86
89
  data.gsub!(/[\d0-9,,]+/) do |match|
87
90
  if match =~ /[,,]/
88
91
  match
@@ -93,6 +96,22 @@ class ConverterBase
93
96
  data
94
97
  end
95
98
 
99
+ def stash_kanji_num(data)
100
+ data.gsub!(/[#{KANJI_NUM}十百千万億兆京]+/).with_index do |match, i|
101
+ if "#{$`[-1]}#{$'[0]}" =~ /[\d0-9]/
102
+ next match
103
+ end
104
+ @kanji_num_list[convert_numbers(i.to_s)] = match
105
+ "[#漢数字=#{i}]"
106
+ end
107
+ end
108
+
109
+ def rebuild_kanji_num(data)
110
+ data.gsub!(/[#漢数字=(.+?)]/) do
111
+ @kanji_num_list[$1]
112
+ end
113
+ end
114
+
96
115
  #
97
116
  # 全角アラビア数字を漢数字に
98
117
  #
@@ -105,6 +124,25 @@ class ConverterBase
105
124
  KANJI_NUM_UNITS_DIGIT = {
106
125
  "十" => 1, "百" => 2, "千" => 3, "万" => 4, "億" => 8, "兆" => 12, "京" => 16
107
126
  }
127
+
128
+ def __calc_kanji_num_with_unit(string)
129
+ total = 0
130
+ string.scan(/([#{KANJI_NUM}]*)([十百千]*)/) do |num, units|
131
+ break if num + units == ""
132
+ num = "1" if num.empty?
133
+ total += (num.tr(KANJI_NUM, "0-9") + units.each_char.map { |c| "0" * KANJI_NUM_UNITS_DIGIT[c] }.join).to_i
134
+ end
135
+ total
136
+ end
137
+
138
+ def kanji_num_to_integer(string)
139
+ total = 0
140
+ string.scan(/([#{KANJI_NUM}十百千]+)([万億兆京]*)/) do |num, units|
141
+ total += (__calc_kanji_num_with_unit(num).to_s + units.each_char.map { |c| "0" * KANJI_NUM_UNITS_DIGIT[c] }.join).to_i
142
+ end
143
+ total
144
+ end
145
+
108
146
  #
109
147
  # 漢数字を単位を使った表現に変換
110
148
  #
@@ -114,16 +152,13 @@ class ConverterBase
114
152
  def convert_kanji_num_with_unit(data, lower_digit_zero = 0)
115
153
  #data.gsub!(/([#{KANJI_NUM}]+)([十百千万億兆京]?)/) do |match|
116
154
  data.gsub!(/([#{KANJI_NUM}十百千万億兆京]+)/) do |match|
117
- total = 0
118
- $1.scan(/([#{KANJI_NUM}]+)([十百千万億兆京]*)/) do |num, units|
119
- total += (num.tr(KANJI_NUM, "0-9") + units.each_char.map { |c| "0" * KANJI_NUM_UNITS_DIGIT[c] }.join).to_i
120
- end
155
+ total = kanji_num_to_integer($1)
121
156
  m1 = total.to_s.tr("0-9", KANJI_NUM)
122
157
  if m1 =~ /〇{#{lower_digit_zero},}$/
123
158
  digits = m1.reverse.scan(/.{1,4}/).map(&:reverse).reverse # 下の桁から4桁ずつ区切った配列を作成
124
159
  keta = digits.count - 1
125
160
  digits.map.with_index { |nums, keta_i|
126
- nums.scan(/./).map.with_index { |d, di|
161
+ four_digit_num = nums.scan(/./).map.with_index { |d, di|
127
162
  next "" if d == "〇"
128
163
  kurai = KANJI_KURAI[nums.length - di - 1]
129
164
  if d == "一"
@@ -134,7 +169,12 @@ class ConverterBase
134
169
  end
135
170
  end
136
171
  d + kurai
137
- }.join + KANJI_NUM_UNITS[keta - keta_i]
172
+ }.join
173
+ if four_digit_num.length > 0
174
+ four_digit_num + KANJI_NUM_UNITS[keta - keta_i]
175
+ else
176
+ ""
177
+ end
138
178
  }.join
139
179
  else
140
180
  match
@@ -246,8 +286,8 @@ class ConverterBase
246
286
  #
247
287
  def symbols_to_zenkaku(data)
248
288
  data.tr!("“”‘’〝〟", %!""''""!)
249
- data.gsub!(/"([^"]+)"/, "〝\\1〟")
250
- data.gsub!(/'([^']+)'/, "〝\\1〟") # MEMO: シングルミュート(ノノカギ)を表示出来るフォントはほとんど無い
289
+ data.gsub!(/"([^"\n]+)"/, "〝\\1〟")
290
+ data.gsub!(/'([^'\n]+)'/, "〝\\1〟") # MEMO: シングルミュート(ノノカギ)を表示出来るフォントはほとんど無い
251
291
  data.gsub!("≪", "※[#始め二重山括弧]")
252
292
  data.gsub!("≫", "※[#終わり二重山括弧]")
253
293
  data.tr!("-=+/*《》'\"%$#&!?、<><>()|‐,._;:",
@@ -309,11 +349,13 @@ class ConverterBase
309
349
  #
310
350
  def convert_dakuten_char_to_font(data)
311
351
  data.gsub!(/(.)[゛゙]/) do
312
- @use_dakuten_font = true
313
- "[#濁点]#{$1}[#濁点終わり]"
352
+ if $1 =~ /[ぁ-んァ-ヶι]/
353
+ @use_dakuten_font = true
354
+ "[#濁点]#{$1}[#濁点終わり]"
355
+ else
356
+ tcy($1 + "゛")
357
+ end
314
358
  end
315
- #data.gsub!(/(.)[゛゙]/, "\\1゙[#「\\1゙」は縦中横]")
316
- #data.gsub!(/(.)[゜゚]/, "\\1゚[#「\\1゚」は縦中横]")
317
359
  end
318
360
 
319
361
  #
@@ -667,7 +709,7 @@ class ConverterBase
667
709
  end
668
710
  # ()なルビの対処
669
711
  if @text_type != "subtitle"
670
- data.gsub!(/(.+?)(([ぁ-んァ-ヴーゞ・A-Za-zA-Za-z ]{,20}))/) do |match|
712
+ data.gsub!(/(.+?)(([ぁ-んァ-ヶーゝゞ・A-Za-zA-Za-z ]{,20}))/) do |match|
671
713
  to_ruby(match, $1, $2, ["(", ")"])
672
714
  end
673
715
  end
@@ -942,7 +984,8 @@ class ConverterBase
942
984
  rebuild_illust(data)
943
985
  rebuild_url(data)
944
986
  rebuild_english_sentences(data)
945
- # rebuild_english_sentences で再構築された英文にルビがふられる可能性を考慮して、
987
+ rebuild_kanji_num(data)
988
+ # 再構築された文章にルビがふられる可能性を考慮して、
946
989
  # この位置でルビの処理を行う
947
990
  narou_ruby(data) if @setting.enable_ruby
948
991
  # 三点リーダーの変換は、ルビで圏点として・・・を使っている場合を考慮して、ルビ処理後にする
@@ -35,6 +35,14 @@ class Database
35
35
  end
36
36
  end
37
37
 
38
+ def each_key(&block)
39
+ if block
40
+ @database.each_key(&block)
41
+ else
42
+ @database.each_key
43
+ end
44
+ end
45
+
38
46
  def delete(key)
39
47
  @database.delete(key)
40
48
  end
@@ -59,6 +59,17 @@ class Device
59
59
  nil
60
60
  end
61
61
 
62
+ def ebook_file_old?(src_file)
63
+ documents_path = get_documents_path
64
+ if documents_path
65
+ dst_path = File.join(documents_path, File.basename(src_file))
66
+ if File.exists?(dst_path)
67
+ return File.mtime(src_file) > File.mtime(dst_path)
68
+ end
69
+ end
70
+ true
71
+ end
72
+
62
73
  def copy_to_documents(src_file)
63
74
  documents_path = get_documents_path
64
75
  if documents_path
@@ -68,23 +79,19 @@ class Device
68
79
  cmd = "copy /B " + %!"#{src_file}" "#{dst_path}"!.gsub("/", "\\").encode(Encoding::Windows_31J)
69
80
  capture = `#{cmd}`
70
81
  if $?.exitstatus > 0
71
- puts
72
- error capture.force_encoding(Encoding::Windows_31J).rstrip
73
- exit 1
82
+ raise capture.force_encoding(Encoding::Windows_31J).rstrip
74
83
  end
75
84
  else
76
- begin
77
- FileUtils.cp(src_file, dst_path)
78
- rescue => e
79
- puts
80
- error e.message
81
- exit 1
82
- end
85
+ FileUtils.cp(src_file, dst_path)
83
86
  end
84
87
  dst_path
85
88
  else
86
89
  nil
87
90
  end
91
+ rescue Exception => e
92
+ puts
93
+ error $@.shift + ": #{e.message} (#{e.class})"
94
+ exit 1
88
95
  end
89
96
 
90
97
  private
@@ -47,9 +47,9 @@ rescue LoadError
47
47
  begin
48
48
  dlload "kernel32"
49
49
  extern "long GetLogicalDriveStrings(long, void*)"
50
- extern "long SetConsoleTextAttribute(long, long)"
51
- extern "long GetConsoleScreenBufferInfo(long, void*)"
52
- extern "long GetStdHandle(long)"
50
+ extern "unsigned long SetConsoleTextAttribute(unsigned long, unsigned long)"
51
+ extern "unsigned long GetConsoleScreenBufferInfo(unsigned long, void*)"
52
+ extern "unsigned long GetStdHandle(unsigned long)"
53
53
  extern "long GetLastError()"
54
54
  rescue DL::DLError
55
55
  raise InvalidOS, "not Windows"
@@ -19,7 +19,7 @@ class Inspector
19
19
 
20
20
  KLASS_TAG = { ERROR => "エラー", WARNING => "警告", INFO => "INFO" }
21
21
 
22
- IGNORE_INDENT_CHAR = " (([「『〈《≪【〔―・※"
22
+ IGNORE_INDENT_CHAR = " ((「『〈《≪【〔―・※"
23
23
  AUTO_INDENT_THRESHOLD_RATIO = 0.6 # 全行のうちこの割合以上字下げされてなければ強制字下げする
24
24
 
25
25
  attr_writer :messages, :subtitle
@@ -3,7 +3,7 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- Version = "1.2.0"
6
+ Version = "1.2.1"
7
7
 
8
8
  cv_path = File.expand_path(File.join(File.dirname(__FILE__), "../commitversion"))
9
9
  if File.exists?(cv_path)
data/narou.rb CHANGED
@@ -6,23 +6,23 @@
6
6
  # Copyright 2013 whiteleaf. All rights reserved.
7
7
  #
8
8
 
9
- begin
10
- $debug = File.exists?(File.join(File.expand_path(File.dirname($0)), "debug"))
11
- Encoding.default_external = Encoding::UTF_8
9
+ $debug = File.exists?(File.join(File.expand_path(File.dirname($0)), "debug"))
10
+ Encoding.default_external = Encoding::UTF_8
12
11
 
13
- require_relative "lib/globalsetting"
12
+ require_relative "lib/globalsetting"
14
13
 
15
- display_backtrace = ARGV.delete("--backtrace")
16
- display_backtrace ||= $debug
17
- $disable_color = ARGV.delete("--no-color")
18
- $disable_color ||= GlobalSetting.get["global_setting"]["no-color"]
14
+ display_backtrace = ARGV.delete("--backtrace")
15
+ display_backtrace ||= $debug
16
+ $disable_color = ARGV.delete("--no-color")
17
+ $disable_color ||= GlobalSetting.get["global_setting"]["no-color"]
19
18
 
20
- require_relative "lib/logger"
21
- require_relative "lib/version"
22
- require_relative "lib/commandline"
19
+ require_relative "lib/logger"
20
+ require_relative "lib/version"
21
+ require_relative "lib/commandline"
23
22
 
24
- rescue_level = $debug ? Exception : StandardError
23
+ rescue_level = $debug ? Exception : StandardError
25
24
 
25
+ begin
26
26
  CommandLine.run(ARGV.map { |v| v.dup })
27
27
  rescue rescue_level => e
28
28
  warn $@.shift + ": #{e.message} (#{e.class})"
Binary file
metadata CHANGED
@@ -1,30 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: narou
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
5
- prerelease:
4
+ version: 1.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - whiteleaf7
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-03-18 00:00:00.000000000 Z
11
+ date: 2013-03-22 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: termcolor
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 1.2.2
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 1.2.2
30
27
  description: 小説家になろうで公開されている小説の管理、及び電子書籍データへの変換を支援します。縦書用に特化されており、横書き用に特化されたWEB小説を違和感なく縦書で読むことが出来るようになります。
@@ -54,9 +51,7 @@ files:
54
51
  - lib/command/help.rb
55
52
  - lib/command/init.rb
56
53
  - lib/command/inspect.rb
57
- - lib/command/interactive.rb
58
54
  - lib/command/list.rb
59
- - lib/command/new.rb
60
55
  - lib/command/remove.rb
61
56
  - lib/command/send.rb
62
57
  - lib/command/setting.rb
@@ -119,29 +114,36 @@ files:
119
114
  - commitversion
120
115
  homepage: http://whiteleaf.hatenablog.com/
121
116
  licenses: []
122
- post_install_message: ! "*******************************************************************************\n\nnarou
123
- コマンドのインストール or アップデートが完了しました。\n詳しい説明は `narou help' コマンドをご覧下さい。\n\n NOTICE\n 初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。\n
124
- \ 任意のフォルダで `narou init' を実行して下さい。\n\n*******************************************************************************\n"
117
+ metadata: {}
118
+ post_install_message: |
119
+ *******************************************************************************
120
+
121
+ narou コマンドのインストール or アップデートが完了しました。
122
+ 詳しい説明は `narou help' コマンドをご覧下さい。
123
+
124
+ NOTICE
125
+ 初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。
126
+ 任意のフォルダで `narou init' を実行して下さい。
127
+
128
+ *******************************************************************************
125
129
  rdoc_options: []
126
130
  require_paths:
127
131
  - lib
128
132
  required_ruby_version: !ruby/object:Gem::Requirement
129
- none: false
130
133
  requirements:
131
- - - ! '>='
134
+ - - '>='
132
135
  - !ruby/object:Gem::Version
133
136
  version: 1.9.3
134
137
  required_rubygems_version: !ruby/object:Gem::Requirement
135
- none: false
136
138
  requirements:
137
- - - ! '>='
139
+ - - '>='
138
140
  - !ruby/object:Gem::Version
139
141
  version: '0'
140
142
  requirements: []
141
143
  rubyforge_project:
142
- rubygems_version: 1.8.24
144
+ rubygems_version: 2.0.0
143
145
  signing_key:
144
- specification_version: 3
146
+ specification_version: 4
145
147
  summary: Narou.rb ― 小説家になろうダウンローダ&縦書用整形スクリプト
146
148
  test_files:
147
149
  - test/data/test.ini
@@ -1,16 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright 2013 whiteleaf. All rights reserved.
4
- #
5
-
6
- module Command
7
- class Interactive < CommandBase
8
- def execute(argv)
9
- super
10
- end
11
-
12
- def oneline_help
13
- "対話モードを起動します"
14
- end
15
- end
16
- end
@@ -1,12 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright 2013 whiteleaf. All rights reserved.
4
- #
5
-
6
- module Command
7
- class New < CommandBase
8
- def oneline_help
9
- "新しく管理する小説を追加します"
10
- end
11
- end
12
- end