80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
# File 'lib/command/diff.rb', line 80
def execute(argv)
short_number_option_parse(argv)
super
@options["number"] ||= 1
if argv.empty?
latest = Database.instance.sort_by("last_update").first
return unless latest
id = latest["id"]
@novel_data = latest
else
target = argv.shift
@novel_data = Downloader.get_data_by_target(target)
id = @novel_data["id"]
end
unless id
error "#{target} は存在しません"
return
end
view_diff_version = argv.shift
if view_diff_version
if invalid_diff_version_string?(view_diff_version)
error "差分指定の書式が違います(正しい例:[email protected])"
return
end
@options["view_diff_version"] = view_diff_version
end
if @options["list"]
display_diff_list(id)
return
end
if @options["clean"]
clean_diff(id)
return
end
if @options["all-clean"]
clean_all_diff
return
end
@difftool = Inventory.load("global_setting", :global)["difftool"]
if @difftool.! || @options["no-tool"]
display_diff_on_oneself(id)
return
end
exec_difftool(id)
end
|