Class: Command::Flag
- Inherits:
-
CommandBase
- Object
- CommandBase
- Command::Flag
- Defined in:
- lib/command/flag.rb
Constant Summary collapse
- ATTRIBUTES =
%w(end delete)
Instance Method Summary collapse
- #execute(argv) ⇒ Object
-
#initialize ⇒ Flag
constructor
A new instance of Flag.
- #oneline_help ⇒ Object
Methods inherited from CommandBase
execute!, #load_local_settings
Constructor Details
#initialize ⇒ Flag
Returns a new instance of Flag.
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/command/flag.rb', line 18 def initialize super("<attribute> <target> [<target2> ...]") @opt.separator <<-EOS ・指定した小説に各種フラグを設定します ・再実行で解除 ・--on, --off オプションを付けることで強制設定可能 ・現在指定可能なフラグ 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 |
Instance Method Details
#execute(argv) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/command/flag.rb', line 43 def execute(argv) super if argv.empty? puts @opt.help return end attribute = (argv.shift || "").downcase unless ATTRIBUTES.include?(attribute) error "有効なフラグを指定して下さい\n指定可能なフラグ:#{ATTRIBUTES.join(', ')}" exit 1 end if argv.length < 1 error "対象小説を指定して下さい" exit 1 end database = Database.instance argv.each do |target| data = Downloader.get_data_by_target(target) unless data error "#{target} は存在しません" next end flags = data["flags"] || {} flag = !flags[attribute] flag = true if @options["on"] flag = false if @options["off"] flags[attribute] = flag if flag puts "#{data['title']} の #{attribute} フラグを立てました" else flags.delete(attribute) puts "#{data['title']} から #{attribute} フラグをはずしました" end database[data["id"]]["flags"] = flags end database.save_database end |
#oneline_help ⇒ Object
14 15 16 |
# File 'lib/command/flag.rb', line 14 def oneline_help "小説の各種フラグを設定します" end |