class Lita::Handlers::Envy
Public Instance Methods
claim_environment(response)
click to toggle source
# File lib/lita/handlers/envy.rb, line 17 def claim_environment(response) env_id = response.matches.first.first case current_user(env_id) when nil redis.hset(key(env_id), 'user', response.user.name) response.reply t('claim_environment.success') when '' redis.hset(key(env_id), 'user', response.user.name) response.reply t('claim_environment.success') when response.user.name response.reply t('claim_environment.failure.env_in_use_by_user', :env_id => env_id) else response.reply t('claim_environment.failure.env_in_use_by_other_user', :env_id => env_id, :user => current_user(env_id)) end end
claim_used_environment(response)
click to toggle source
# File lib/lita/handlers/envy.rb, line 79 def claim_used_environment(response) env_id, specified_user = response.matches.first case current_user(env_id) when nil response.reply t('claim_used_environment.failure.env_unknown', :env_id => env_id) when '' response.reply t('claim_used_environment.failure.env_not_in_use', :env_id => env_id) when response.user.name response.reply t('claim_used_environment.failure.env_in_use_by_user', :env_id => env_id) when specified_user redis.hset(key(env_id), 'user', response.user.name) response.reply t('claim_used_environment.success') else response.reply t('claim_used_environment.failure.env_in_use_by_user_other_than_specified_one', :env_id => env_id, :user => current_user(env_id), :specified_user => specified_user) end end
forget_environment(response)
click to toggle source
# File lib/lita/handlers/envy.rb, line 64 def forget_environment(response) env_id = response.matches.first.first case current_user(env_id) when nil response.reply t('forget_environment.failure.env_unknown', :env_id => env_id) when '' redis.del(key(env_id)) response.reply t('forget_environment.success') when response.user.name response.reply t('forget_environment.failure.env_in_use_by_user', :env_id => env_id) else response.reply t('forget_environment.failure.env_in_use_by_other_user', :env_id => env_id, :user => current_user(env_id)) end end
list_environments(response)
click to toggle source
# File lib/lita/handlers/envy.rb, line 48 def list_environments(response) lines = [] redis.keys(key('*')).sort.each do |key| env_id = key.split(':').last user = redis.hget(key, 'user') line = env_id line += " (#{user})" unless user.empty? lines << line end if lines.any? response.reply(lines.join("\n")) else response.reply t('list_environments.failure.no_environments') end end
release_environment(response)
click to toggle source
# File lib/lita/handlers/envy.rb, line 33 def release_environment(response) env_id = response.matches.first.first case current_user(env_id) when nil response.reply t('release_environment.failure.env_unknown', :env_id => env_id) when '' response.reply t('release_environment.failure.env_not_in_use_by_user', :env_id => env_id) when response.user.name redis.hset(key(env_id), 'user', nil) response.reply t('release_environment.success') else response.reply t('release_environment.failure.env_in_use_by_other_user', :env_id => env_id, :user => current_user(env_id)) end end
Private Instance Methods
current_user(env_id)
click to toggle source
# File lib/lita/handlers/envy.rb, line 102 def current_user(env_id) redis.hget(key(env_id), 'user') end
key(env_id)
click to toggle source
# File lib/lita/handlers/envy.rb, line 98 def key(env_id) ['environments', config.namespace, env_id].join(':') end