Class: Bl::Commands::Wiki

Inherits:
Bl::Command show all
Defined in:
lib/bl/commands/wiki.rb

Instance Method Summary collapse

Methods included from Printer

print_response, printable_issues

Methods included from Requestable

client, formatter, request

Constructor Details

#initializeWiki

Returns a new instance of Wiki.



4
5
6
7
8
# File 'lib/bl/commands/wiki.rb', line 4

def initialize(*)
  @config = Bl::Config.instance
  @url = 'wikis'
  super
end

Instance Method Details

#add(name) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/bl/commands/wiki.rb', line 13

def add(name)
  res = request(
    :post,
    @url,
    projectId: options[:projectId],
    name: name,
    content: options[:content]
    )
  puts 'wiki added:'
  print_response(res, :wiki)
end

#countObject



27
28
29
30
31
# File 'lib/bl/commands/wiki.rb', line 27

def count
  res = request(:get, "#{@url}/count", projectIdOrKey: options[:projectIdOrKey])
  puts 'wiki count'
  puts res.body.count
end

#delete(id) ⇒ Object



34
35
36
37
38
# File 'lib/bl/commands/wiki.rb', line 34

def delete(id)
  res = request(:delete, "#{@url}/#{id}")
  puts 'wiki deleted'
  print_response(res, :wiki)
end

#edit(id) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/bl/commands/wiki.rb', line 61

def edit(id)
  wiki_content = request(:get, "#{@url}/#{id}").body.content
  file = Tempfile.new
  file.puts(wiki_content)
  file.close
  begin
    file.open
    system("$EDITOR #{file.path}")
    new_content = file.read
    request(:patch, "#{@url}/#{id}", content: new_content)
    puts "wiki #{id} updated."
  ensure
    file.close
    file.unlink
  end
end

#listObject



41
42
43
44
# File 'lib/bl/commands/wiki.rb', line 41

def list
  res = request(:get, @url, projectIdOrKey: @config[:project_key])
  print_response(res, :wiki)
end

#show(id) ⇒ Object



47
48
49
50
# File 'lib/bl/commands/wiki.rb', line 47

def show(id)
  res = request(:get, "#{@url}/#{id}")
  puts formatter.render(res.body, fields: WIKI_FIELDS.push(:content), vertical: true)
end

#tagsObject



54
55
56
57
58
# File 'lib/bl/commands/wiki.rb', line 54

def tags
  res = request(:get, "#{@url}/tags", projectIdOrKey: options[:projectIdOrKey])
  puts 'wiki tags:'
  print_response(res, :named)
end