class Lita::Handlers::LockerResources
Resource-related handlers
Public Instance Methods
create(response)
click to toggle source
# File lib/lita/handlers/locker_resources.rb, line 82 def create(response) names = response.match_data['resources'].split(/,\s*/) results = [] names.each do |name| if Resource.exists?(name) results <<= t('resource.exists', name: name) else Resource.create(name) results <<= t('resource.created', name: name) end end response.reply(results.join(', ')) end
delete(response)
click to toggle source
# File lib/lita/handlers/locker_resources.rb, line 98 def delete(response) names = response.match_data['resources'].split(/,\s*/) results = [] names.each do |name| if Resource.exists?(name) Resource.delete(name) results <<= t('resource.deleted', name: name) else results <<= t('resource.does_not_exist', name: name) end end response.reply(results.join(', ')) end
list(response)
click to toggle source
# File lib/lita/handlers/locker_resources.rb, line 51 def list(response) begin list = ::Locker::List.new(Resource, config.per_page, response.extensions[:kwargs][:page]) rescue ArgumentError return response.reply(t('list.invalid_page_type')) end return response.reply(t('list.page_outside_range', pages: list.pages)) unless list.valid_page? message = list.requested_page.map do |key| resource = Resource.new(key) state = resource.state.value case state when 'unlocked' unlocked(t('resource.desc', name: key, state: state)) when 'locked' locked(t('resource.desc', name: key, state: state)) else # This case shouldn't happen, but it will if a label # gets saved with some other value for `state`. t('resource.desc', name: key, state: state) end end.join("\n") message += "\n#{t('list.paginate', page: list.page, pages: list.pages)}" if list.multiple_pages? response.reply(message) end
show(response)
click to toggle source
# File lib/lita/handlers/locker_resources.rb, line 114 def show(response) name = response.match_data['resource'] return response.reply(t('resource.does_not_exist', name: name)) unless Resource.exists?(name) r = Resource.new(name) resp = t('resource.desc', name: name, state: r.state.value) if r.labels.count > 0 resp += ', used by: ' r.labels.each do |label| resp += Label.new(label).id end end response.reply(resp) end