lib/lita/handlers/claims.rb in lita-claims-0.0.1 vs lib/lita/handlers/claims.rb in lita-claims-0.0.2
- old
+ new
@@ -8,19 +8,59 @@
route(/^claim\s(#{PROPERTY_OR_ENVIRONMENT.source})(?:\s(#{PROPERTY_OR_ENVIRONMENT.source}))?/i, :create, command: true, help: {
"claim PROPERTY" => "To claim a property by the name PROPERTY"
})
+ route(/^who claimed\s(#{PROPERTY_OR_ENVIRONMENT.source})(?:\s(#{PROPERTY_OR_ENVIRONMENT.source}))?/i, :exists?, command: true, help: {
+ "who claimed PROPERTY" => "To see who claimed a property by the name PROPERTY"
+ })
+
+ route(/^unclaim\s(#{PROPERTY_OR_ENVIRONMENT.source})(?:\s(#{PROPERTY_OR_ENVIRONMENT.source}))?/i, :destroy, command: true, help: {
+ "unclaim PROPERTY" => "To remove your claim from a property by the name PROPERTY"
+ })
+
def create(response)
claimer = response.message.source.user.name
property, environment = response.matches.first
environment ||= 'default'
environment_string = " (#{environment})" if environment != 'default'
if property && Claim.create(property, claimer, environment)
- reply = "#{property}#{environment_string} was claimed by #{claimer}"
+ reply = "#{property}#{environment_string} was claimed by #{claimer}."
else
existing_claimer = Claim.read(property, environment)
- reply = "Could not claim #{property}#{environment_string} - already claimed by #{existing_claimer}"
+ reply = "Could not claim #{property}#{environment_string} - already claimed by #{existing_claimer}."
+ end
+ response.reply(reply)
+ end
+
+ def exists?(response)
+ property, environment = response.matches.first
+ environment ||= 'default'
+ environment_string = " (#{environment})" if environment != 'default'
+ if property && Claim.exists?(property, environment)
+ claimer = Claim.read(property, environment)
+ reply = "#{property}#{environment_string} is currently claimed by #{claimer}."
+ else
+ reply = "#{property}#{environment_string} has not been claimed."
+ end
+ response.reply(reply)
+ end
+
+ def destroy(response)
+ unclaimer = response.message.source.user.name
+ property, environment = response.matches.first
+ environment ||= 'default'
+ environment_string = " (#{environment})" if environment != 'default'
+ if property && Claim.exists?(property, environment)
+ claimer = Claim.read(property, environment)
+ if claimer == unclaimer
+ Claim.destroy(property, environment)
+ reply = "#{property}#{environment_string} is no longer claimed."
+ else
+ reply = "#{property}#{environment_string} is currently claimed by #{claimer}. Use the --force flag when you are sure to unclaim the property."
+ end
+ else
+ reply = "#{property}#{environment_string} has not yet been claimed."
end
response.reply(reply)
end
end