Class: Command::Flag
- Inherits:
-
CommandBase
- Object
- CommandBase
- Command::Flag
- Defined in:
- lib/command/flag.rb
Constant Summary collapse
- ATTRIBUTES =
%w(end delete)
Class Method Summary collapse
Instance Method Summary collapse
- #execute(argv) ⇒ Object
-
#initialize ⇒ Flag
constructor
A new instance of Flag.
Methods inherited from CommandBase
execute!, #force_change_settings_function, help, #hook_call, #load_local_settings, #tagname_to_ids
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 42 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 |
# File 'lib/command/flag.rb', line 18 def initialize super("<attribute> <target> [<target2> ...]") @opt.separator "\n <bold><red>\u975E\u63A8\u5968\u306E\u30B3\u30DE\u30F3\u30C9\u3067\u3059\u3002tag\u30B3\u30DE\u30F3\u30C9\u3092\u4F7F\u7528\u3057\u3066\u4E0B\u3055\u3044\n flag\u30B3\u30DE\u30F3\u30C9\u306Fv.1.7.0\u3067\u5EC3\u6B62\u4E88\u5B9A\u3067\u3059\n \n flag\u30C7\u30FC\u30BF\u3092tag\u30C7\u30FC\u30BF\u306B\u79FB\u884C\u3059\u308B\u306B\u306F\u3001\n narou flag --convert-tag\n \u3092\u5B9F\u884C\u3057\u3066\u4E0B\u3055\u3044</red></bold>\n\n \u30FB\u6307\u5B9A\u3057\u305F\u5C0F\u8AAC\u306B\u5404\u7A2E\u30D5\u30E9\u30B0\u3092\u8A2D\u5B9A\u3057\u307E\u3059\n \u30FB\u518D\u5B9F\u884C\u3067\u89E3\u9664\n \u30FB--on, --off \u30AA\u30D7\u30B7\u30E7\u30F3\u3092\u4ED8\u3051\u308B\u3053\u3068\u3067\u5F37\u5236\u8A2D\u5B9A\u53EF\u80FD\n \u30FB\u73FE\u5728\u6307\u5B9A\u53EF\u80FD\u306A\u30D5\u30E9\u30B0\n end : \u5C0F\u8AAC\u304C\u5B8C\u7D50\u72B6\u614B\n delete: \u524A\u9664\u3055\u308C\u305F\u72B6\u614B\n\n Examples:\nnarou flag end 100 # ID:100\u306E\u5C0F\u8AAC\u3092\u5B8C\u7D50\u72B6\u614B\u306B\u3059\u308B\nnarou flag end --on 100 # \u73FE\u5728\u306E\u72B6\u614B\u306B\u95A2\u308F\u3089\u305A\u5B8C\u7D50\u72B6\u614B\u306B\u3059\u308B\n\n Options:\n EOS\n @opt.on(\"--on\", \"\u5F37\u5236\u7684\u306B\u30D5\u30E9\u30B0\u3092\u7ACB\u3066\u308B\") {\n @options[\"on\"] = true\n }\n @opt.on(\"--off\", \"\u5F37\u5236\u7684\u306B\u30D5\u30E9\u30B0\u3092\u306F\u305A\u3059\") {\n @options[\"off\"] = true\n }\n @opt.on(\"--convert-tag\", \"flag\u30C7\u30FC\u30BF\u3092tag\u30C7\u30FC\u30BF\u306B\u79FB\u884C\u3057\u307E\u3059\") {\n modify = false\n database = Database.instance\n database.each do |id, data|\n if data[\"flags\"]\n tags = data[\"flags\"].keys\n tags << \"404\" if tags.delete(\"delete\")\n unless tags.empty?\n Tag.execute!([id, \"--add\", tags.join(\" \"), \"--color\", \"white\"])\n end\n puts \"-\" * 70\n data.delete(\"flags\")\n modify = true\n end\n end\n if modify\n database.save_database\n puts \"\u79FB\u884C\u304C\u5B8C\u4E86\u3057\u307E\u3057\u305F\"\n end\n exit 0\n }\nend\n".termcolor |
Class Method Details
.oneline_help ⇒ Object
14 15 16 |
# File 'lib/command/flag.rb', line 14 def self.oneline_help "小説の各種フラグを設定します" end |
Instance Method Details
#execute(argv) ⇒ Object
71 72 73 74 75 76 77 78 79 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 |
# File 'lib/command/flag.rb', line 71 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 ["on"] flag = false if ["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 |