Class: GemChangelogDiff::CLI

Inherits:
Thor
  • Object
show all
Defined in:
lib/gem_changelog_diff/cli.rb

Overview

Thor-based command-line interface.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


9
10
11
# File 'lib/gem_changelog_diff/cli.rb', line 9

def self.exit_on_failure?
  true
end

Instance Method Details

#cache(subcommand = nil) ⇒ Object



61
62
63
64
65
66
67
68
69
# File 'lib/gem_changelog_diff/cli.rb', line 61

def cache(subcommand = nil)
  case subcommand
  when "clear"
    Cache.new.clear
    say "Cache cleared."
  else
    say "Usage: gem_changelog_diff cache clear"
  end
end

#check(*gem_names) ⇒ Object

Parameters:

  • gem_names (Array<String>)

    optional gem names to filter



35
36
37
38
39
40
41
42
43
44
45
# File 'lib/gem_changelog_diff/cli.rb', line 35

def check(*gem_names)
  setup_environment
  gems = filter_gems(detect_gems, gem_names)
  return say("All gems are up to date!") if gems.empty?

  gems = apply_interactive(gems)
  return say("No gems selected.") if gems.empty?
  return dry_run_output(gems) if options[:dry_run]

  exit exit_status(output_results(gems))
end

#initObject



72
73
74
75
76
77
78
79
80
81
# File 'lib/gem_changelog_diff/cli.rb', line 72

def init
  path = ConfigLoader::PROJECT_CONFIG_NAME
  if File.exist?(path)
    say "#{path} already exists."
    return
  end

  File.write(path, config_template)
  say "Created #{path}"
end

#show(gem_name, from_version, to_version) ⇒ Object

Parameters:

  • gem_name (String)

    the gem to look up

  • from_version (String)

    current version (exclusive)

  • to_version (String)

    target version (inclusive)



51
52
53
54
55
56
57
58
# File 'lib/gem_changelog_diff/cli.rb', line 51

def show(gem_name, from_version, to_version)
  setup_environment
  gem = OutdatedGem.new(name: gem_name, current_version: from_version, newest_version: to_version)
  report = build_single_report(gem)
  formatter = Formatters.build(format: resolved_format, color: color_enabled?)
  write_output(formatter.format([report]))
  exit report[:error] ? ExitCode::ERROR : ExitCode::SUCCESS
end

#versionObject



84
85
86
# File 'lib/gem_changelog_diff/cli.rb', line 84

def version
  say "gem_changelog_diff #{VERSION}"
end