Class: RHC::Commands::Member

Inherits:
Base show all
Defined in:
lib/rhc/commands/member.rb

Constant Summary

Constants included from Helpers

Helpers::BOUND_WARNING, Helpers::PREFIX, Helpers::ROLES

Instance Method Summary collapse

Methods inherited from Base

#initialize

Methods included from RHC::ContextHelpers

#find_app, #find_app_or_domain, #find_domain, #from_local_git, included, #namespace_context, #server_context

Methods included from GitHelpers

#git_clone_application, #git_clone_deploy_hooks, #git_clone_repo, #git_config_get, #git_config_set, #git_version, #has_git?

Methods included from Helpers

#agree, #certificate_file, #client_from_options, #collect_env_vars, #color, #confirm_action, #date, #datetime_rfc3339, #debug, #debug?, #debug_error, #decode_json, #deprecated, #deprecated_command, #disable_deprecated?, #distance_of_time_in_words, #env_var_regex_pattern, #error, #exec, #host_exists?, #hosts_file_contains?, #human_size, #info, #interactive?, #jruby?, #mac?, #pluralize, #protonbox_online_server?, #protonbox_rest_endpoint, #protonbox_server, #protonbox_url, #results, #role_name, #run_with_tee, #ssh_string, #ssh_string_parts, #ssl_options, #success, #system_path, #table_heading, #to_host, #to_uri, #token_for_user, #unix?, #user_agent, #warn, #windows?, #with_tolerant_encoding

Methods included from OutputHelpers

#default_display_env_var, #display_app, #display_app_configurations, #display_authorization, #display_cart, #display_cart_storage_info, #display_cart_storage_list, #display_deployment, #display_deployment_list, #display_domain, #display_env_var_list, #display_key, #format_cart_gears, #format_cart_header, #format_gear_info, #format_key_header, #format_scaling_info, #format_usage_message

Constructor Details

This class inherits a constructor from RHC::Commands::Base

Instance Method Details

#add(members) ⇒ Object

Raises:

  • (ArgumentError)


97
98
99
100
101
102
103
104
105
106
# File 'lib/rhc/commands/member.rb', line 97

def add(members)
  target = find_domain
  role = options.role || 'edit'
  raise ArgumentError, 'You must pass one or more logins or ids to this command' unless members.present?
  say "Adding #{pluralize(members.length, role_name(role))} to #{target.class.model_name.downcase} ... "
  target.update_members(changes_for(members, role))
  success "done"

  0
end

#list(path) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'lib/rhc/commands/member.rb', line 49

def list(path)
  target = find_app_or_domain(path)
  members = target.members.sort_by{ |m| [m.owner? ? 0 : 1, m.role_weight, m.name] }
  show_name = members.any?{ |m| m.name && m.name != m. }
  members.map! do |m|
    [
      ((m.name || "") if show_name),
      m. || "",
      m.owner? ? "#{m.role} (owner)" : m.role,
      (m.id if options.ids)
    ].compact
  end
  say table(members, :header => [('Name' if show_name), 'Login', 'Role', ("ID" if options.ids)].compact)

  0
end

#remove(members) ⇒ Object



121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# File 'lib/rhc/commands/member.rb', line 121

def remove(members)
  target = find_domain

  if options.all
    say "Removing all members from #{target.class.model_name.downcase} ... "
    target.delete_members
    success "done"

  else
    raise ArgumentError, 'You must pass one or more logins or ids to this command' unless members.present?
    say "Removing #{pluralize(members.length, 'member')} from #{target.class.model_name.downcase} ... "
    target.update_members(changes_for(members, 'none'))
    success "done"
  end

  0
end