narou 3.1.10 → 3.1.11
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.
- checksums.yaml +4 -4
- data/ChangeLog.md +10 -0
- data/README.md +10 -31
- data/lib/backtracer.rb +76 -0
- data/lib/command.rb +1 -0
- data/lib/command/download.rb +1 -2
- data/lib/command/trace.rb +28 -0
- data/lib/downloader.rb +4 -44
- data/lib/novelconverter.rb +1 -12
- data/lib/sitesetting.rb +64 -3
- data/lib/version.rb +1 -1
- data/lib/web/appserver.rb +2 -2
- data/lib/web/views/bookmarklet/insert_button.js.erb +3 -3
- data/narou.gemspec +10 -0
- data/narou.rb +6 -19
- metadata +14 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2ed0bc835e65c8fa3742828b718929dffafa3889
|
4
|
+
data.tar.gz: 23f4dea8c8760736965aa2215a318a6da0e5d013
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 955798f4decda316da8de616815d6d94729a33781d817f04b52ce84fd51342b2c889aaec2e3090c0bc1bc0b56b869ee7f7da91872e3066c66a69c184d95f6e76
|
7
|
+
data.tar.gz: 41f897947418f62c3d36984bd7d266edd84761feda9af1d3ca2ec3751b225e43b243f7fd7b56a6b8b4303d0bec2a3ec212f03689addaf708553f6041581352cd
|
data/ChangeLog.md
CHANGED
@@ -2,6 +2,16 @@
|
|
2
2
|
更新履歴 - ChangeLog
|
3
3
|
====================
|
4
4
|
|
5
|
+
3.1.11: 2017/11/21
|
6
|
+
------------------
|
7
|
+
#### 追加機能
|
8
|
+
- trace コマンドを追加しました。エラー発生時の詳細ログを表示できます
|
9
|
+
|
10
|
+
#### 修正内容
|
11
|
+
- ダイジェストを検知した場合の選択肢で、選んだ順番によってクラッシュする場合が
|
12
|
+
ある不具合
|
13
|
+
|
14
|
+
|
5
15
|
3.1.10: 2017/11/20
|
6
16
|
------------------
|
7
17
|
#### 仕様変更
|
data/README.md
CHANGED
@@ -33,6 +33,16 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
|
|
33
33
|
更新履歴 - ChangeLog
|
34
34
|
--------------------
|
35
35
|
|
36
|
+
3.1.11: 2017/11/21
|
37
|
+
------------------
|
38
|
+
#### 追加機能
|
39
|
+
- trace コマンドを追加しました。エラー発生時の詳細ログを表示できます
|
40
|
+
|
41
|
+
#### 修正内容
|
42
|
+
- ダイジェストを検知した場合の選択肢で、選んだ順番によってクラッシュする場合が
|
43
|
+
ある不具合
|
44
|
+
|
45
|
+
|
36
46
|
3.1.10: 2017/11/20
|
37
47
|
------------------
|
38
48
|
#### 仕様変更
|
@@ -48,37 +58,6 @@ Narou.rb ― 「小説家になろう」「小説を読もう!」ダウンロ
|
|
48
58
|
+ 最近のブラウザじゃないとたぶん動きません
|
49
59
|
- Arcadiaでカテゴリがない古い小説をダウンロード出来ない場合がある
|
50
60
|
|
51
|
-
|
52
|
-
3.1.9: 2017/10/19
|
53
|
-
------------------
|
54
|
-
#### 修正内容
|
55
|
-
- Ruby 2.4 を使っている場合に mail コマンドを使うと警告メッセージが出ていた
|
56
|
-
- cleanコマンドでエラーが出る場合があった
|
57
|
-
- ハーメルンの仕様変更で小説が正しく取得出来なくなる場合があった
|
58
|
-
|
59
|
-
|
60
|
-
3.1.8: 2017/09/30
|
61
|
-
------------------
|
62
|
-
#### 仕様変更
|
63
|
-
- 3.1.7 でデフォルト設定をオフにした「かぎ括弧内自動連結」ですが、一旦またオン
|
64
|
-
に戻しました。二転三転して申し訳ありません
|
65
|
-
- コンソール上でのカラー表示時の処理方法を変更しました(Windowsのみ)
|
66
|
-
+ narou setting の color-parser を変更することで今までの処理方法に戻せます
|
67
|
-
+ `narou s color-parser=self` 今までの処理方法(独力でカラー処理)
|
68
|
-
+ `narou s color-parser=system` システムにカラー表示を任せる(デフォルト)
|
69
|
-
+ 稀に表示時にエラーになってしまう現象への対策です
|
70
|
-
|
71
|
-
|
72
|
-
3.1.7: 2017/09/28
|
73
|
-
------------------
|
74
|
-
#### 仕様変更
|
75
|
-
- かぎ括弧内自動連結のデフォルト設定をオフに変更しました。
|
76
|
-
今までと同じように標準で連結したい場合は default.enable_auto_join_in_brackets
|
77
|
-
を有効にして下さい
|
78
|
-
|
79
|
-
#### 修正内容
|
80
|
-
- 小説家になろうのSSL化に対応
|
81
|
-
|
82
61
|
----
|
83
62
|
|
84
63
|
「小説家になろう」は株式会社ヒナプロジェクトの登録商標です
|
data/lib/backtracer.rb
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Copyright 2013 whiteleaf. All rights reserved.
|
5
|
+
#
|
6
|
+
|
7
|
+
module Narou
|
8
|
+
module Backtracer
|
9
|
+
module_function
|
10
|
+
|
11
|
+
LOG_NAME = "trace_dump.txt"
|
12
|
+
|
13
|
+
def capture(&block)
|
14
|
+
raise "need a block" unless block
|
15
|
+
rescue_level = $debug ? Exception : StandardError
|
16
|
+
yield
|
17
|
+
rescue SystemExit => e
|
18
|
+
exit e.status
|
19
|
+
rescue SyntaxError => e
|
20
|
+
warn e
|
21
|
+
exit Narou::EXIT_ERROR_CODE
|
22
|
+
rescue rescue_level => e
|
23
|
+
traces = build_traces(e)
|
24
|
+
if $display_backtrace
|
25
|
+
warn traces
|
26
|
+
else
|
27
|
+
warn traces.lines[0..2]
|
28
|
+
warn ""
|
29
|
+
warn " エラーが発生したため終了しました。"
|
30
|
+
warn " 詳細なエラーログは narou trace で表示出来ます。もしくは --backtrace オプションを付けて再度実行して下さい。"
|
31
|
+
end
|
32
|
+
save_log(traces)
|
33
|
+
exit Narou::EXIT_ERROR_CODE
|
34
|
+
end
|
35
|
+
|
36
|
+
def argv=(argv)
|
37
|
+
@argv = argv.map(&:dup)
|
38
|
+
end
|
39
|
+
|
40
|
+
def argv
|
41
|
+
@argv || ARGV
|
42
|
+
end
|
43
|
+
|
44
|
+
def log_path
|
45
|
+
if Narou.get_root_dir
|
46
|
+
File.join(Narou.get_root_dir, LOG_NAME)
|
47
|
+
else
|
48
|
+
LOG_NAME
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def build_traces(exception)
|
53
|
+
backtrace = exception.backtrace
|
54
|
+
head = "#{backtrace.shift}: #{exception.message.encode(Encoding::UTF_8)} (#{exception.class})"
|
55
|
+
buffer = StringIO.new
|
56
|
+
buffer.puts head
|
57
|
+
backtrace.each do |b|
|
58
|
+
buffer.puts " from #{b}"
|
59
|
+
end
|
60
|
+
buffer.string
|
61
|
+
end
|
62
|
+
|
63
|
+
def build_command
|
64
|
+
"#{$0} #{argv.join(' ')}"
|
65
|
+
end
|
66
|
+
|
67
|
+
def save_log(traces)
|
68
|
+
File.open(log_path, "w:UTF-8") do |fp|
|
69
|
+
fp.puts "--- #{Time.now.strftime("%Y/%m/%d %H:%M:%S")} ---"
|
70
|
+
fp.puts build_command
|
71
|
+
fp.puts
|
72
|
+
fp.puts traces
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
data/lib/command.rb
CHANGED
data/lib/command/download.rb
CHANGED
@@ -48,12 +48,11 @@ module Command
|
|
48
48
|
end
|
49
49
|
|
50
50
|
def valid_target?(target)
|
51
|
-
@site_settings ||= Downloader.load_settings
|
52
51
|
case Downloader.get_target_type(target)
|
53
52
|
when :ncode
|
54
53
|
true
|
55
54
|
when :url
|
56
|
-
|
55
|
+
!!SiteSetting.find(target)
|
57
56
|
else
|
58
57
|
false
|
59
58
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
#
|
4
|
+
# Copyright 2013 whiteleaf. All rights reserved.
|
5
|
+
#
|
6
|
+
|
7
|
+
module Command
|
8
|
+
class Trace < CommandBase
|
9
|
+
def self.oneline_help
|
10
|
+
"エラーログを表示します"
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
super(" ")
|
15
|
+
@opt.separator <<-MSG
|
16
|
+
|
17
|
+
・エラーが発生した際に保存されたバックトレースログを表示します。
|
18
|
+
・ログテキスト自体は #{Narou::Backtracer.log_path} に保存されています。
|
19
|
+
MSG
|
20
|
+
end
|
21
|
+
|
22
|
+
def execute(argv)
|
23
|
+
super
|
24
|
+
return unless File.exist?(Narou::Backtracer.log_path)
|
25
|
+
puts File.read(Narou::Backtracer.log_path)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/downloader.rb
CHANGED
@@ -22,7 +22,6 @@ require_relative "input"
|
|
22
22
|
class Downloader
|
23
23
|
include Narou::Eventable
|
24
24
|
|
25
|
-
NOVEL_SITE_SETTING_DIR = "webnovel/"
|
26
25
|
SECTION_SAVE_DIR_NAME = "本文" # 本文を保存するディレクトリ名
|
27
26
|
CACHE_SAVE_DIR_NAME = "cache" # 差分用キャッシュ保存用ディレクトリ名
|
28
27
|
RAW_DATA_DIR_NAME = "raw" # 本文の生データを保存するディレクトリ名
|
@@ -68,7 +67,7 @@ class Downloader
|
|
68
67
|
toc_url = get_toc_url(target)
|
69
68
|
setting = nil
|
70
69
|
if toc_url
|
71
|
-
setting =
|
70
|
+
setting = SiteSetting.find(toc_url)
|
72
71
|
end
|
73
72
|
setting
|
74
73
|
end
|
@@ -135,7 +134,7 @@ class Downloader
|
|
135
134
|
target = Narou.alias_to_id(target)
|
136
135
|
case get_target_type(target)
|
137
136
|
when :url
|
138
|
-
setting =
|
137
|
+
setting = SiteSetting.find(target)
|
139
138
|
if setting
|
140
139
|
toc_url = setting["toc_url"]
|
141
140
|
return @@database.get_data_by_toc_url(toc_url, setting)
|
@@ -170,7 +169,7 @@ class Downloader
|
|
170
169
|
target = Narou.alias_to_id(target)
|
171
170
|
case get_target_type(target)
|
172
171
|
when :url
|
173
|
-
setting =
|
172
|
+
setting = SiteSetting.find(target)
|
174
173
|
return setting["toc_url"] if setting
|
175
174
|
when :ncode
|
176
175
|
@@database.each_value do |data|
|
@@ -178,7 +177,7 @@ class Downloader
|
|
178
177
|
return data["toc_url"]
|
179
178
|
end
|
180
179
|
end
|
181
|
-
return "#{
|
180
|
+
return "#{SiteSetting.narou["top_url"]}/#{target}/"
|
182
181
|
when :id
|
183
182
|
data = @@database[target.to_i]
|
184
183
|
return data["toc_url"] if data
|
@@ -209,44 +208,6 @@ class Downloader
|
|
209
208
|
data["title"]
|
210
209
|
end
|
211
210
|
|
212
|
-
def self.get_sitesetting_by_sitename(sitename)
|
213
|
-
setting = @@settings.find { |s| s["name"] == sitename }
|
214
|
-
return setting if setting
|
215
|
-
error "#{sitename} の設定ファイルが見つかりません"
|
216
|
-
exit Narou::EXIT_ERROR_CODE
|
217
|
-
end
|
218
|
-
|
219
|
-
#
|
220
|
-
# 小説サイトの定義ファイルを全部読み込む
|
221
|
-
#
|
222
|
-
# スクリプト同梱の設定ファイルを読み込んだあと、ユーザの小説の管理ディレクトリ内にある
|
223
|
-
# webnovel ディレクトリからも定義ファイルを読み込む
|
224
|
-
#
|
225
|
-
def self.load_settings
|
226
|
-
settings = @@__settings_cache ||= []
|
227
|
-
return settings unless settings.empty?
|
228
|
-
load_paths = [
|
229
|
-
File.join(Narou.get_script_dir, NOVEL_SITE_SETTING_DIR, "*.yaml"),
|
230
|
-
File.join(Narou.get_root_dir, NOVEL_SITE_SETTING_DIR, "*.yaml")
|
231
|
-
].uniq.join("\0")
|
232
|
-
Dir.glob(load_paths) do |path|
|
233
|
-
setting = SiteSetting.load_file(path)
|
234
|
-
if setting["name"] == "小説家になろう"
|
235
|
-
@@narou = setting
|
236
|
-
end
|
237
|
-
settings << setting
|
238
|
-
end
|
239
|
-
if settings.empty?
|
240
|
-
error "小説サイトの定義ファイルがひとつもありません"
|
241
|
-
exit Narou::EXIT_ERROR_CODE
|
242
|
-
end
|
243
|
-
unless @@narou
|
244
|
-
error "小説家になろうの定義ファイルが見つかりませんでした"
|
245
|
-
exit Narou::EXIT_ERROR_CODE
|
246
|
-
end
|
247
|
-
settings
|
248
|
-
end
|
249
|
-
|
250
211
|
#
|
251
212
|
# 差分用キャッシュの保存ディレクトリ取得
|
252
213
|
#
|
@@ -278,7 +239,6 @@ class Downloader
|
|
278
239
|
end
|
279
240
|
|
280
241
|
if Narou.already_init?
|
281
|
-
@@settings = load_settings
|
282
242
|
@@database = Database.instance
|
283
243
|
end
|
284
244
|
|
data/lib/novelconverter.rb
CHANGED
@@ -25,10 +25,6 @@ class NovelConverter
|
|
25
25
|
|
26
26
|
attr_reader :use_dakuten_font
|
27
27
|
|
28
|
-
if Narou.already_init?
|
29
|
-
@@site_settings = Downloader.load_settings
|
30
|
-
end
|
31
|
-
|
32
28
|
#
|
33
29
|
# 指定の小説を整形・変換する
|
34
30
|
#
|
@@ -537,13 +533,6 @@ class NovelConverter
|
|
537
533
|
end
|
538
534
|
end
|
539
535
|
|
540
|
-
#
|
541
|
-
# 目次情報からサイト設定を取得
|
542
|
-
#
|
543
|
-
def find_site_setting(toc_url)
|
544
|
-
@@site_settings.find { |s| s.multi_match_once(toc_url, "url") }
|
545
|
-
end
|
546
|
-
|
547
536
|
#
|
548
537
|
# 各小説用の converter.rb 変換オブジェクトを生成
|
549
538
|
#
|
@@ -611,7 +600,7 @@ class NovelConverter
|
|
611
600
|
toc["story"] = @converter.convert(toc["story"], "story")
|
612
601
|
html = HTML.new
|
613
602
|
html.strip_decoration_tag = @setting.enable_strip_decoration_tag
|
614
|
-
site_setting =
|
603
|
+
site_setting = SiteSetting.find(toc["toc_url"])
|
615
604
|
html.set_illust_setting({current_url: site_setting["illust_current_url"],
|
616
605
|
grep_pattern: site_setting["illust_grep_pattern"]})
|
617
606
|
|
data/lib/sitesetting.rb
CHANGED
@@ -7,8 +7,65 @@ require "yaml"
|
|
7
7
|
require_relative "narou/api"
|
8
8
|
|
9
9
|
class SiteSetting
|
10
|
-
|
11
|
-
|
10
|
+
NOVEL_SITE_SETTING_DIR = "webnovel/"
|
11
|
+
|
12
|
+
class << self
|
13
|
+
#
|
14
|
+
# 小説サイトの定義ファイルを全部読み込む
|
15
|
+
#
|
16
|
+
# スクリプト同梱の設定ファイルを読み込んだあと、ユーザの小説の管理ディレクトリ内にある
|
17
|
+
# webnovel ディレクトリからも定義ファイルを読み込む
|
18
|
+
#
|
19
|
+
def load_settings
|
20
|
+
result = []
|
21
|
+
load_paths = [
|
22
|
+
File.join(Narou.get_script_dir, NOVEL_SITE_SETTING_DIR, "*.yaml"),
|
23
|
+
File.join(Narou.get_root_dir, NOVEL_SITE_SETTING_DIR, "*.yaml")
|
24
|
+
].uniq.join("\0")
|
25
|
+
Dir.glob(load_paths) do |path|
|
26
|
+
setting = SiteSetting.load_file(path)
|
27
|
+
if setting["name"] == "小説家になろう"
|
28
|
+
@narou = setting
|
29
|
+
end
|
30
|
+
result << setting
|
31
|
+
end
|
32
|
+
if result.empty?
|
33
|
+
error "小説サイトの定義ファイルがひとつもありません"
|
34
|
+
exit Narou::EXIT_ERROR_CODE
|
35
|
+
end
|
36
|
+
unless @narou
|
37
|
+
error "小説家になろうの定義ファイルが見つかりませんでした"
|
38
|
+
exit Narou::EXIT_ERROR_CODE
|
39
|
+
end
|
40
|
+
# TODO: 配列の並び順で先頭をなろうにしておく。find するときになろうがすぐ引っかかるので効率的
|
41
|
+
# 設定ファイルに priority を追加して、それでソートする
|
42
|
+
result
|
43
|
+
end
|
44
|
+
|
45
|
+
def settings
|
46
|
+
@settings ||= load_settings
|
47
|
+
end
|
48
|
+
|
49
|
+
def narou
|
50
|
+
settings unless @narou
|
51
|
+
@narou.clone
|
52
|
+
end
|
53
|
+
|
54
|
+
def find(toc_url)
|
55
|
+
result = nil
|
56
|
+
settings.each do |s|
|
57
|
+
setting = s.clone
|
58
|
+
if setting.multi_match(toc_url, "url")
|
59
|
+
result = setting
|
60
|
+
break
|
61
|
+
end
|
62
|
+
end
|
63
|
+
result
|
64
|
+
end
|
65
|
+
|
66
|
+
def load_file(path)
|
67
|
+
new(path)
|
68
|
+
end
|
12
69
|
end
|
13
70
|
|
14
71
|
def [](key)
|
@@ -25,7 +82,11 @@ class SiteSetting
|
|
25
82
|
|
26
83
|
def initialize(path)
|
27
84
|
@match_values = {}
|
28
|
-
@yaml_setting = YAML.load_file(path)
|
85
|
+
@yaml_setting = YAML.load_file(path).freeze
|
86
|
+
end
|
87
|
+
|
88
|
+
def initialize_copy(_obj)
|
89
|
+
@match_values = {}
|
29
90
|
end
|
30
91
|
|
31
92
|
def matched?(key)
|
data/lib/version.rb
CHANGED
data/lib/web/appserver.rb
CHANGED
@@ -898,7 +898,7 @@ class Narou::AppServer < Sinatra::Base
|
|
898
898
|
end
|
899
899
|
|
900
900
|
get "/api/validate_url_regexp_list" do
|
901
|
-
json
|
901
|
+
json SiteSetting.settings.map { |setting|
|
902
902
|
Array(setting["url"]).map do |url|
|
903
903
|
"(#{url.gsub(/\?<.+?>/, "?:").gsub("\\", "\\\\")})"
|
904
904
|
end
|
@@ -974,7 +974,7 @@ class Narou::AppServer < Sinatra::Base
|
|
974
974
|
end
|
975
975
|
|
976
976
|
ALLOW_HOSTS = [].tap do |hosts|
|
977
|
-
|
977
|
+
SiteSetting.settings.each do |s|
|
978
978
|
hosts << s["domain"]
|
979
979
|
end
|
980
980
|
hosts.freeze
|
@@ -2,8 +2,8 @@
|
|
2
2
|
var insertButtonBookmarklet = (function() {
|
3
3
|
"DLボタン設置ブックマークレット v2.0";
|
4
4
|
var site_settings = [
|
5
|
-
<%-
|
6
|
-
<% setting.
|
5
|
+
<%- SiteSetting.settings.each.with_index do |s, i| -%>
|
6
|
+
<% setting = s.clone %>
|
7
7
|
{
|
8
8
|
<%- case setting["domain"] -%>
|
9
9
|
<%- when "www.mai-net.net" -%>
|
@@ -16,7 +16,7 @@ var insertButtonBookmarklet = (function() {
|
|
16
16
|
url: [<%= Array(setting["url"]).map do |url|
|
17
17
|
%!new RegExp("^(#{url.gsub(/\?<.+?>/, "?:").gsub("\\", "\\\\\\\\")})")!
|
18
18
|
end.join(",") -%>]
|
19
|
-
}<%= i ==
|
19
|
+
}<%= i == SiteSetting.settings.length - 1 ? "" : "," %>
|
20
20
|
<%- end -%>
|
21
21
|
];
|
22
22
|
|
data/narou.gemspec
CHANGED
@@ -32,6 +32,16 @@ Gem::Specification.new do |gem|
|
|
32
32
|
install_message = <<-EOS
|
33
33
|
#{"*" * 60}
|
34
34
|
|
35
|
+
3.1.11: 2017/11/21
|
36
|
+
------------------
|
37
|
+
#### 追加機能
|
38
|
+
- trace コマンドを追加しました。エラー発生時の詳細ログを表示できます
|
39
|
+
|
40
|
+
#### 修正内容
|
41
|
+
- ダイジェストを検知した場合の選択肢で、選んだ順番によってクラッシュする場合が
|
42
|
+
ある不具合
|
43
|
+
|
44
|
+
|
35
45
|
3.1.10: 2017/11/20
|
36
46
|
------------------
|
37
47
|
#### 仕様変更
|
data/narou.rb
CHANGED
@@ -7,11 +7,13 @@
|
|
7
7
|
#
|
8
8
|
|
9
9
|
require_relative "lib/extension"
|
10
|
+
require_relative "lib/backtracer"
|
10
11
|
|
11
12
|
script_dir = File.expand_path(File.dirname(__FILE__))
|
12
13
|
$debug = File.exist?(File.join(script_dir, "debug"))
|
13
14
|
|
14
15
|
Encoding.default_external = Encoding::UTF_8
|
16
|
+
Narou::Backtracer.argv = ARGV
|
15
17
|
|
16
18
|
if ARGV.delete("--time")
|
17
19
|
now = Time.now
|
@@ -44,23 +46,8 @@ require_relative "lib/commandline"
|
|
44
46
|
|
45
47
|
rescue_level = $debug ? Exception : StandardError
|
46
48
|
|
47
|
-
|
48
|
-
CommandLine.run(ARGV.map { |v| v.dup })
|
49
|
-
rescue SystemExit => e
|
50
|
-
exit e.status
|
51
|
-
rescue SyntaxError => e
|
52
|
-
warn e
|
53
|
-
exit Narou::EXIT_ERROR_CODE
|
54
|
-
rescue rescue_level => e
|
55
|
-
warn "#{$@.shift}: #{e.message.encode(Encoding::UTF_8)} (#{e.class})"
|
56
|
-
if $display_backtrace
|
57
|
-
$@.each do |b|
|
58
|
-
warn " from #{b}"
|
59
|
-
end
|
60
|
-
else
|
61
|
-
warn " エラーが発生したため終了しました。"
|
62
|
-
warn " 詳細なエラーは --backtrace オプションを付けて再度実行して下さい。"
|
63
|
-
end
|
64
|
-
exit Narou::EXIT_ERROR_CODE
|
65
|
-
end
|
49
|
+
class HogeError < StandardError; end
|
66
50
|
|
51
|
+
Narou::Backtracer.capture do
|
52
|
+
CommandLine.run(ARGV.map(&:dup))
|
53
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: narou
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.1.
|
4
|
+
version: 3.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- whiteleaf7
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: termcolorlight
|
@@ -299,6 +299,7 @@ files:
|
|
299
299
|
- bin/narou
|
300
300
|
- circle.yml
|
301
301
|
- commitversion
|
302
|
+
- lib/backtracer.rb
|
302
303
|
- lib/color.rb
|
303
304
|
- lib/command.rb
|
304
305
|
- lib/command/alias.rb
|
@@ -321,6 +322,7 @@ files:
|
|
321
322
|
- lib/command/send.rb
|
322
323
|
- lib/command/setting.rb
|
323
324
|
- lib/command/tag.rb
|
325
|
+
- lib/command/trace.rb
|
324
326
|
- lib/command/update.rb
|
325
327
|
- lib/command/update/general_lastup_updater.rb
|
326
328
|
- lib/command/update/hotentry_manager.rb
|
@@ -499,6 +501,16 @@ metadata: {}
|
|
499
501
|
post_install_message: |
|
500
502
|
************************************************************
|
501
503
|
|
504
|
+
3.1.11: 2017/11/21
|
505
|
+
------------------
|
506
|
+
#### 追加機能
|
507
|
+
- trace コマンドを追加しました。エラー発生時の詳細ログを表示できます
|
508
|
+
|
509
|
+
#### 修正内容
|
510
|
+
- ダイジェストを検知した場合の選択肢で、選んだ順番によってクラッシュする場合が
|
511
|
+
ある不具合
|
512
|
+
|
513
|
+
|
502
514
|
3.1.10: 2017/11/20
|
503
515
|
------------------
|
504
516
|
#### 仕様変更
|