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 @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
|