lib/command/flag.rb in narou-1.5.7.1 vs lib/command/flag.rb in narou-1.5.8
- old
+ new
@@ -7,11 +7,11 @@
require_relative "../downloader"
require_relative "../localsetting"
module Command
class Flag < CommandBase
- ATTRIBUTES = %w(end)
+ ATTRIBUTES = %w(end delete)
def oneline_help
"小説の各種フラグを設定します"
end
@@ -19,16 +19,27 @@
super("<attribute> <target> [<target2> ...]")
@opt.separator <<-EOS
・指定した小説に各種フラグを設定します
・再実行で解除
+ ・--on, --off オプションを付けることで強制設定可能
・現在指定可能なフラグ
- end : 小説が完結状態かどうか
+ end : 小説が完結状態
+ delete: 削除された状態
Example:
narou flag end 100 # ID:100の小説を完結状態にする
+ narou flag end --on # 現在の状態に関わらず完結状態にする
+
+ Options:
EOS
+ @opt.on("--on", "強制的にフラグを立てる") {
+ @options["on"] = true
+ }
+ @opt.on("--off", "強制的にフラグをはずす") {
+ @options["off"] = true
+ }
end
def execute(argv)
super
if argv.empty?
@@ -50,15 +61,18 @@
unless data
error "#{target} は存在しません"
next
end
flags = data["flags"] || {}
- if flags.include?(attribute)
- flags.delete(attribute)
- puts "#{data['title']} から #{attribute} フラグを削除しました"
+ flag = !flags[attribute]
+ flag = true if @options["on"]
+ flag = false if @options["off"]
+ flags[attribute] = flag
+ if flag
+ puts "#{data['title']} の #{attribute} フラグを立てました"
else
- flags[attribute] = true
- puts "#{data['title']} の #{attribute} フラグを設定しました"
+ flags.delete(attribute)
+ puts "#{data['title']} から #{attribute} フラグをはずしました"
end
database[data["id"]]["flags"] = flags
end
database.save_database
end