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