lib/relish/commands/projects.rb in relish-0.1.2 vs lib/relish/commands/projects.rb in relish-0.1.3
- old
+ new
@@ -1,38 +1,70 @@
module Relish
module Command
class Projects < Base
-
+
desc 'list your projects'
command :default do
puts format(resource['projects'].get(:accept => :json))
end
- usage 'projects:add <org_or_user_handle>/<project_handle>'
+ usage 'projects:add <org or user handle>/<project handle>'
desc ['add a project',
'append :private to make the project private',
'example: relish projects:add rspec/rspec-core:private']
command :add do
- puts resource['projects'].post(:handle => handle, :private => private?)
+ puts resource['projects'].post(:handle => handle_to_add, :private => private?)
end
- usage 'projects:remove <project_handle>'
+ usage 'projects:remove <project>'
desc 'remove a project'
command :remove do
- puts resource["projects/#{@param}"].delete
+ puts resource["projects/#{escape(handle_to_remove)}"].delete
end
+ usage 'projects:visibility <project>:<public or private>'
+ desc ['set the status of a project',
+ 'example: relish projects:visibility rspec/rspec-core:private']
+ command :visibility do
+ puts resource["projects/#{escape(handle_to_update)}"].put(
+ :project => { :private => private? }
+ )
+ end
+
+ usage 'projects:rename <project>:<new handle>'
+ desc ["rename a project's handle",
+ 'example: relish projects:rename rspec/rspec-core:rspec-corez']
+ command :rename do
+ puts resource["projects/#{escape(handle_to_update)}"].put(
+ :project => { :handle => rename_handle }
+ )
+ end
+
private
+
def format(response)
json_parse(response) do |hash|
result = hash['project']['full_handle']
result << " (private)" if hash['project']['private']
result
end
end
+ def handle_to_add
+ handle || error(:project_blank)
+ end
+ alias_method :handle_to_update, :handle_to_add
+
+ def handle_to_remove
+ handle || project
+ end
+
def handle
- @param.without_option
+ @param.without_option if @param
+ end
+
+ def rename_handle
+ @param.has_option? ? @param.extract_option : error(:handle_is_blank)
end
def private?
@param.extract_option == 'private'
end
\ No newline at end of file