Class: GitlabCli::Command::Snippet
- Inherits:
-
Thor
- Object
- Thor
- GitlabCli::Command::Snippet
- Defined in:
- lib/gitlab_cli/command/snippet.rb
Class Method Summary collapse
Instance Method Summary collapse
- #add(project, file = nil) ⇒ Object
- #delete(project, snippet) ⇒ Object
- #download(project, snippet, file_path) ⇒ Object
- #edit(project, snippet) ⇒ Object
- #info(project, snippet) ⇒ Object
- #view(project, snippet) ⇒ Object
Class Method Details
.banner(task, namespace = true, subcommand = true) ⇒ Object
6 7 8 |
# File 'lib/gitlab_cli/command/snippet.rb', line 6 def self.(task, namespace = true, subcommand = true) "#{basename} #{task.formatted_usage(self, true, subcommand)}" end |
Instance Method Details
#add(project, file = nil) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/gitlab_cli/command/snippet.rb', line 22 def add(project, file=nil) snippet = GitlabCli::Util::Snippet.create(project, ['title'], ['file_name'], file) GitlabCli.ui.success "Snippet created." GitlabCli.ui.info "ID: %s" % [snippet.id] GitlabCli.ui.info "URL: %s" % [snippet.view_url] end |
#delete(project, snippet) ⇒ Object
92 93 94 95 96 97 98 99 |
# File 'lib/gitlab_cli/command/snippet.rb', line 92 def delete(project, snippet) response = GitlabCli.ui.yes? "Are you sure you want to delete this snippet? (Yes\\No)" unless ['yes'] exit unless ['yes'] || response snippet = GitlabCli::Util::Snippet.delete(project, snippet) GitlabCli.ui.success "Successfully deleted the snippet." end |
#download(project, snippet, file_path) ⇒ Object
127 128 129 130 131 |
# File 'lib/gitlab_cli/command/snippet.rb', line 127 def download(project, snippet, file_path) snippet = GitlabCli::Util::Snippet.download(project, snippet, file_path) GitlabCli.ui.success "Snippet file saved successfully.\n" end |
#edit(project, snippet) ⇒ Object
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/gitlab_cli/command/snippet.rb', line 63 def edit(project, snippet) snippet_obj = GitlabCli::Util::Snippet.get(project, snippet) snippet_code = GitlabCli::Util::Snippet.view(project, snippet) editor = ENV['editor'] || 'vi' temp_file_path = "/tmp/snippet.%s" % [rand] File.open(temp_file_path, 'w') { |file| file.write(snippet_code) } system("vi %s" % [temp_file_path]) snippet_code = File.read(temp_file_path) snippet = GitlabCli::Util::Snippet.update(project, snippet_obj, snippet_code) GitlabCli.ui.success "Snippet updated." GitlabCli.ui.info "URL: %s" % [snippet.view_url] end |
#info(project, snippet) ⇒ Object
107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/gitlab_cli/command/snippet.rb', line 107 def info(project, snippet) snippet = GitlabCli::Util::Snippet.get(project, snippet) ui = GitlabCli.ui ui.info "Snippet ID: %s" % [snippet.id] ui.info "Title: %s" % [snippet.title] ui.info "File Name: %s" % [snippet.file_name] ui.info "Author: %s <%s>" % [snippet..name, snippet..email] ui.info "Created at: %s" % [Time.parse(snippet.created_at)] ui.info "Updated at: %s" % [Time.parse(snippet.updated_at)] ui.info "Expires at: %s" % [snippet.expires_at.nil? ? "Never" : Time.parse(snippet.expires_at)] end |
#view(project, snippet) ⇒ Object
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/gitlab_cli/command/snippet.rb', line 41 def view(project, snippet) snippet = GitlabCli::Util::Snippet.view(project, snippet) pager = ENV['pager'] || 'less' unless system("echo %s | %s" % [Shellwords.escape(snippet), pager]) GitlabCli.ui.error "Problem displaying snippet" exit 1 end end |