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