class BaneryStats::OutputSummary
Public Class Methods
run()
click to toggle source
# File lib/banery_stats.rb, line 10 def self.run new.run end
Public Instance Methods
own_user_id()
click to toggle source
# File lib/banery_stats.rb, line 38 def own_user_id @own_user_id ||= begin data = http_get("https://avarteq.kanbanery.com/api/v1/user.json") data["id"] end end
project_tasks(workspace_name, project_id)
click to toggle source
# File lib/banery_stats.rb, line 32 def project_tasks(workspace_name, project_id) data = http_get("https://#{workspace_name}.kanbanery.com/api/v1/projects/#{project_id}/tasks.json") data.keep_if { |d| d.has_key?("owner_id") && d["owner_id"] == own_user_id } data end
run()
click to toggle source
# File lib/banery_stats.rb, line 14 def run workspaces.each do |workspace| puts "WORKSPACE #{workspace.name} #projects: #{workspace.projects.size}" workspace.projects.each do |workspace_project| project_tasks = project_tasks(workspace.name, workspace_project.id) puts "#{project_tasks.size.to_s.rjust(5)} #{workspace_project.name}" end end end
workspaces()
click to toggle source
# File lib/banery_stats.rb, line 24 def workspaces data = http_get("https://kanbanery.com/api/v1/user/workspaces.json/") data.collect do |workspace_data| projects = workspace_data["projects"].collect { |workspace_project| OpenStruct.new(id: workspace_project["id"], name: workspace_project["name"]) } OpenStruct.new(id: workspace_data["id"], name: workspace_data["name"], projects: projects) end end
Private Instance Methods
http_get(url)
click to toggle source
# File lib/banery_stats.rb, line 48 def http_get(url) uri = URI.parse(url) http = Net::HTTP.new(uri.host, uri.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE request = Net::HTTP::Get.new(uri.request_uri) request['X-Kanbanery-ApiToken'] = BaneryStats.api_token or raise "You must set BaneryStats.api_token to your API token" response = http.request(request) data = ActiveSupport::JSON.decode(response.body) end