class ThreeScaleToolbox::Commands::MethodsCommand::Create::CreateSubcommand

Public Class Methods

command() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 22
def self.command
  Cri::Command.define do
    name        'create'
    usage       'create [opts] <remote> <service> <method-name>'
    summary     'create method'
    description 'Create method'

    option      :t, 'system-name', 'Method system name', argument: :required
    flag        nil, :disabled, 'Disables this method in all application plans'
    option      nil, :description, 'Method description', argument: :required
    ThreeScaleToolbox::CLI.output_flag(self)

    param       :remote
    param       :service_ref
    param       :method_name

    runner CreateSubcommand
  end
end

Public Instance Methods

run() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 42
def run
  method = ThreeScaleToolbox::Entities::Method.create(
    service: service,
    attrs: method_attrs
  )
  method.disable if option_disabled

  printer.print_record method.attrs
end

Private Instance Methods

find_service() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 70
def find_service
  Entities::Service.find(remote: remote,
                         ref: service_ref).tap do |svc|
    raise ThreeScaleToolbox::Error, "Service #{service_ref} does not exist" if svc.nil?
  end
end
method_attrs() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 54
def method_attrs
  {
    'system_name' => options[:'system-name'],
    'friendly_name' => arguments[:method_name],
    'description' => options[:description]
  }.compact
end
option_disabled() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 62
def option_disabled
  options.fetch(:disabled, false)
end
printer() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 85
def printer
  # keep backwards compatibility
  options.fetch(:output, CustomPrinter.new(disabled: option_disabled))
end
remote() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 77
def remote
  @remote ||= threescale_client(arguments[:remote])
end
service() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 66
def service
  @service ||= find_service
end
service_ref() click to toggle source
# File lib/3scale_toolbox/commands/methods_command/create_command.rb, line 81
def service_ref
  arguments[:service_ref]
end