Skip to content

Instantly share code, notes, and snippets.

@robmiller
Last active December 26, 2015 03:19
Show Gist options
  • Save robmiller/7084847 to your computer and use it in GitHub Desktop.
Save robmiller/7084847 to your computer and use it in GitHub Desktop.
Script for showing projects in your LiquidPlanner workspace that haven't had a contract_value added to them.
require "rubygems"
require "liquidplanner"
# Assumes a file called ~/.lprc exists that contains:
# { "email": "[email protected]", "pass": "pa55w0rd", "space": 1234 }
config = JSON.parse(IO.read(File.expand_path("~/.lprc")))
lp = LiquidPlanner::Base.new(email: config["email"], password: config["pass"])
workspace = lp.workspaces(config["space"])
members = Hash[workspace.members.map { |m| [m.id, m.user_name] }]
has_contract_value = ->(project) { project.contract_value }
number_of_projects = ->(projects) { projects.last.length }
owner_name = ->(object) { members[object.owner_id] }
unvalued_projects = $workspace.projects(:all, filter: "is_done is false")
.reject(&has_contract_value)
.group_by(&owner_name)
.sort_by(&number_of_projects)
.reverse
unvalued_projects.each do |owner, projects|
puts "Projects for #{owner}:"
projects.each do |project|
puts "* #{project.name}"
end
puts "\n\n"
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment