Class: Wikiwiki::CLI::Commands::Page::Put

Inherits:
Base
  • Object
show all
Defined in:
lib/wikiwiki/cli/commands/page/put.rb

Overview

Upload/update page content (creates if not exists)

Instance Method Summary collapse

Instance Method Details

#call(page_name:, input_file: nil, out: $stdout, err: $stderr) ⇒ void

Note:

To delete a page, use ‘wikiwiki page delete` instead

This method returns an undefined value.

Execute the put command

Parameters:

  • page_name (String)

    name of the page to update

  • input_file (String, nil) (defaults to: nil)

    optional input file path (uses stdin if nil)

  • out (IO) (defaults to: $stdout)

    output stream

  • err (IO) (defaults to: $stderr)

    error stream

Raises:

  • (ArgumentError)

    if source content is empty



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/wikiwiki/cli/commands/page/put.rb', line 23

def call(page_name:, input_file: nil, out: $stdout, err: $stderr, **)
  wiki = create_wiki(out:, err:, **)

  source = if input_file
             File.read(input_file)
           else
             $stdin.read
           end

  raise ArgumentError, "Page source must not be empty. Use 'wikiwiki page delete' to delete a page." if source.empty?

  wiki.update_page(page_name:, source:)

  say("Page '#{page_name}' updated successfully", out:, **)
end